Skip to content

Commit 00c8483

Browse files
committed
feat(web): persist diff view toggles to localStorage
Wraps the split/unified, word wrap, line number, and line background setters so changes made in the toolbar survive reloads instead of resetting to the config.toml defaults.
1 parent 1b1cfc2 commit 00c8483

1 file changed

Lines changed: 24 additions & 5 deletions

File tree

web/src/components/DiffView.tsx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,26 @@ export function DiffView({ source = "pr" }: { source?: "pr" | "local" } = {}) {
385385
}, []);
386386
const handleDiffThemeChange = useCallback((id: DiffThemeId) => {
387387
setDiffThemeId(id);
388-
localStorage.setItem("diff-theme", id);
388+
localStorage.setItem(STORAGE_DIFF_THEME, id);
389+
}, []);
390+
const handleDiffStyleToggle = useCallback(() => {
391+
setDiffStyle((prev) => {
392+
const next: DiffStyle = prev === "split" ? "unified" : "split";
393+
localStorage.setItem(STORAGE_DIFF_STYLE, next);
394+
return next;
395+
});
396+
}, []);
397+
const handleWordWrapChange = useCallback((value: boolean) => {
398+
setWordWrap(value);
399+
localStorage.setItem(STORAGE_WORD_WRAP, String(value));
400+
}, []);
401+
const handleShowLineNumbersChange = useCallback((value: boolean) => {
402+
setShowLineNumbers(value);
403+
localStorage.setItem(STORAGE_LINE_NUMBERS, String(value));
404+
}, []);
405+
const handleShowBackgroundChange = useCallback((value: boolean) => {
406+
setShowBackground(value);
407+
localStorage.setItem(STORAGE_LINE_BACKGROUNDS, String(value));
389408
}, []);
390409

391410
const clearCommentTarget = useCallback(() => {
@@ -649,7 +668,7 @@ export function DiffView({ source = "pr" }: { source?: "pr" | "local" } = {}) {
649668
showLineNumbers={showLineNumbers}
650669
isLocal={isLocal}
651670
onColorSchemeChange={handleColorSchemeChange}
652-
onDiffStyleToggle={() => setDiffStyle((s) => (s === "split" ? "unified" : "split"))}
671+
onDiffStyleToggle={handleDiffStyleToggle}
653672
onDiffThemeChange={handleDiffThemeChange}
654673
onSettingsOpenChange={setSettingsOpen}
655674
onSidebarToggle={openSidebar}
@@ -660,9 +679,9 @@ export function DiffView({ source = "pr" }: { source?: "pr" | "local" } = {}) {
660679
wordWrap={wordWrap}
661680
prUrl={prUrl}
662681
selectedDiffThemeLabel={selectedDiffTheme.label}
663-
setShowBackground={setShowBackground}
664-
setShowLineNumbers={setShowLineNumbers}
665-
setWordWrap={setWordWrap}
682+
setShowBackground={handleShowBackgroundChange}
683+
setShowLineNumbers={handleShowLineNumbersChange}
684+
setWordWrap={handleWordWrapChange}
666685
settingsOpen={settingsOpen}
667686
sidebarOpen={sidebarOpen}
668687
submittingPendingComments={submittingPendingComments}

0 commit comments

Comments
 (0)