Skip to content

Commit e5d4916

Browse files
committed
address CodeRabbit suggestions
1 parent e41ef46 commit e5d4916

File tree

4 files changed

+22
-24
lines changed

4 files changed

+22
-24
lines changed

apps/web/components/dashboard/preview/ReaderSettingsPopover.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
TooltipContent,
2121
TooltipTrigger,
2222
} from "@/components/ui/tooltip";
23+
import { useTranslation } from "@/lib/i18n/client";
2324
import { useReaderSettings } from "@/lib/readerSettings";
2425
import {
2526
Globe,
@@ -51,6 +52,7 @@ export default function ReaderSettingsPopover({
5152
onOpenChange,
5253
variant = "outline",
5354
}: ReaderSettingsPopoverProps) {
55+
const { t } = useTranslation();
5456
const {
5557
settings,
5658
serverSettings,
@@ -78,15 +80,15 @@ export default function ReaderSettingsPopover({
7880
// Build tooltip message for the settings button
7981
const getSettingsTooltip = () => {
8082
if (hasSessionChanges && hasLocalOverrides) {
81-
return "Unsaved preview changes; device settings differ from global";
83+
return t("settings.info.reader_settings.tooltip_preview_and_local");
8284
}
8385
if (hasSessionChanges) {
84-
return "Unsaved preview changes";
86+
return t("settings.info.reader_settings.tooltip_preview");
8587
}
8688
if (hasLocalOverrides) {
87-
return "Device settings differ from global";
89+
return t("settings.info.reader_settings.tooltip_local");
8890
}
89-
return "Reading settings";
91+
return t("settings.info.reader_settings.tooltip_default");
9092
};
9193

9294
return (

apps/web/lib/i18n/locales/en/translation.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@
152152
"clear_local_overrides": "Clear device settings",
153153
"serif": "Serif",
154154
"sans": "Sans Serif",
155-
"mono": "Monospace"
155+
"mono": "Monospace",
156+
"tooltip_default": "Reading settings",
157+
"tooltip_preview": "Unsaved preview changes",
158+
"tooltip_local": "Device settings differ from global",
159+
"tooltip_preview_and_local": "Unsaved preview changes; device settings differ from global"
156160
}
157161
},
158162
"stats": {

apps/web/lib/readerSettings.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ export function useReaderSettings() {
127127
const apiUtils = api.useUtils();
128128
const { mutate: updateServerSettings } = api.users.updateSettings.useMutation(
129129
{
130+
onSuccess: () => {
131+
// Clear session and local overrides only after successful server save
132+
setSessionOverrides({});
133+
setLocalOverrides({});
134+
saveLocalOverridesToStorage({});
135+
},
130136
onSettled: () => {
131137
apiUtils.users.settings.invalidate();
132138
},
@@ -212,16 +218,8 @@ export function useReaderSettings() {
212218
readerLineHeight: settingsToSave.lineHeight,
213219
readerFontFamily: settingsToSave.fontFamily,
214220
});
215-
// Clear session and local overrides
216-
setSessionOverrides({});
217-
setLocalOverrides({});
218-
saveLocalOverridesToStorage({});
219-
}, [
220-
effectiveSettings,
221-
updateServerSettings,
222-
setSessionOverrides,
223-
setLocalOverrides,
224-
]);
221+
// Note: Session and local overrides are cleared in onSuccess callback
222+
}, [effectiveSettings, updateServerSettings, setPendingServerSave]);
225223

226224
// Clear all server defaults (set to null)
227225
const clearServerDefaults = useCallback(() => {

packages/trpc/models/users.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -478,15 +478,9 @@ export class User {
478478
backupsEnabled: input.backupsEnabled,
479479
backupsFrequency: input.backupsFrequency,
480480
backupsRetentionDays: input.backupsRetentionDays,
481-
...(input.readerFontSize !== undefined && {
482-
readerFontSize: input.readerFontSize,
483-
}),
484-
...(input.readerLineHeight !== undefined && {
485-
readerLineHeight: input.readerLineHeight,
486-
}),
487-
...(input.readerFontFamily !== undefined && {
488-
readerFontFamily: input.readerFontFamily,
489-
}),
481+
readerFontSize: input.readerFontSize,
482+
readerLineHeight: input.readerLineHeight,
483+
readerFontFamily: input.readerFontFamily,
490484
})
491485
.where(eq(users.id, this.user.id));
492486
}

0 commit comments

Comments
 (0)