feat: refactor document opening/preview logic to support preview/sidepanel actions.
This commit is contained in:
@@ -4,8 +4,8 @@ import { useNavigate } from 'react-router-dom';
|
||||
import {
|
||||
DocumentsFilterProvider,
|
||||
} from '../documents/context/DocumentsFilterContext';
|
||||
import { PreviewProvider } from '../preview/PreviewContext';
|
||||
import { DocumentOpenProvider } from '../context/DocumentOpenContext';
|
||||
import { PreviewProvider, usePreviewContext } from '../preview/PreviewContext';
|
||||
import { DocumentOpenProvider } from '../contexts/DocumentOpenContext';
|
||||
import { useWorkspaceSurface } from './useWorkspaceSurface';
|
||||
import { DocumentsHeaderBreadcrumb } from '../documents/panel/DocumentsPanelHeader';
|
||||
import { SidebarProvider, useSidebarContext } from '../sidebar/SidebarContext';
|
||||
@@ -24,8 +24,11 @@ const DocumentsRouteContent: React.FC = () => {
|
||||
const {
|
||||
sidebarSuppressed,
|
||||
expandSidebar,
|
||||
openDetailPanel,
|
||||
} = usePanelManager();
|
||||
|
||||
const { openPreview } = usePreviewContext();
|
||||
|
||||
const sidebarHidden = sidebarCollapsed || sidebarSuppressed;
|
||||
|
||||
const handleHeaderBreadcrumbClick = useCallback((crumb: DocumentsHeaderBreadcrumb) => {
|
||||
@@ -40,6 +43,12 @@ const DocumentsRouteContent: React.FC = () => {
|
||||
navigate(`/documents/${documentId}`);
|
||||
}, [navigate]);
|
||||
|
||||
const handleOpenSidepanel = useCallback((docId: string) => {
|
||||
if (openDetailPanel) {
|
||||
openDetailPanel({ documentIds: [docId] });
|
||||
}
|
||||
}, [openDetailPanel]);
|
||||
|
||||
const documentsTablePropsWithNav = useMemo(() => (
|
||||
surfaceConfig.documentsTableProps
|
||||
? { ...surfaceConfig.documentsTableProps, onBreadcrumbNavigate: handleHeaderBreadcrumbClick }
|
||||
@@ -84,7 +93,11 @@ const DocumentsRouteContent: React.FC = () => {
|
||||
<PreviewProvider
|
||||
onNavigate={handleDocumentNavigate}
|
||||
>
|
||||
<DocumentOpenProvider onOpenViewer={handleDocumentNavigate}>
|
||||
<DocumentOpenProvider
|
||||
onOpenViewer={handleDocumentNavigate}
|
||||
onOpenPreview={openPreview}
|
||||
onOpenSidepanel={handleOpenSidepanel}
|
||||
>
|
||||
{content}
|
||||
</DocumentOpenProvider>
|
||||
</PreviewProvider>
|
||||
|
||||
Reference in New Issue
Block a user