diff --git a/packages/views/projects/components/projects-page.test.tsx b/packages/views/projects/components/projects-page.test.tsx
index 1530fd2ad..614a4a289 100644
--- a/packages/views/projects/components/projects-page.test.tsx
+++ b/packages/views/projects/components/projects-page.test.tsx
@@ -112,6 +112,12 @@ vi.mock("@multica/ui/components/ui/dropdown-menu", () => ({
DropdownMenuContent: ({ children }: { children: React.ReactNode }) => (
{children}
),
+ DropdownMenuGroup: ({ children }: { children: React.ReactNode }) => (
+ {children}
+ ),
+ DropdownMenuLabel: ({ children }: { children: React.ReactNode }) => (
+ {children}
+ ),
DropdownMenuItem: ({
children,
onClick,
diff --git a/packages/views/projects/components/projects-page.tsx b/packages/views/projects/components/projects-page.tsx
index 2e5ecd283..b18c4fc08 100644
--- a/packages/views/projects/components/projects-page.tsx
+++ b/packages/views/projects/components/projects-page.tsx
@@ -27,6 +27,7 @@ import {
type ProjectColumnKey,
type ProjectListFilters,
type ProjectSortField,
+ type ProjectViewMode,
} from "@multica/core/projects";
import {
pinListOptions,
@@ -58,7 +59,9 @@ import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
+ DropdownMenuGroup,
DropdownMenuItem,
+ DropdownMenuLabel,
DropdownMenuRadioGroup,
DropdownMenuRadioItem,
DropdownMenuSeparator,
@@ -1150,32 +1153,55 @@ export function ProjectsPage() {
- {/* View toggle — a single button that flips table ⇄ cards.
- Pure presentation; coupled to nothing else. */}
-
- setViewMode(isCompact ? "comfortable" : "compact")}
- >
- {isCompact ? (
-
- ) : (
-
- )}
-
- {isCompact ? t(($) => $.page.view_table) : t(($) => $.page.view_cards)}
-
-
- }
- />
-
- {isCompact ? t(($) => $.page.view_cards) : t(($) => $.page.view_table)}
-
-
+ {/* View selector — a dropdown menu to pick the list view,
+ aligned with the issue list's view menu. The trigger shows
+ the active view; the menu carries every mode so new views
+ can be added as menu items. Pure presentation. */}
+
+
+
+ {isCompact ? (
+
+ ) : (
+
+ )}
+
+ {isCompact ? t(($) => $.page.view_table) : t(($) => $.page.view_cards)}
+
+
+ }
+ />
+ }
+ />
+ {t(($) => $.toolbar.view)}
+
+
+
+ {t(($) => $.toolbar.view)}
+
+ setViewMode(v as ProjectViewMode)}
+ >
+
+
+ {t(($) => $.page.view_table)}
+
+
+
+ {t(($) => $.page.view_cards)}
+
+
+
+