fix(files): prevent autosave data loss on load lag and binary files
Guard FilesView autosave until the selected file has finished loading, refuse binary/PDF/office/archive text saves, and add a persisted global autoSaveEnabled setting (default true) under Settings → General. Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
co-authored by
Serhii Dziupin
parent
a4c7bac303
commit
5b727ed53c
@@ -31,6 +31,7 @@ type AppearanceSlice = {
|
||||
summaryLength: number;
|
||||
maxLastMessageLength: number;
|
||||
autoDeleteEnabled: boolean;
|
||||
autoSaveEnabled: boolean;
|
||||
autoDeleteAfterDays: number;
|
||||
sessionRetentionAction: 'archive' | 'delete';
|
||||
fontSize: number;
|
||||
@@ -78,6 +79,7 @@ export const startAppearanceAutoSave = (): void => {
|
||||
summaryLength: useUIStore.getState().summaryLength,
|
||||
maxLastMessageLength: useUIStore.getState().maxLastMessageLength,
|
||||
autoDeleteEnabled: useUIStore.getState().autoDeleteEnabled,
|
||||
autoSaveEnabled: useUIStore.getState().autoSaveEnabled,
|
||||
autoDeleteAfterDays: useUIStore.getState().autoDeleteAfterDays,
|
||||
sessionRetentionAction: useUIStore.getState().sessionRetentionAction,
|
||||
fontSize: useUIStore.getState().fontSize,
|
||||
@@ -117,6 +119,7 @@ export const startAppearanceAutoSave = (): void => {
|
||||
summaryLength: state.summaryLength,
|
||||
maxLastMessageLength: state.maxLastMessageLength,
|
||||
autoDeleteEnabled: state.autoDeleteEnabled,
|
||||
autoSaveEnabled: state.autoSaveEnabled,
|
||||
autoDeleteAfterDays: state.autoDeleteAfterDays,
|
||||
sessionRetentionAction: state.sessionRetentionAction,
|
||||
fontSize: state.fontSize,
|
||||
@@ -196,6 +199,9 @@ export const startAppearanceAutoSave = (): void => {
|
||||
if (current.autoDeleteEnabled !== previous.autoDeleteEnabled) {
|
||||
diff.autoDeleteEnabled = current.autoDeleteEnabled;
|
||||
}
|
||||
if (current.autoSaveEnabled !== previous.autoSaveEnabled) {
|
||||
diff.autoSaveEnabled = current.autoSaveEnabled;
|
||||
}
|
||||
if (current.autoDeleteAfterDays !== previous.autoDeleteAfterDays) {
|
||||
diff.autoDeleteAfterDays = current.autoDeleteAfterDays;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user