feat: update frontend for document handling and styling.

This commit is contained in:
2025-12-04 23:26:22 +01:00
parent 2389c6f4bc
commit 22e39420bb
18 changed files with 37 additions and 37 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ import { useNavigate } from 'react-router-dom';
import {
DocumentsFilterProvider,
} from '../documents/context/DocumentsFilterContext';
import { PreviewProvider, usePreviewContext } from '../preview/PreviewContext';
import { PreviewProvider, usePreviewContext } from '../viewer/PreviewContext';
import { DocumentOpenProvider } from '../lib/context/DocumentOpenContext';
import { useWorkspaceSurface } from './useWorkspaceSurface';
import { DocumentsHeaderBreadcrumb } from '../documents/panel/DocumentsPanelHeader';
+1 -1
View File
@@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo } from 'react';
import type { ComponentProps, ReactNode } from 'react';
import { SidebarExpandIcon } from '../components/icons';
import DocumentsPanel from '../documents/panel/DocumentsPanel';
import DocumentViewerPanel from '../preview/DocumentViewerPanel';
import DocumentViewerPanel from '../viewer/DocumentViewerPanel';
import { usePanelManager } from './PanelManagerContext';
import { FolderManagerProvider } from '../folders/FolderManagerContext';
import type { Identifier } from '../types/identifiers';
@@ -47,7 +47,7 @@ import useDocumentTagActions from '../features/tagging/useDocumentTagActions';
import useDocumentUploads from '../features/upload/useDocumentUploads';
import useDocumentDragHandlers from '../features/upload/useDocumentDragHandlers';
import useDocumentMutations from './useDocumentMutations';
import useDetailWorkspace from '../../detail/useDetailWorkspace';
import useDetailWorkspace from '../../viewer/logic/useDetailWorkspace';
import useWorkspaceTaxonomies from './useWorkspaceTaxonomies';
import useWorkspaceBreadcrumbs from '../logic/useWorkspaceBreadcrumbs';
import useWorkspaceSelectionSync from '../features/selection/useWorkspaceSelectionSync';
+3 -3
View File
@@ -2,17 +2,17 @@
@import './base/controls.css';
@import './layout/panel-header-controls.css';
@import './components/resize-handle.css';
@import './preview/preview-zoom.css';
@import './viewer/preview-zoom.css';
@import './base/iconography.css';
@import '../documents/styles/controls.css';
@import './layout/structure.css';
@import '../documents/styles/viewer.css';
@import '../viewer/styles/viewer.css';
@import '../documents/styles/drag-preview.css';
@import '../documents/styles/tags-correspondents.css';
@import '../documents/styles/panel-sections.css';
@import '../sidebar/sidebar.css';
@import '../documents/styles/listing.css';
@import '../detail/detail-panels.css';
@import '../viewer/styles/detail-panels.css';
@import './forms/elements.css';
@import './modals/status-drop.css';
@import '../settings/settings.css';
@@ -1,6 +1,6 @@
import { useCallback, useMemo, useRef } from 'react';
import type { JSX } from 'react';
import DocumentInfoPanel from '../documents/DocumentInfoPanel';
import DocumentInfoPanel from './components/DocumentInfoPanel';
import UnifiedDocumentViewer from './UnifiedDocumentViewer';
import type { Document } from '../types/documents';
@@ -14,10 +14,10 @@ import {
import {
buildCorrespondentOptions,
sortCorrespondents,
} from '../documents/DocumentSummarySection';
import { usePreviewContext } from '../preview/PreviewContext';
import type { DocumentSummarySectionProps } from '../documents/DocumentSummarySection';
import { extractDocumentMetadataPayload } from '../documents/documentSummary';
} from './components/DocumentSummarySection';
import { usePreviewContext } from './PreviewContext';
import type { DocumentSummarySectionProps } from './components/DocumentSummarySection';
import { extractDocumentMetadataPayload } from './logic/documentSummary';
import { createDocumentActionState } from '../documents/documentActions';
import { resolveDocumentAssetUrl } from '../lib/assets/AssetManager';
import PanelHeader from '../components/PanelHeader';
@@ -1,5 +1,5 @@
import React, { useState, useCallback, useMemo, useRef } from 'react';
import PreviewZoomOverlay from '../detail/PreviewZoomOverlay';
import PreviewZoomOverlay from './components/PreviewZoomOverlay';
import type { Document } from '../types/documents';
import type { Identifier } from '../types/identifiers';
import { createSafeContext } from '../utils/createSafeContext';
@@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import type { ReactNode } from 'react';
import DocumentSummarySection, { DocumentSummarySectionProps } from './DocumentSummarySection';
import { describeDocumentSummary, extractDocumentMetadataPayload, type DocumentSummaryRow } from './documentSummary';
import { describeDocumentSummary, extractDocumentMetadataPayload, type DocumentSummaryRow } from '../logic/documentSummary';
type PanelTab = { id: string; label: string; render: (context?: Record<string, unknown>) => ReactNode };
@@ -1,21 +1,21 @@
import React, { useCallback, useEffect, useMemo, useState, type FormEvent } from 'react';
import { Link } from 'react-router-dom';
import { EditIcon, IconX, PlusIcon } from '../components/icons';
import InlineRenameInput from './components/InlineRenameInput';
import { EditIcon, IconX, PlusIcon } from '../../components/icons';
import InlineRenameInput from '../../documents/components/InlineRenameInput';
import SelectionAssignmentMenu, {
SelectionAssignmentMenuItem,
type NormalizedSelectionAssignmentItem,
} from './features/selection/SelectionAssignmentMenu';
import { getTagColorStyle } from '../utils/colors';
} from '../../documents/features/selection/SelectionAssignmentMenu';
import { getTagColorStyle } from '../../utils/colors';
import {
formatDate,
toDateInputValue,
toIssuedTimestamp,
} from '../utils/date';
import { describeDocumentSummary, type DocumentSummaryRow } from './documentSummary';
} from '../../utils/date';
import { describeDocumentSummary, type DocumentSummaryRow } from '../logic/documentSummary';
import { useFolderManager } from '../folders/FolderManagerContext';
import type { FolderId, Identifier, TagId } from '../types/identifiers';
import { useFolderManager } from '../../folders/FolderManagerContext';
import type { FolderId, Identifier, TagId } from '../../types/identifiers';
interface TagEntry {
id?: TagId;
@@ -29,7 +29,7 @@ interface CorrespondentEntry {
count?: number;
}
import type { Document } from '../types/documents';
import type { Document } from '../../types/documents';
interface TagSectionProps {
tags?: TagEntry[];
@@ -1,10 +1,10 @@
import React, { useEffect, useRef, useState } from 'react';
import { createPortal } from 'react-dom';
import UnifiedDocumentViewer from '../preview/UnifiedDocumentViewer';
import PanelHeader from '../components/PanelHeader';
import { IconX, DownloadIcon, FileInfoIcon } from '../components/icons';
import UnifiedDocumentViewer from '../UnifiedDocumentViewer';
import PanelHeader from '../../components/PanelHeader';
import { IconX, DownloadIcon, FileInfoIcon } from '../../components/icons';
import type { Document } from '../types/documents';
import type { Document } from '../../types/documents';
interface PreviewZoomOverlayProps {
open?: boolean;
@@ -1,8 +1,8 @@
import { formatFileSize } from '../utils/format';
import { formatDateTime as defaultFormatDateTime } from '../utils/date';
import { DEFAULT_FOLDER_NAME } from '../app/workspaceUtils';
import { formatFileSize } from '../../utils/format';
import { formatDateTime as defaultFormatDateTime } from '../../utils/date';
import { DEFAULT_FOLDER_NAME } from '../../app/workspaceUtils';
import type { DocumentTag, DocumentCorrespondent, Document } from '../types/documents';
import type { DocumentTag, DocumentCorrespondent, Document } from '../../types/documents';
interface DescribeSummaryOptions {
formatDateTime?: typeof defaultFormatDateTime;
@@ -1,12 +1,12 @@
import { useCallback, useEffect, useMemo } from 'react';
import type { MutableRefObject } from 'react';
import { resolveDocumentAssetUrl } from '../lib/assets/AssetManager';
import { useDetailPanel } from '../app/useDetailPanel';
import { DEFAULT_FOLDER_NAME } from '../app/workspaceUtils';
import type { DocumentInfoPanelProps } from '../documents/DocumentInfoPanel';
import type { EnsureAssetUrl, GetDocumentAsset } from '../utils/ocr';
import type { Identifier } from '../types/identifiers';
import type { Document } from '../types/documents';
import { resolveDocumentAssetUrl } from '../../lib/assets/AssetManager';
import { useDetailPanel } from '../../app/useDetailPanel';
import { DEFAULT_FOLDER_NAME } from '../../app/workspaceUtils';
import type { DocumentInfoPanelProps } from '../components/DocumentInfoPanel';
import type { EnsureAssetUrl, GetDocumentAsset } from '../../utils/ocr';
import type { Identifier } from '../../types/identifiers';
import type { Document } from '../../types/documents';
interface FolderNode {
id: Identifier | 'root';