From 63fd7efc95c7dc840ff5bd861645a9d1637d5751 Mon Sep 17 00:00:00 2001 From: Jiayuan Date: Mon, 30 Mar 2026 02:41:41 +0800 Subject: [PATCH] feat(inbox): hide issue detail sidebar by default The properties sidebar in the inbox view is not needed by default. Add defaultSidebarOpen and layoutId props to IssueDetail so inbox can start with the sidebar collapsed and persist its layout separately. --- apps/web/app/(dashboard)/inbox/page.tsx | 2 ++ apps/web/features/issues/components/issue-detail.tsx | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/web/app/(dashboard)/inbox/page.tsx b/apps/web/app/(dashboard)/inbox/page.tsx index 9459ac40..636dc795 100644 --- a/apps/web/app/(dashboard)/inbox/page.tsx +++ b/apps/web/app/(dashboard)/inbox/page.tsx @@ -384,6 +384,8 @@ export default function InboxPage() { {selected?.issue_id ? ( { handleArchive(selected.id); }} diff --git a/apps/web/features/issues/components/issue-detail.tsx b/apps/web/features/issues/components/issue-detail.tsx index bca7bca2..34638ae7 100644 --- a/apps/web/features/issues/components/issue-detail.tsx +++ b/apps/web/features/issues/components/issue-detail.tsx @@ -167,13 +167,15 @@ function PropRow({ interface IssueDetailProps { issueId: string; onDelete?: () => void; + defaultSidebarOpen?: boolean; + layoutId?: string; } // --------------------------------------------------------------------------- // IssueDetail // --------------------------------------------------------------------------- -export function IssueDetail({ issueId, onDelete }: IssueDetailProps) { +export function IssueDetail({ issueId, onDelete, defaultSidebarOpen = true, layoutId = "multica_issue_detail_layout" }: IssueDetailProps) { const id = issueId; const router = useRouter(); const user = useAuthStore((s) => s.user); @@ -188,10 +190,10 @@ export function IssueDetail({ issueId, onDelete }: IssueDetailProps) { const nextIssue = currentIndex < allIssues.length - 1 ? allIssues[currentIndex + 1] : null; const { getActorName, getActorInitials } = useActorName(); const { defaultLayout, onLayoutChanged } = useDefaultLayout({ - id: "multica_issue_detail_layout", + id: layoutId, }); const sidebarRef = usePanelRef(); - const [sidebarOpen, setSidebarOpen] = useState(true); + const [sidebarOpen, setSidebarOpen] = useState(defaultSidebarOpen); const [issue, setIssue] = useState(null); const [timeline, setTimeline] = useState([]); const [subscribers, setSubscribers] = useState([]); @@ -948,7 +950,7 @@ export function IssueDetail({ issueId, onDelete }: IssueDetailProps) {