authorgravatar for 73941998+UtkarshUsername@users.noreply.github.comUtkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> 2026-04-18 02:19:18+05:30
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-04-17 13:49:18-07:00
log60387f67e99d68eba414d2c2e00c8ccdb145b0c3
treeba57c2d1a0e73493d1434bff087c1087572c302a
parentce94feeea156e77f465c0330e89c0cb77eb0196f
signature Signed by PGP key B5690EEEBB952194

fix: show restore defaults only on General settings (#1710)


1 files changed, 31 insertions(+), 27 deletions(-)

apps/web/src/routes/settings.tsx+31-27
......@@ -1,5 +1,5 @@
11import { RotateCcwIcon } from "lucide-react";
2import { Outlet, createFileRoute, redirect } from "@tanstack/react-router";
2import { Outlet, createFileRoute, redirect, useLocation } from "@tanstack/react-router";
33import { useEffect, useState } from "react";
44
55import { useSettingsRestore } from "../components/settings/SettingsPanels";
......@@ -7,11 +7,27 @@ import { Button } from "../components/ui/button";
77import { SidebarInset, SidebarTrigger } from "../components/ui/sidebar";
88import { isElectron } from "../env";
99
10function RestoreDefaultsButton({ onRestored }: { onRestored: () => void }) {
11 const { changedSettingLabels, restoreDefaults } = useSettingsRestore(onRestored);
12
13 return (
14 <Button
15 size="xs"
16 variant="outline"
17 disabled={changedSettingLabels.length === 0}
18 onClick={() => void restoreDefaults()}
19 >
20 <RotateCcwIcon className="size-3.5" />
21 Restore defaults
22 </Button>
23 );
24}
25
1026function SettingsContentLayout() {
27 const location = useLocation();
1128 const [restoreSignal, setRestoreSignal] = useState(0);
12 const { changedSettingLabels, restoreDefaults } = useSettingsRestore(() =>
13 setRestoreSignal((value) => value + 1),
14 );
29 const showRestoreDefaults = location.pathname === "/settings/general";
30 const handleRestored = () => setRestoreSignal((value) => value + 1);
1531
1632 useEffect(() => {
1733 const onKeyDown = (event: KeyboardEvent) => {
......@@ -33,20 +49,14 @@ function SettingsContentLayout() {
3349 <div className="flex min-h-0 min-w-0 flex-1 flex-col bg-background text-foreground">
3450 {!isElectron && (
3551 <header className="border-b border-border px-3 py-2 sm:px-5">
36 <div className="flex items-center gap-2">
52 <div className="flex min-h-7 items-center gap-2 sm:min-h-6">
3753 <SidebarTrigger className="size-7 shrink-0 md:hidden" />
3854 <span className="text-sm font-medium text-foreground">Settings</span>
39 <div className="ms-auto flex items-center gap-2">
40 <Button
41 size="xs"
42 variant="outline"
43 disabled={changedSettingLabels.length === 0}
44 onClick={() => void restoreDefaults()}
45 >
46 <RotateCcwIcon className="size-3.5" />
47 Restore defaults
48 </Button>
49 </div>
55 {showRestoreDefaults ? (
56 <div className="ms-auto flex items-center gap-2">
57 <RestoreDefaultsButton onRestored={handleRestored} />
58 </div>
59 ) : null}
5060 </div>
5161 </header>
5262 )}
......@@ -56,17 +66,11 @@ function SettingsContentLayout() {
5666 <span className="text-xs font-medium tracking-wide text-muted-foreground/70">
5767 Settings
5868 </span>
59 <div className="ms-auto flex items-center gap-2">
60 <Button
61 size="xs"
62 variant="outline"
63 disabled={changedSettingLabels.length === 0}
64 onClick={() => void restoreDefaults()}
65 >
66 <RotateCcwIcon className="size-3.5" />
67 Restore defaults
68 </Button>
69 </div>
69 {showRestoreDefaults ? (
70 <div className="ms-auto flex items-center gap-2">
71 <RestoreDefaultsButton onRestored={handleRestored} />
72 </div>
73 ) : null}
7074 </div>
7175 )}
7276