From 6ed77dd4715f5b6b6f8190544ef94cf682cf93d1 Mon Sep 17 00:00:00 2001 From: yohlo Date: Wed, 24 Sep 2025 07:59:13 -0500 Subject: [PATCH] idk --- package.json | 12 ++++++------ src/app/router.tsx | 4 ++++ src/app/routes/api/spotify/token.ts | 2 -- src/app/routes/api/teams/upload-logo.ts | 3 ++- src/contexts/spotify-context.tsx | 3 --- src/features/players/queries.ts | 1 + src/lib/pocketbase/client.ts | 5 +++++ .../tanstack-query/hooks/use-optimistic-mutation.ts | 8 ++++---- src/lib/tanstack-query/hooks/use-server-mutation.ts | 9 +++++---- src/utils/supertokens.ts | 1 + vite.config.ts | 8 +++++++- 11 files changed, 35 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index d684658..8b52951 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite dev --host 0.0.0.0", "build": "vite build && tsc --noEmit", - "start": "vite start" + "start": "node .output/server/index.mjs" }, "dependencies": { "@hello-pangea/dnd": "^18.0.1", @@ -21,15 +21,15 @@ "@svgmoji/noto": "^3.2.0", "@tanstack/react-query": "^5.66.0", "@tanstack/react-query-devtools": "^5.66.0", - "@tanstack/react-router": "^1.130.12", - "@tanstack/react-router-devtools": "^1.130.13", - "@tanstack/react-router-with-query": "^1.130.12", - "@tanstack/react-start": "^1.130.15", - "@tanstack/react-virtual": "^3.13.12", + "@tanstack/react-router": "1.130.12", + "@tanstack/react-router-devtools": "1.130.13", + "@tanstack/react-router-with-query": "1.130.12", + "@tanstack/react-start": "1.130.15", "@tiptap/pm": "^3.4.3", "@tiptap/react": "^3.4.3", "@tiptap/starter-kit": "^3.4.3", "@types/ioredis": "^4.28.10", + "dotenv": "^17.2.2", "embla-carousel-react": "^8.6.0", "framer-motion": "^12.23.12", "ioredis": "^5.7.0", diff --git a/src/app/router.tsx b/src/app/router.tsx index c8a557a..b0fbd46 100644 --- a/src/app/router.tsx +++ b/src/app/router.tsx @@ -5,6 +5,10 @@ import { routeTree } from "./routeTree.gen"; import { DefaultCatchBoundary } from "../components/DefaultCatchBoundary"; import { defaultHeaderConfig } from "@/features/core/hooks/use-router-config"; +import dotenv from 'dotenv'; +dotenv.config(); + + export function createRouter() { const queryClient = new QueryClient({ defaultOptions: { diff --git a/src/app/routes/api/spotify/token.ts b/src/app/routes/api/spotify/token.ts index 49b7aae..9617ce9 100644 --- a/src/app/routes/api/spotify/token.ts +++ b/src/app/routes/api/spotify/token.ts @@ -19,7 +19,6 @@ export const ServerRoute = createServerFileRoute('/api/spotify/token').methods({ ) } - // Refresh access token const tokenResponse = await fetch('https://accounts.spotify.com/api/token', { method: 'POST', headers: { @@ -46,7 +45,6 @@ export const ServerRoute = createServerFileRoute('/api/spotify/token').methods({ const tokens = await tokenResponse.json() - // Return new tokens return new Response( JSON.stringify({ access_token: tokens.access_token, diff --git a/src/app/routes/api/teams/upload-logo.ts b/src/app/routes/api/teams/upload-logo.ts index cc4be4d..39c8536 100644 --- a/src/app/routes/api/teams/upload-logo.ts +++ b/src/app/routes/api/teams/upload-logo.ts @@ -72,7 +72,8 @@ export const ServerRoute = createServerFileRoute('/api/teams/upload-logo') }); } - if (!team.players.map(p => p.id).includes(context.userId) && !isAdmin) + const user = await pbAdmin.getPlayerByAuthId(context.userAuthId) + if (!team.players.map(p => p.id).includes(user!.id) && !isAdmin) return new Response('Unauthorized', { status: 403 }); logger.info('Uploading team logo', { diff --git a/src/contexts/spotify-context.tsx b/src/contexts/spotify-context.tsx index a072390..448ac81 100644 --- a/src/contexts/spotify-context.tsx +++ b/src/contexts/spotify-context.tsx @@ -438,7 +438,6 @@ export const SpotifyProvider: React.FC = ({ children }) => { activeDevice, isLoading, error, - // Capture/Resume state capturedState, isCaptureLoading, isResumeLoading, @@ -453,11 +452,9 @@ export const SpotifyProvider: React.FC = ({ children }) => { getDevices, setActiveDevice, refreshPlaybackState, - // Capture/Resume methods capturePlaybackState, resumePlaybackState, clearCapturedState, - // Search searchTracks, }; diff --git a/src/features/players/queries.ts b/src/features/players/queries.ts index ee4170f..a581272 100644 --- a/src/features/players/queries.ts +++ b/src/features/players/queries.ts @@ -60,6 +60,7 @@ export const useMe = () => { const errorData = error?.response?.data; if (errorData?.error === "SESSION_REFRESH_REQUIRED") { const currentUrl = window.location.pathname + window.location.search; + console.log('redirecting 3') window.location.href = `/refresh-session?redirect=${encodeURIComponent(currentUrl)}`; return false; } diff --git a/src/lib/pocketbase/client.ts b/src/lib/pocketbase/client.ts index f4e3b3f..b93a22c 100644 --- a/src/lib/pocketbase/client.ts +++ b/src/lib/pocketbase/client.ts @@ -10,6 +10,11 @@ class PocketBaseAdminClient { public authPromise: Promise; constructor() { + console.log('Environment variables loaded:', { + POCKETBASE_URL: process.env.POCKETBASE_URL, + POCKETBASE_ADMIN_EMAIL: process.env.POCKETBASE_ADMIN_EMAIL, + POCKETBASE_ADMIN_PASSWORD: process.env.POCKETBASE_ADMIN_PASSWORD, +}); this.pb = new PocketBase(process.env.POCKETBASE_URL); this.pb.beforeSend = (url, options) => { diff --git a/src/lib/tanstack-query/hooks/use-optimistic-mutation.ts b/src/lib/tanstack-query/hooks/use-optimistic-mutation.ts index f46f7a3..c14c8cf 100644 --- a/src/lib/tanstack-query/hooks/use-optimistic-mutation.ts +++ b/src/lib/tanstack-query/hooks/use-optimistic-mutation.ts @@ -23,15 +23,15 @@ export function useOptimisticMutation( return { previousData }; }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { if (context && typeof context === 'object' && 'previousData' in context && context.previousData) { queryClient.setQueryData(queryKey, context.previousData); } - mutationOptions.onError?.(error, variables, context); + mutationOptions.onError?.(error, variables, onMutateResult, context); }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { queryClient.invalidateQueries({ queryKey }); - mutationOptions.onSettled?.(data, error, variables, context); + mutationOptions.onSettled?.(data, error, variables, onMutateResult, context); } }); } diff --git a/src/lib/tanstack-query/hooks/use-server-mutation.ts b/src/lib/tanstack-query/hooks/use-server-mutation.ts index a6e3ccf..e8a6a46 100644 --- a/src/lib/tanstack-query/hooks/use-server-mutation.ts +++ b/src/lib/tanstack-query/hooks/use-server-mutation.ts @@ -44,6 +44,7 @@ export function useServerMutation( if (errorData?.error === "SESSION_REFRESH_REQUIRED") { const currentUrl = window.location.pathname + window.location.search; window.location.href = `/refresh-session?redirect=${encodeURIComponent(currentUrl)}`; + console.log('redirecting 2') throw new Error("SESSION_REFRESH_REQUIRED"); } } catch (parseError) {} @@ -52,14 +53,14 @@ export function useServerMutation( throw error; } }, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { if (showSuccessToast && successMessage) { toast.success(successMessage); } - onSuccess?.(data, variables, context); + onSuccess?.(data, variables, onMutateResult, context); }, - onError: (error, variables, context) => { - onError?.(error, variables, context); + onError: (error, variables, onMutateResult, context) => { + onError?.(error, variables, onMutateResult, context); } }); } diff --git a/src/utils/supertokens.ts b/src/utils/supertokens.ts index 4c4a912..fb37a65 100644 --- a/src/utils/supertokens.ts +++ b/src/utils/supertokens.ts @@ -79,6 +79,7 @@ export const getSessionContext = async (request: Request, options?: { isServerFu const url = new URL(request.url); const from = encodeURIComponent(url.pathname + url.search); + console.log('redirecting') throw redirect({ to: "/refresh-session", search: { redirect: from } diff --git a/vite.config.ts b/vite.config.ts index de6adc5..ec27738 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,5 +18,11 @@ export default defineConfig({ }, }), react() - ] + ], + build: { + target: 'esnext', + }, + ssr: { + target: 'node', + } })