This commit is contained in:
2025-11-18 14:17:53 +01:00
parent ea6e42175a
commit 3e21e72953
11 changed files with 118 additions and 130 deletions
+17 -17
View File
@@ -39,7 +39,7 @@ interface DocumentLike {
version_number?: number;
version?: { content_type?: string | null } | null;
} | null;
previewEntry?: {
documentLink?: {
url: string;
alt?: string;
contentType?: string | null;
@@ -56,7 +56,7 @@ interface AssetLike {
interface DocumentViewerPanelProps extends DocumentSummarySectionProps {
document: DocumentLike | null;
previewEntry?: {
documentLink?: {
url?: string;
contentType?: string | null;
filename?: string | null;
@@ -79,7 +79,7 @@ interface DocumentViewerPanelProps extends DocumentSummarySectionProps {
export const createDocumentViewerHeaderActions = ({
document,
actionState,
previewEntry,
documentLink,
onZoom,
canZoom = false,
}) => {
@@ -87,7 +87,7 @@ export const createDocumentViewerHeaderActions = ({
return null;
}
const downloadHref = actionState?.downloadHref || previewEntry?.url;
const downloadHref = actionState?.downloadHref || documentLink?.url;
if (!downloadHref && !(canZoom && onZoom)) {
return null;
}
@@ -123,7 +123,7 @@ export const createDocumentViewerHeaderActions = ({
const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
document,
previewEntry,
documentLink,
hydrateDocument,
tagLookupById,
tagOptions,
@@ -254,11 +254,11 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
const [zoomOverlayOpen, setZoomOverlayOpen] = useState(false);
const handleZoomOpen = useCallback(() => {
if (!previewEntry?.url) {
if (!documentLink?.url) {
return;
}
setZoomOverlayOpen(true);
}, [previewEntry?.url]);
}, [documentLink?.url]);
const handleZoomClose = useCallback(() => {
setZoomOverlayOpen(false);
@@ -266,7 +266,7 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
useEffect(() => {
setZoomOverlayOpen(false);
}, [previewEntry?.url, document?.id]);
}, [documentLink?.url, document?.id]);
useEffect(() => {
if (hydrateDocument && document?.id) {
@@ -355,23 +355,23 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
}, [breadcrumbs, handleBreadcrumbNavigate]);
const zoomDisplay = useMemo(() => {
if (!previewEntry?.url || !document) {
if (!documentLink?.url || !document) {
return null;
}
const docContentType = document.content_type;
const versionContentType = document.current_version?.version?.content_type;
const normalizedContentType = previewEntry.contentType || docContentType || versionContentType || null;
const normalizedContentType = documentLink.contentType || docContentType || versionContentType || null;
return {
url: previewEntry.url,
url: documentLink.url,
alt: document.title,
contentType: normalizedContentType || undefined,
};
}, [previewEntry?.url, previewEntry?.contentType, document]);
}, [documentLink?.url, documentLink?.contentType, document]);
const headerActions = createDocumentViewerHeaderActions({
document,
actionState,
previewEntry,
documentLink,
onZoom: zoomDisplay ? handleZoomOpen : null,
canZoom: Boolean(zoomDisplay),
});
@@ -471,7 +471,7 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
<section className={viewerClassName}>
<DocumentViewerLayout
document={document}
previewEntry={previewEntry}
documentLink={documentLink}
summaryProps={summaryProps}
metadataPayload={metadataPayload}
contentTabConfig={contentTabConfig}
@@ -495,7 +495,7 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
const overlayDocument = useMemo(() => (
document && zoomDisplay?.url
? { ...document, previewEntry: zoomDisplay }
? { ...document, documentLink: zoomDisplay }
: document
), [document, zoomDisplay]);
@@ -549,7 +549,7 @@ export default DocumentViewerPanel;
export const createDocumentViewerSurface = ({
document,
previewEntry,
documentLink,
ensureAssetUrl,
ensurePreviewData,
getDocumentAsset,
@@ -581,7 +581,7 @@ export const createDocumentViewerSurface = ({
content: (
<DocumentViewerPanel
document={document}
previewEntry={previewEntry}
documentLink={documentLink}
hydrateDocument={ensurePreviewData}
tagLookupById={tagLookupById}
tagOptions={tagOptions}