diff --git a/src/components/theme-customizer/index.tsx b/src/components/theme-customizer/index.tsx index 054cb84..519f20a 100644 --- a/src/components/theme-customizer/index.tsx +++ b/src/components/theme-customizer/index.tsx @@ -45,14 +45,9 @@ export function ThemeCustomizer({ open, onOpenChange, initialPrefs }: ThemeCusto const [importModalOpen, setImportModalOpen] = React.useState(false) const [importedTheme, setImportedTheme] = React.useState(null) - // Save dark/light mode to Appwrite when it changes (skip first mount) - const themeMountRef = React.useRef(false) - React.useEffect(() => { - if (!themeMountRef.current) { themeMountRef.current = true; return } - void saveThemePrefsAction({ theme }) - }, [theme]) - - // Save sidebar config to localStorage + Appwrite when it changes (skip first mount) + // Sidebar config → sadece localStorage (Appwrite tetiklemesi döngüye yol açıyordu: + // PrefsInitializer mount'ta updateConfig çağırıyor → bu effect server action tetikliyor + // → Next.js router cache revalidation → remount → döngü) const sidebarMountRef = React.useRef(false) React.useEffect(() => { if (!sidebarMountRef.current) { sidebarMountRef.current = true; return } @@ -61,11 +56,6 @@ export function ThemeCustomizer({ open, onOpenChange, initialPrefs }: ThemeCusto sidebarCollapsible: sidebarConfig.collapsible, sidebarSide: sidebarConfig.side, }) - void saveThemePrefsAction({ - sidebarVariant: sidebarConfig.variant, - sidebarCollapsible: sidebarConfig.collapsible, - sidebarSide: sidebarConfig.side, - }) }, [sidebarConfig.variant, sidebarConfig.collapsible, sidebarConfig.side]) const handleReset = () => { @@ -78,7 +68,7 @@ export function ThemeCustomizer({ open, onOpenChange, initialPrefs }: ThemeCusto applyRadius("0.5rem") updateSidebarConfig({ variant: "inset", collapsible: "offcanvas", side: "left" }) saveLocalThemePrefs({ colorTheme: "default", tweakcnTheme: "", radius: "0.5rem", sidebarVariant: "inset", sidebarCollapsible: "offcanvas", sidebarSide: "left" }) - void saveThemePrefsAction({ colorTheme: "default", tweakcnTheme: "", radius: "0.5rem" }) + void saveThemePrefsAction({ colorTheme: "default", tweakcnTheme: "", radius: "0.5rem", sidebarVariant: "inset", sidebarCollapsible: "offcanvas", sidebarSide: "left" }) } const handleImport = (themeData: ImportedTheme) => {