aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/.server/cookie.ts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-13 22:40:45 +0900
committernsfisis <nsfisis@gmail.com>2026-02-13 23:07:26 +0900
commite239fe743fc66a8712cf9886d3dfed3cc41fce36 (patch)
treee3452fb13dce114cea0e8371dbb049118aa1229e /frontend/app/.server/cookie.ts
parent482c3a52a0fcc5870a7db4a190475caf61b211a3 (diff)
downloadphperkaigi-2026-albatross-e239fe743fc66a8712cf9886d3dfed3cc41fce36.tar.gz
phperkaigi-2026-albatross-e239fe743fc66a8712cf9886d3dfed3cc41fce36.tar.zst
phperkaigi-2026-albatross-e239fe743fc66a8712cf9886d3dfed3cc41fce36.zip
refactor(frontend): replace React Router BFF with Wouter SPA
Remove React Router 7 SSR/BFF architecture (server-side loaders, actions, sessions, remix-auth) and replace with a client-side SPA using Wouter for routing and cookie-based JWT auth. - Replace reactRouter() Vite plugin with @vitejs/plugin-react - Add index.html + app/main.tsx as SPA entry points - Add Wouter routing with auth guards (ProtectedRoute/PublicOnlyRoute) - Add client-side auth (app/auth.ts) and useAuth hook - Migrate all route files to app/pages/ with client-side data fetching - Update NavigateLink and GolfPlayAppGaming to use Wouter Link - Remove .server/, routes/, root.tsx, react-router.config.ts - Clean up tsconfig.json (remove .react-router references) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'frontend/app/.server/cookie.ts')
-rw-r--r--frontend/app/.server/cookie.ts44
1 files changed, 0 insertions, 44 deletions
diff --git a/frontend/app/.server/cookie.ts b/frontend/app/.server/cookie.ts
deleted file mode 100644
index c8365eb..0000000
--- a/frontend/app/.server/cookie.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { parse as parseCookie, serialize as serializeCookie } from "cookie";
-import { Cookie, CookieOptions } from "react-router";
-
-// Remix's createCookie() returns "structured" cookies, which are cookies that hold a JSON-encoded object.
-// This is not suitable for interoperation with other systems that expect a simple string value.
-// This function creates an "unstructured" cookie, a simple plain text.
-export function createUnstructuredCookie(
- name: string,
- cookieOptions?: CookieOptions,
-): Cookie {
- const { secrets = [], ...options } = {
- path: "/",
- sameSite: "lax" as const,
- ...cookieOptions,
- };
-
- return {
- get name() {
- return name;
- },
- get isSigned() {
- return secrets.length > 0;
- },
- get expires() {
- return typeof options.maxAge !== "undefined"
- ? new Date(Date.now() + options.maxAge * 1000)
- : options.expires;
- },
- async parse(cookieHeader, parseOptions) {
- if (!cookieHeader) return null;
- const cookies = parseCookie(cookieHeader, {
- ...options,
- ...parseOptions,
- });
- return name in cookies ? cookies[name] : null;
- },
- async serialize(value, serializeOptions) {
- return serializeCookie(name, value, {
- ...options,
- ...serializeOptions,
- });
- },
- };
-}