From 21ac949a181fb541b3d2a03807e432443b0fe28b Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Fri, 24 Oct 2025 14:16:21 +0200 Subject: [PATCH] Handle embed --- api/.env.production | 2 +- apps/external/package.json | 8 +++++--- apps/external/src/EmbeddedBookingPage.tsx | 3 +-- apps/external/src/FloatingBookingWidget.tsx | 2 +- apps/external/tsconfig.tsbuildinfo | 1 + apps/external/turbo.json | 12 ++++++++++++ apps/external/worker/index.d.ts | 4 ++++ apps/external/worker/index.ts | 16 ++++++++++++++++ apps/external/wrangler.toml | 17 +++++++++++++++++ pnpm-lock.yaml | 3 +++ 10 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 apps/external/tsconfig.tsbuildinfo create mode 100644 apps/external/turbo.json create mode 100644 apps/external/worker/index.d.ts create mode 100644 apps/external/worker/index.ts create mode 100644 apps/external/wrangler.toml diff --git a/api/.env.production b/api/.env.production index b4edc7a..4242e28 100644 --- a/api/.env.production +++ b/api/.env.production @@ -5,7 +5,7 @@ STREAM_CHAT_API_KEY=v4yf8rs94aa8 STREAM_CHAT_API_SECRET=jq2szvv73ua7sz9tvr9y24dxg37sw8ue8t576fu7ggr4h6wvcmunby4gvte8tm8f XTABLO_URL=https://app.xtablo.com -CORS_ORIGIN="https://app.xtablo.com" +CORS_ORIGIN="https://app.xtablo.com,https://embed.xtablo.com" R2_ACCOUNT_ID="9715fa14c5e5d1612301572cf1c6bbee" R2_ACCESS_KEY_ID="caeb987bbcd601708a93c6aa562064ef" diff --git a/apps/external/package.json b/apps/external/package.json index 8513522..f72fd79 100644 --- a/apps/external/package.json +++ b/apps/external/package.json @@ -6,13 +6,14 @@ "scripts": { "dev": "vite dev", "build": "tsc -b && vite build", + "deploy": "wrangler deploy", "typecheck": "tsc --noEmit", "lint": "biome check .", "lint:fix": "biome check --write .", "format": "biome format --write .", "preview": "vite preview", - "deploy": "echo 'Configure deployment command for external app (e.g., wrangler pages deploy dist, vercel deploy, etc.)'", - "clean": "rm -rf dist .vite tsconfig.tsbuildinfo node_modules/.vite" + "clean": "rm -rf dist .vite tsconfig.tsbuildinfo node_modules/.vite", + "cf-typegen": "wrangler types" }, "devDependencies": { "@biomejs/biome": "2.2.5", @@ -24,7 +25,8 @@ "tw-animate-css": "^1.4.0", "typescript": "^5.7.0", "vite": "^6.2.2", - "vite-tsconfig-paths": "^5.1.4" + "vite-tsconfig-paths": "^5.1.4", + "wrangler": "^4.24.3" }, "dependencies": { "@xtablo/ui": "workspace:*", diff --git a/apps/external/src/EmbeddedBookingPage.tsx b/apps/external/src/EmbeddedBookingPage.tsx index 97068b8..1a7269e 100644 --- a/apps/external/src/EmbeddedBookingPage.tsx +++ b/apps/external/src/EmbeddedBookingPage.tsx @@ -213,8 +213,7 @@ export function EmbeddedBookingPage() { const shortUserId = userInfo?.substring(userInfo.lastIndexOf("-") + 1); - console.log({ shortUserId, eventTypeStandardName }); - const { data: publicSlots, isLoading: isLoadingSlots } = usePublicSlots( + const { data: publicSlots } = usePublicSlots( api, shortUserId || "", eventTypeStandardName || "" diff --git a/apps/external/src/FloatingBookingWidget.tsx b/apps/external/src/FloatingBookingWidget.tsx index ddf5941..5887d89 100644 --- a/apps/external/src/FloatingBookingWidget.tsx +++ b/apps/external/src/FloatingBookingWidget.tsx @@ -125,7 +125,7 @@ export function FloatingBookingWidget() { // Get color schemes based on variants const btnColors = buttonColors[buttonVariant]; - const { data: publicSlots, isLoading: isLoadingSlots } = usePublicSlots( + const { data: publicSlots } = usePublicSlots( api, shortUserId || "", eventTypeStandardName || "" diff --git a/apps/external/tsconfig.tsbuildinfo b/apps/external/tsconfig.tsbuildinfo new file mode 100644 index 0000000..4bb6700 --- /dev/null +++ b/apps/external/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./src/custommodal.tsx","./src/embeddedbookingpage.tsx","./src/floatingbookingwidget.tsx","./src/userstoreprovider.tsx","./src/main.tsx","./src/routes.tsx","./src/vite-env.d.ts","./src/lib/api.ts","./src/lib/supabase.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/apps/external/turbo.json b/apps/external/turbo.json new file mode 100644 index 0000000..3ed9f2c --- /dev/null +++ b/apps/external/turbo.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "deploy": { + "dependsOn": ["build"], + "cache": false, + "outputLogs": "new-only" + } + } +} + diff --git a/apps/external/worker/index.d.ts b/apps/external/worker/index.d.ts new file mode 100644 index 0000000..3f522fb --- /dev/null +++ b/apps/external/worker/index.d.ts @@ -0,0 +1,4 @@ +declare const _default: { + fetch(request: any): Response; +}; +export default _default; diff --git a/apps/external/worker/index.ts b/apps/external/worker/index.ts new file mode 100644 index 0000000..8f89377 --- /dev/null +++ b/apps/external/worker/index.ts @@ -0,0 +1,16 @@ +// @ts-nocheck +// biome-ignore-file: Worker entry point with dynamic imports +/* eslint-disable */ + +export default { + fetch(request) { + const url = new URL(request.url); + + if (url.pathname.startsWith("/api/")) { + return Response.json({ + name: "Cloudflare", + }); + } + return new Response(null, { status: 404 }); + }, +}; diff --git a/apps/external/wrangler.toml b/apps/external/wrangler.toml new file mode 100644 index 0000000..f16b844 --- /dev/null +++ b/apps/external/wrangler.toml @@ -0,0 +1,17 @@ +name = "xtablo-embeds" +main = "worker/index.ts" +compatibility_date = "2025-07-09" + +[assets] +directory = "./dist/" +not_found_handling = "single-page-application" + +[observability] +enabled = true + +[vars] +PYTHON_VERSION = "3.11.5" + +[[routes]] +pattern = "embed.xtablo.com" +custom_domain = true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f33fc6f..7ddea83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -88,6 +88,9 @@ importers: vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.9.3)(vite@6.4.1(@types/node@22.18.12)(jiti@2.6.1)(lightningcss@1.30.2)) + wrangler: + specifier: ^4.24.3 + version: 4.44.0 apps/main: dependencies: