diff --git a/src/app/routes/api/teams/upload-logo.ts b/src/app/routes/api/teams/upload-logo.ts index 2c6a662..40a4b1a 100644 --- a/src/app/routes/api/teams/upload-logo.ts +++ b/src/app/routes/api/teams/upload-logo.ts @@ -107,10 +107,9 @@ export const Route = createFileRoute("/api/teams/upload-logo")({ const pbFormData = new FormData(); pbFormData.append("logo", logoFile); - const updatedTeam = await pbAdmin.updateTeam( - teamId, - pbFormData as any - ); + await pbAdmin.updateTeam(teamId, pbFormData as any); + const updatedTeam = await pbAdmin.getTeam(teamId); + if (!updatedTeam) throw new Error("Failed to fetch updated team"); logger.info("Team logo uploaded successfully", { teamId, diff --git a/src/features/teams/components/team-form/index.tsx b/src/features/teams/components/team-form/index.tsx index d03a73c..7ab2a48 100644 --- a/src/features/teams/components/team-form/index.tsx +++ b/src/features/teams/components/team-form/index.tsx @@ -106,11 +106,6 @@ const TeamForm = ({ mutation(teamData, { onSuccess: async (team: any) => { - queryClient.invalidateQueries({ queryKey: teamKeys.list }); - queryClient.invalidateQueries({ - queryKey: teamKeys.details(team.id), - }); - if (logo && team) { try { let processedLogo = logo; @@ -152,7 +147,12 @@ const TeamForm = ({ const result = await response.json(); + console.log("Logo upload result:", result); + queryClient.invalidateQueries({ queryKey: teamKeys.list }); + queryClient.invalidateQueries({ + queryKey: teamKeys.details(team.id), + }); queryClient.setQueryData( tournamentKeys.details(result.team!.id), result.team @@ -164,6 +164,11 @@ const TeamForm = ({ toast.error(logoErrorMessage); logger.error("Team logo upload error", error); } + } else { + queryClient.invalidateQueries({ queryKey: teamKeys.list }); + queryClient.invalidateQueries({ + queryKey: teamKeys.details(team.id), + }); } if (team && team.id) { diff --git a/src/lib/pocketbase/services/teams.ts b/src/lib/pocketbase/services/teams.ts index e15ae5d..e041932 100644 --- a/src/lib/pocketbase/services/teams.ts +++ b/src/lib/pocketbase/services/teams.ts @@ -72,9 +72,17 @@ export function createTeamsService(pb: PocketBase) { const result = await pb.collection("teams").update(id, data); - return transformTeam(await pb.collection("teams").getOne(result.id, { - expand: "players, tournaments" - })); + if (data instanceof FormData && data.has('logo')) { + await new Promise(resolve => setTimeout(resolve, 100)); + } + + const updated = await pb.collection("teams").getOne(result.id, { + expand: "players, tournaments", + // @ts-ignore - Add cache busting + $cancelKey: Date.now().toString() + }); + + return transformTeam(updated); } catch (error) { logger.error("PocketBase | Error updating team", error); throw error;