Restore compact Changes diff controls (#1945)
* feat(app): restore compact Changes diff controls Keep the folder tree behind a view toggle while preserving the flat file list as the default. Move secondary diff options into the overflow menu so the Changes toolbar stays compact. * fix(app): mirror whitespace diff option copy * fix(app): polish diff controls review follow-up
This commit is contained in:
@@ -28,6 +28,7 @@ describe("loadChangesPreferencesFromStorage", () => {
|
||||
|
||||
expect(result).toEqual({
|
||||
layout: "unified",
|
||||
viewMode: "flat",
|
||||
wrapLines: true,
|
||||
hideWhitespace: false,
|
||||
});
|
||||
@@ -37,6 +38,7 @@ describe("loadChangesPreferencesFromStorage", () => {
|
||||
it("loads persisted layout and whitespace preferences without rewriting storage", async () => {
|
||||
const persisted = JSON.stringify({
|
||||
layout: "split",
|
||||
viewMode: "tree",
|
||||
hideWhitespace: true,
|
||||
wrapLines: false,
|
||||
});
|
||||
@@ -48,6 +50,7 @@ describe("loadChangesPreferencesFromStorage", () => {
|
||||
|
||||
expect(result).toEqual({
|
||||
layout: "split",
|
||||
viewMode: "tree",
|
||||
hideWhitespace: true,
|
||||
wrapLines: false,
|
||||
});
|
||||
@@ -64,11 +67,16 @@ describe("saveChangesPreferences", () => {
|
||||
|
||||
await saveChangesPreferences({
|
||||
queryClient,
|
||||
updates: { layout: "split", hideWhitespace: true },
|
||||
updates: { layout: "split", viewMode: "tree", hideWhitespace: true },
|
||||
storage,
|
||||
});
|
||||
|
||||
const expected = { ...DEFAULT_CHANGES_PREFERENCES, layout: "split", hideWhitespace: true };
|
||||
const expected = {
|
||||
...DEFAULT_CHANGES_PREFERENCES,
|
||||
layout: "split",
|
||||
viewMode: "tree",
|
||||
hideWhitespace: true,
|
||||
};
|
||||
expect(queryClient.getQueryData(CHANGES_PREFERENCES_QUERY_KEY)).toEqual(expected);
|
||||
expect(storage.entries.get(CHANGES_PREFERENCES_STORAGE_KEY)).toBe(JSON.stringify(expected));
|
||||
});
|
||||
|
||||
@@ -7,18 +7,21 @@ export const CHANGES_PREFERENCES_QUERY_KEY = ["changes-preferences"];
|
||||
|
||||
const changesPreferencesSchema = z.object({
|
||||
layout: z.enum(["unified", "split"]).optional(),
|
||||
viewMode: z.enum(["flat", "tree"]).optional(),
|
||||
wrapLines: z.boolean().optional(),
|
||||
hideWhitespace: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export interface ChangesPreferences {
|
||||
layout: "unified" | "split";
|
||||
viewMode: "flat" | "tree";
|
||||
wrapLines: boolean;
|
||||
hideWhitespace: boolean;
|
||||
}
|
||||
|
||||
export const DEFAULT_CHANGES_PREFERENCES: ChangesPreferences = {
|
||||
layout: "unified",
|
||||
viewMode: "flat",
|
||||
wrapLines: false,
|
||||
hideWhitespace: false,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user