add tree view (#906)

This commit is contained in:
马曜峥行
2026-04-14 20:08:59 +03:00
committed by GitHub
parent 1656c3bb93
commit 43a4c0c874
9 changed files with 434 additions and 35 deletions
+1
View File
@@ -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);
}
});
};
+1
View File
@@ -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;
+12
View File
@@ -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;
}