This commit is contained in:
2025-11-25 00:42:32 +01:00
parent 81dd7b80d4
commit 4d30e47ee8
6 changed files with 31 additions and 5 deletions
+2 -1
View File
@@ -55,7 +55,8 @@ const DocumentsRouteContent: React.FC = () => {
}, []);
const renderSurface = () => {
const layoutClass = `documents-main${sidebarHidden ? ' documents-main--sidebar-hidden' : ''}`;
const detailMode = surface?.detailMode ?? null;
const layoutClass = `documents-main${sidebarHidden ? ' documents-main--sidebar-hidden' : ''}${detailMode === 'overlay' ? ' documents-main--overlay-detail' : ''}`;
const sidebarNode = !sidebarHidden && sidebarProps ? <Sidebar {...sidebarProps} /> : null;
const surfaceDetail = surface && (surface as { detail?: ReactNode }).detail ? (surface as { detail?: ReactNode }).detail : null;
const surfaceBody = surface ? surface.content : null;
+7 -2
View File
@@ -27,7 +27,7 @@ export type DetailPanelProps = (ComponentProps<typeof DocumentViewerPanel> & {
) => Promise<void>;
}) | null;
export type WorkspaceSurface = { content: ReactNode; detail?: ReactNode | null } | null;
export type WorkspaceSurface = { content: ReactNode; detail?: ReactNode | null; detailMode?: 'overlay' | 'inline' | null } | null;
export interface UseWorkspaceSurfaceArgs {
sidebarHidden?: boolean;
@@ -100,7 +100,10 @@ export const useWorkspaceSurface = ({
}
const sidebarToggle = renderSidebarToggle ? renderSidebarToggle() : null;
const viewMode = documentsTableProps.viewMode;
const sidebarMode = viewMode === 'desk' ? 'overlay' : 'inline';
const detailMode: 'overlay' | 'inline' | null = detailPanelOpen && detailPanelProps ? sidebarMode : null;
const detail = detailPanelOpen && detailPanelProps
? (() => {
const {
@@ -114,6 +117,7 @@ export const useWorkspaceSurface = ({
const viewer = (
<DocumentViewerPanel
variant="sidebar"
sidebarMode={sidebarMode}
onCollapsePanel={onClose}
onMaximizePanel={onOpenPreview}
tagOptions={tagOptions}
@@ -141,6 +145,7 @@ export const useWorkspaceSurface = ({
/>
),
detail,
detailMode,
};
}, [
documentsTableProps,
@@ -205,7 +210,7 @@ export const useWorkspaceSurface = ({
)
: viewer;
return { content, detail: null };
return { content, detail: null, detailMode: null };
}, [
showPreviewWorkspace,
previewWorkspaceDocument,