diff --git a/apps/web/src/components/Sidebar.logic.test.ts b/apps/web/src/components/Sidebar.logic.test.ts index 3a8c9da5a..531d811c7 100644 --- a/apps/web/src/components/Sidebar.logic.test.ts +++ b/apps/web/src/components/Sidebar.logic.test.ts @@ -318,17 +318,50 @@ describe("resolveThreadRowClassName", () => { describe("resolveProjectNameTone", () => { it("keeps the selected project name on its assigned project color", () => { - expect(resolveProjectNameTone({ isSelectedProject: true, visualIndex: 3 })).toBe("project"); + expect( + resolveProjectNameTone({ + isSelectedProject: true, + accentProjectNames: false, + visualIndex: 3, + }), + ).toBe("project"); }); - it("starts inactive project names on the stronger muted grey", () => { - expect(resolveProjectNameTone({ isSelectedProject: false, visualIndex: 0 })).toBe( - "mutedStrong", - ); + it("uses project color for all names when accentProjectNames is true", () => { + expect( + resolveProjectNameTone({ + isSelectedProject: false, + accentProjectNames: true, + visualIndex: 0, + }), + ).toBe("project"); + expect( + resolveProjectNameTone({ + isSelectedProject: false, + accentProjectNames: true, + visualIndex: 1, + }), + ).toBe("project"); }); - it("alternates inactive project names to a softer muted grey on the next row", () => { - expect(resolveProjectNameTone({ isSelectedProject: false, visualIndex: 1 })).toBe("mutedSoft"); + it("starts inactive project names on the stronger muted grey when accent is off", () => { + expect( + resolveProjectNameTone({ + isSelectedProject: false, + accentProjectNames: false, + visualIndex: 0, + }), + ).toBe("mutedStrong"); + }); + + it("alternates inactive project names to a softer muted grey on the next row when accent is off", () => { + expect( + resolveProjectNameTone({ + isSelectedProject: false, + accentProjectNames: false, + visualIndex: 1, + }), + ).toBe("mutedSoft"); }); }); diff --git a/apps/web/src/components/Sidebar.logic.ts b/apps/web/src/components/Sidebar.logic.ts index 0711cb975..ac84a36ea 100644 --- a/apps/web/src/components/Sidebar.logic.ts +++ b/apps/web/src/components/Sidebar.logic.ts @@ -115,9 +115,10 @@ export function resolveThreadRowClassName(input: { export function resolveProjectNameTone(input: { isSelectedProject: boolean; + accentProjectNames: boolean; visualIndex: number; }): "project" | "mutedStrong" | "mutedSoft" { - if (input.isSelectedProject) { + if (input.isSelectedProject || input.accentProjectNames) { return "project"; } diff --git a/apps/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx index fb6c790bb..1c3956aa2 100644 --- a/apps/web/src/components/Sidebar.tsx +++ b/apps/web/src/components/Sidebar.tsx @@ -1286,6 +1286,7 @@ export default function Sidebar() { const isDark = resolvedTheme === "dark"; const projectNameTone = resolveProjectNameTone({ isSelectedProject: activeProjectId === project.id, + accentProjectNames: appSettings.sidebarAccentProjectNames, visualIndex, }); diff --git a/bun.lock b/bun.lock index bb1206fa0..effca71bb 100644 --- a/bun.lock +++ b/bun.lock @@ -19,7 +19,7 @@ }, "apps/desktop": { "name": "@okcode/desktop", - "version": "0.19.0", + "version": "0.20.0", "dependencies": { "effect": "catalog:", "electron": "40.6.0", @@ -103,7 +103,7 @@ }, "apps/mobile": { "name": "@okcode/mobile", - "version": "0.19.0", + "version": "0.20.0", "dependencies": { "@capacitor/android": "^8.3.0", "@capacitor/app": "^8.1.0", @@ -123,7 +123,7 @@ }, "apps/server": { "name": "okcodes", - "version": "0.19.0", + "version": "0.20.0", "bin": { "okcode": "./dist/index.mjs", }, @@ -154,7 +154,7 @@ }, "apps/web": { "name": "@okcode/web", - "version": "0.19.0", + "version": "0.20.0", "dependencies": { "@base-ui/react": "^1.2.0", "@codemirror/language": "^6.12.3", @@ -215,7 +215,7 @@ }, "packages/contracts": { "name": "@okcode/contracts", - "version": "0.19.0", + "version": "0.20.0", "dependencies": { "effect": "catalog:", },