diff --git a/.gitignore b/.gitignore index 879cb66..bf77846 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules .direnv +.wrangler CLAUDE.local.md diff --git a/client/.env.preview b/client/.env.preview index 831fe4f..3d69f54 100644 --- a/client/.env.preview +++ b/client/.env.preview @@ -1,2 +1,2 @@ -VITE_API_ENDPOINT=https://api.itsuhima-staging.utcode.net +VITE_API_ENDPOINT=/api VITE_FRONTEND_ORIGIN=https://itsuhima-staging.utcode.net diff --git a/client/.env.production b/client/.env.production index 3fdbb58..ae35cf5 100644 --- a/client/.env.production +++ b/client/.env.production @@ -1,2 +1,2 @@ -VITE_API_ENDPOINT=https://api.itsuhima.utcode.net +VITE_API_ENDPOINT=/api VITE_FRONTEND_ORIGIN=https://itsuhima.utcode.net diff --git a/client/.gitignore b/client/.gitignore index 438657a..fdc0972 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -13,6 +13,8 @@ dist-ssr *.local .env +.wrangler + # Editor directories and files .vscode/* !.vscode/extensions.json diff --git a/client/functions/api/[[path]].ts b/client/functions/api/[[path]].ts new file mode 100644 index 0000000..db356f3 --- /dev/null +++ b/client/functions/api/[[path]].ts @@ -0,0 +1,26 @@ +/// + +interface Env { + API_ENDPOINT: string; +} + +// biome-ignore lint/suspicious/noExplicitAny: This is a Cloudflare Worker context +export async function onRequest(context: EventContext): Promise { + const { request, env } = context; + const url = new URL(request.url); + const backendUrl = env.API_ENDPOINT + url.pathname.replace(/^\/api/, "") + url.search; + + const proxied = new Request(backendUrl, { + method: request.method, + headers: request.headers, + body: request.method !== "GET" && request.method !== "HEAD" ? request.body : undefined, + redirect: "manual", + }); + + const response = await fetch(proxied); + return new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: response.headers, + }); +} diff --git a/client/src/pages/eventId/Submission.tsx b/client/src/pages/eventId/Submission.tsx index 51f8eb1..1ae3adb 100644 --- a/client/src/pages/eventId/Submission.tsx +++ b/client/src/pages/eventId/Submission.tsx @@ -135,7 +135,7 @@ export default function SubmissionPage() { const myGuestId = meAsGuest?.id; const isHost = project?.isHost; - const [mode, setMode] = useState<"view" | "edit" | "confirm">("edit"); + const [mode, setMode] = useState<"view" | "edit" | "confirm">("view"); const [guestName, setGuestName] = useState(meAsGuest?.name ?? ""); @@ -275,7 +275,7 @@ export default function SubmissionPage() { return ( <> -
+
{loading ? (
@@ -283,7 +283,7 @@ export default function SubmissionPage() {
) : !project ? (
-
+

イベントが見つかりませんでした。

ホームに戻る @@ -414,7 +414,7 @@ export default function SubmissionPage() {

{guest.name}

{commentText && (
- {commentText} + {commentText}
)}
@@ -449,27 +449,31 @@ export default function SubmissionPage() { }} > - 日程を変更する - 日程変更 + {meAsGuest ? ( + <> + 日程を変更する + 日程変更 + + ) : ( + 提出する + )}
) : (
- {!!myGuestId && ( - - )} +