From 57d7064c41c6bfcc2aa7767004a4cee001e2ea9d Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 18 May 2026 22:59:53 +0000 Subject: [PATCH] Fix toast firing for unrelated intents after settings save Tag update responses with intent: "update" so the success useEffect only fires for the main settings form, not for owner/commissioner/ reset-draft actions which also return { success: true }. Also replaces the remaining ?updated=true redirect (no-season edge case) with the same response shape for consistency. https://claude.ai/code/session_01PewdKxVfAbqasJbmk2UGw4 --- app/routes/leagues/$leagueId.settings.server.ts | 4 ++-- app/routes/leagues/$leagueId.settings.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/routes/leagues/$leagueId.settings.server.ts b/app/routes/leagues/$leagueId.settings.server.ts index eac2b50..5120899 100644 --- a/app/routes/leagues/$leagueId.settings.server.ts +++ b/app/routes/leagues/$leagueId.settings.server.ts @@ -268,7 +268,7 @@ export async function action(args: Route.ActionArgs) { const season = await findCurrentSeasonWithSports(leagueId); if (!season) { if (intent === "update") { - return redirect(`/leagues/${leagueId}?updated=true`); + return { success: true, message: "Settings saved successfully.", intent: "update" as const }; } return { error: "No active season found" }; } @@ -776,7 +776,7 @@ export async function action(args: Route.ActionArgs) { } } - return { success: true, message: "Settings saved successfully." }; + return { success: true, message: "Settings saved successfully.", intent: "update" as const }; } catch (error) { logger.error("Error updating season settings:", error); return { error: "Failed to update season settings. Please try again." }; diff --git a/app/routes/leagues/$leagueId.settings.tsx b/app/routes/leagues/$leagueId.settings.tsx index e48f4f4..3356cfe 100644 --- a/app/routes/leagues/$leagueId.settings.tsx +++ b/app/routes/leagues/$leagueId.settings.tsx @@ -190,8 +190,8 @@ export default function LeagueSettings({ loaderData, actionData }: Route.Compone useEffect(() => { if (navigation.state !== "idle") return; - if (actionData && "success" in actionData && actionData.success && !("section" in actionData)) { - toast.success("Settings saved!"); + if (actionData && "intent" in actionData && actionData.intent === "update" && actionData.success) { + toast.success(actionData.message ?? "Settings saved!"); setHasUnsavedSettingsChanges(false); } }, [actionData, navigation.state]);