Skip to content

Commit f98decb

Browse files
fix: show restore defaults only on General settings (#1710)
1 parent 3c6a700 commit f98decb

1 file changed

Lines changed: 31 additions & 27 deletions

File tree

apps/web/src/routes/settings.tsx

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,33 @@
11
import { RotateCcwIcon } from "lucide-react";
2-
import { Outlet, createFileRoute, redirect } from "@tanstack/react-router";
2+
import { Outlet, createFileRoute, redirect, useLocation } from "@tanstack/react-router";
33
import { useEffect, useState } from "react";
44

55
import { useSettingsRestore } from "../components/settings/SettingsPanels";
66
import { Button } from "../components/ui/button";
77
import { SidebarInset, SidebarTrigger } from "../components/ui/sidebar";
88
import { isElectron } from "../env";
99

10+
function 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+
1026
function 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

0 commit comments

Comments
 (0)