add tree view (#906)
This commit is contained in:
@@ -557,6 +557,7 @@ export interface SettingsPayload {
|
||||
inputBarOffset?: number;
|
||||
diffLayoutPreference?: 'dynamic' | 'inline' | 'side-by-side';
|
||||
diffViewMode?: 'single' | 'stacked';
|
||||
gitChangesViewMode?: 'flat' | 'tree';
|
||||
directoryShowHidden?: boolean;
|
||||
filesViewShowGitignored?: boolean;
|
||||
openInAppId?: string;
|
||||
|
||||
@@ -31,6 +31,7 @@ type AppearanceSlice = {
|
||||
inputBarOffset: number;
|
||||
diffLayoutPreference: 'dynamic' | 'inline' | 'side-by-side';
|
||||
diffViewMode: 'single' | 'stacked';
|
||||
gitChangesViewMode: 'flat' | 'tree';
|
||||
};
|
||||
|
||||
let initialized = false;
|
||||
@@ -66,6 +67,7 @@ export const startAppearanceAutoSave = (): void => {
|
||||
inputBarOffset: useUIStore.getState().inputBarOffset,
|
||||
diffLayoutPreference: useUIStore.getState().diffLayoutPreference,
|
||||
diffViewMode: useUIStore.getState().diffViewMode,
|
||||
gitChangesViewMode: useUIStore.getState().gitChangesViewMode,
|
||||
};
|
||||
|
||||
let pending: Partial<DesktopSettings> | null = null;
|
||||
@@ -113,6 +115,7 @@ export const startAppearanceAutoSave = (): void => {
|
||||
inputBarOffset: state.inputBarOffset,
|
||||
diffLayoutPreference: state.diffLayoutPreference,
|
||||
diffViewMode: state.diffViewMode,
|
||||
gitChangesViewMode: state.gitChangesViewMode,
|
||||
};
|
||||
|
||||
const diff: Partial<DesktopSettings> = {};
|
||||
@@ -186,6 +189,9 @@ export const startAppearanceAutoSave = (): void => {
|
||||
if (current.diffViewMode !== previous.diffViewMode) {
|
||||
diff.diffViewMode = current.diffViewMode;
|
||||
}
|
||||
if (current.gitChangesViewMode !== previous.gitChangesViewMode) {
|
||||
diff.gitChangesViewMode = current.gitChangesViewMode;
|
||||
}
|
||||
|
||||
previous = current;
|
||||
|
||||
@@ -193,4 +199,5 @@ export const startAppearanceAutoSave = (): void => {
|
||||
schedule(diff);
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
@@ -137,6 +137,7 @@ export type DesktopSettings = {
|
||||
recentModels?: Array<{ providerID: string; modelID: string }>;
|
||||
diffLayoutPreference?: 'dynamic' | 'inline' | 'side-by-side';
|
||||
diffViewMode?: 'single' | 'stacked';
|
||||
gitChangesViewMode?: 'flat' | 'tree';
|
||||
directoryShowHidden?: boolean;
|
||||
filesViewShowGitignored?: boolean;
|
||||
|
||||
|
||||
@@ -450,6 +450,12 @@ const applyDesktopUiPreferences = (settings: DesktopSettings) => {
|
||||
store.setDiffViewMode(settings.diffViewMode);
|
||||
}
|
||||
}
|
||||
if (typeof settings.gitChangesViewMode === 'string'
|
||||
&& (settings.gitChangesViewMode === 'flat' || settings.gitChangesViewMode === 'tree')) {
|
||||
if (settings.gitChangesViewMode !== store.gitChangesViewMode) {
|
||||
store.setGitChangesViewMode(settings.gitChangesViewMode);
|
||||
}
|
||||
}
|
||||
if (typeof settings.directoryShowHidden === 'boolean') {
|
||||
setDirectoryShowHidden(settings.directoryShowHidden, { persist: false });
|
||||
}
|
||||
@@ -832,6 +838,12 @@ const sanitizeWebSettings = (payload: unknown): DesktopSettings | null => {
|
||||
) {
|
||||
result.diffViewMode = candidate.diffViewMode;
|
||||
}
|
||||
if (
|
||||
typeof candidate.gitChangesViewMode === 'string'
|
||||
&& (candidate.gitChangesViewMode === 'flat' || candidate.gitChangesViewMode === 'tree')
|
||||
) {
|
||||
result.gitChangesViewMode = candidate.gitChangesViewMode;
|
||||
}
|
||||
if (typeof candidate.directoryShowHidden === 'boolean') {
|
||||
result.directoryShowHidden = candidate.directoryShowHidden;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user