From 4ae1a50a774ff1f29d6944bd1c96aaccda4d6633 Mon Sep 17 00:00:00 2001 From: makearmy Date: Fri, 3 Oct 2025 19:00:16 -0400 Subject: [PATCH] double details fix --- components/portal/SettingsSwitcher.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/components/portal/SettingsSwitcher.tsx b/components/portal/SettingsSwitcher.tsx index 34727878..7956cd48 100644 --- a/components/portal/SettingsSwitcher.tsx +++ b/components/portal/SettingsSwitcher.tsx @@ -5,7 +5,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import dynamic from "next/dynamic"; import { cn } from "@/lib/utils"; -// Existing canonical pages +// Existing canonical pages (Fiber/UV/Gantry still use their pages for now) const FiberPanel = dynamic(() => import("@/app/settings/fiber/page"), { ssr: false }); const UVPanel = dynamic(() => import("@/app/settings/uv/page"), { ssr: false }); const CO2GalvoPanel = dynamic(() => import("@/components/portal/panels/CO2GalvoPanel"), { ssr: false }); @@ -88,6 +88,11 @@ export default function SettingsSwitcher() { const q = new URLSearchParams(sp.toString()); q.set("t", nextKey); + // Clear detail-related params when switching tabs to avoid stale state + q.delete("view"); + q.delete("id"); + q.delete("edit"); + // keep track of last data tab so the Add tab knows which target to preselect if (nextKey === "add") { q.set("last", isDataTab(active) ? (active as DataTab) : lastDataTab); @@ -115,7 +120,7 @@ export default function SettingsSwitcher() { ))} - {/* Removed the extra border/padding wrapper to avoid double-framing */} + {/* No extra border/padding wrapper → avoids double-framing */} );