diff --git a/apps/desktop/src/renderer/src/pages/team-surface-pages.tsx b/apps/desktop/src/renderer/src/pages/team-surface-pages.tsx
index ce151d3abf..e513fe4f5b 100644
--- a/apps/desktop/src/renderer/src/pages/team-surface-pages.tsx
+++ b/apps/desktop/src/renderer/src/pages/team-surface-pages.tsx
@@ -3,7 +3,7 @@ import {
TeamIssuesPage,
TeamProjectsPage,
TeamAutopilotsPage,
- TeamSettingsPage,
+ TeamDetailPage,
} from "@multica/views/teams";
// Router wrappers: resolve the :teamKey param and hand it to the shared
@@ -27,8 +27,8 @@ export function TeamAutopilotsRoute() {
return ;
}
-export function TeamSettingsRoute() {
+export function TeamDetailRoute() {
const { teamKey } = useParams<{ teamKey: string }>();
if (!teamKey) return null;
- return ;
+ return ;
}
diff --git a/apps/desktop/src/renderer/src/routes.tsx b/apps/desktop/src/renderer/src/routes.tsx
index 5ac3cab7cc..469532e79c 100644
--- a/apps/desktop/src/renderer/src/routes.tsx
+++ b/apps/desktop/src/renderer/src/routes.tsx
@@ -16,7 +16,7 @@ import {
TeamIssuesRoute,
TeamProjectsRoute,
TeamAutopilotsRoute,
- TeamSettingsRoute,
+ TeamDetailRoute,
} from "./pages/team-surface-pages";
import { IssuesPage } from "@multica/views/issues/components";
import { ProjectsPage } from "@multica/views/projects/components";
@@ -174,9 +174,9 @@ export const appRoutes: RouteObject[] = [
handle: { title: "Team autopilots" },
},
{
- path: "team/:teamKey/settings",
- element: ,
- handle: { title: "Team settings" },
+ path: "team/:teamKey",
+ element: ,
+ handle: { title: "Team detail" },
},
{
path: "projects/:id",
diff --git a/apps/web/app/[workspaceSlug]/(dashboard)/team/[teamKey]/page.tsx b/apps/web/app/[workspaceSlug]/(dashboard)/team/[teamKey]/page.tsx
index c7189916b1..f2e17798b4 100644
--- a/apps/web/app/[workspaceSlug]/(dashboard)/team/[teamKey]/page.tsx
+++ b/apps/web/app/[workspaceSlug]/(dashboard)/team/[teamKey]/page.tsx
@@ -1,7 +1,7 @@
"use client";
import { use } from "react";
-import { TeamSettingsPage } from "@multica/views/teams";
+import { TeamDetailPage } from "@multica/views/teams";
export default function Page({
params,
@@ -9,5 +9,5 @@ export default function Page({
params: Promise<{ teamKey: string }>;
}) {
const { teamKey } = use(params);
- return ;
+ return ;
}
diff --git a/packages/core/paths/paths.ts b/packages/core/paths/paths.ts
index b0ccb3bce1..321ab3df61 100644
--- a/packages/core/paths/paths.ts
+++ b/packages/core/paths/paths.ts
@@ -32,7 +32,7 @@ function workspaceScoped(slug: string) {
teamIssues: (key: string) => `${ws}/team/${encode(key)}/issues`,
teamProjects: (key: string) => `${ws}/team/${encode(key)}/projects`,
teamAutopilots: (key: string) => `${ws}/team/${encode(key)}/autopilots`,
- teamSettings: (key: string) => `${ws}/team/${encode(key)}/settings`,
+ teamDetail: (key: string) => `${ws}/team/${encode(key)}`,
projects: () => `${ws}/projects`,
projectDetail: (id: string) => `${ws}/projects/${encode(id)}`,
autopilots: () => `${ws}/autopilots`,
diff --git a/packages/views/layout/app-sidebar.tsx b/packages/views/layout/app-sidebar.tsx
index 99d11c5349..b416d3c273 100644
--- a/packages/views/layout/app-sidebar.tsx
+++ b/packages/views/layout/app-sidebar.tsx
@@ -215,13 +215,13 @@ function SortableTeamGroup({
team,
pathname,
buildHref,
- settingsHref,
+ detailHref,
forceCollapsed,
}: {
team: Team;
pathname: string;
buildHref: (pathKey: (typeof teamChildNav)[number]["pathKey"], teamKey: string) => string;
- settingsHref: string;
+ detailHref: string;
/** True while any team drag is in flight: every group renders collapsed so
all sortable items are the same height — variable-height blocks make
dnd-kit's rect math (and thus the whole gesture) feel broken. */
@@ -237,11 +237,10 @@ function SortableTeamGroup({
useEffect(() => {
if (isDragging) wasDragged.current = true;
}, [isDragging]);
- // The row itself is the team's home (overview/settings). It stays
- // highlighted anywhere inside the team (issues/projects/autopilots too) so
- // the sidebar always shows which team you're in.
- const teamBase = settingsHref.replace(/\/settings$/, "");
- const isTeamActive = isNavActive(pathname, teamBase);
+ // The row itself is the team's home (detail page). It stays highlighted
+ // anywhere inside the team (issues/projects/autopilots too) so the sidebar
+ // always shows which team you're in.
+ const isTeamActive = isNavActive(pathname, detailHref);
return (
}
+ render={
}
onClick={(event) => {
if (wasDragged.current) {
wasDragged.current = false;
@@ -282,7 +281,7 @@ function SortableTeamGroup({
e.stopPropagation();
collapse.onOpenChange(!collapse.open);
}}
- className="ml-1 flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-sm text-muted-foreground hover:bg-sidebar-accent hover:text-foreground"
+ className="-ml-1 flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-sm text-muted-foreground hover:bg-sidebar-accent hover:text-foreground"
>
p[pathKey](teamKey)}
- settingsHref={p.teamSettings(team.key)}
+ detailHref={p.teamDetail(team.key)}
/>
))}
diff --git a/packages/views/teams/components/index.ts b/packages/views/teams/components/index.ts
index daf0825d8a..739dec2a00 100644
--- a/packages/views/teams/components/index.ts
+++ b/packages/views/teams/components/index.ts
@@ -2,4 +2,4 @@ export { TeamsPage } from "./teams-page";
export { TeamPicker, TeamMultiPicker } from "./team-picker";
export { TeamIcon } from "./team-icon";
export { TeamIssuesPage, TeamProjectsPage, TeamAutopilotsPage } from "./team-surface-pages";
-export { TeamSettingsPage } from "./team-settings-page";
+export { TeamDetailPage } from "./team-detail-page";
diff --git a/packages/views/teams/components/team-detail-page.tsx b/packages/views/teams/components/team-detail-page.tsx
index 6a0e669131..4550b1fcde 100644
--- a/packages/views/teams/components/team-detail-page.tsx
+++ b/packages/views/teams/components/team-detail-page.tsx
@@ -46,13 +46,13 @@ const underline =
"rounded-none border-0 border-b border-input bg-transparent dark:bg-transparent px-0 shadow-none focus-visible:ring-0 focus-visible:border-foreground";
/**
- * Team settings — /team/:key/settings, Linear team-page shape. Left column is
- * the identity itself rendered as page text (icon picker applies on pick,
- * name and description commit on blur — no save buttons); the right column
- * holds members (avatar stack → checkbox config; saving an empty set
- * archives behind a confirm), go-to links, and archive.
+ * Team detail — /team/:key, the sidebar team row's landing page. A single
+ * narrow column: the identity rendered as page text (icon picker applies on
+ * pick, name and description commit on blur — no save buttons), then members
+ * (avatar stack → checkbox config; saving an empty set archives behind a
+ * confirm), go-to links, and archive.
*/
-export function TeamSettingsPage({ teamKey }: { teamKey: string }) {
+export function TeamDetailPage({ teamKey }: { teamKey: string }) {
const { t } = useT("teams");
const wsId = useWorkspaceId();
// Full list (not active-only): an archived team's settings stay viewable.
@@ -77,15 +77,11 @@ export function TeamSettingsPage({ teamKey }: { teamKey: string }) {
@@ -299,7 +295,7 @@ function MembersSection({ team }: { team: Team }) {
) : (
- {t(($) => $.picker.empty)}
+ {t(($) => $.settings.members_empty)}
)}
@@ -337,7 +333,7 @@ function MembersSection({ team }: { team: Team }) {
))}
{filteredMembers.length === 0 && (
- {t(($) => $.picker.empty)}
+ {t(($) => $.dialog.member_search_empty)}
)}
diff --git a/packages/views/teams/components/team-surface-pages.tsx b/packages/views/teams/components/team-surface-pages.tsx
index 70f883c447..5547b836ee 100644
--- a/packages/views/teams/components/team-surface-pages.tsx
+++ b/packages/views/teams/components/team-surface-pages.tsx
@@ -47,7 +47,7 @@ export function TeamIssuesPage({ teamKey }: { teamKey: string }) {
{/* Team name links into the team's settings page. */}
diff --git a/packages/views/teams/components/teams-page.tsx b/packages/views/teams/components/teams-page.tsx
index 4d08a4023e..69013b37fe 100644
--- a/packages/views/teams/components/teams-page.tsx
+++ b/packages/views/teams/components/teams-page.tsx
@@ -103,7 +103,7 @@ export function TeamsPage() {
diff --git a/packages/views/teams/index.ts b/packages/views/teams/index.ts
index 91b032abdd..25cdc971e4 100644
--- a/packages/views/teams/index.ts
+++ b/packages/views/teams/index.ts
@@ -6,5 +6,5 @@ export {
TeamIssuesPage,
TeamProjectsPage,
TeamAutopilotsPage,
- TeamSettingsPage,
+ TeamDetailPage,
} from "./components";