From efccdc9ba0450cd1470c8998343949399cd41471 Mon Sep 17 00:00:00 2001 From: mbaharip <62494292+mbahArip@users.noreply.github.com> Date: Sun, 7 Apr 2024 12:02:49 +0700 Subject: [PATCH] Update preview formats and handling --- src/app/@preview.doc.tsx | 8 ++++++++ src/app/@preview.unknown.tsx | 2 +- src/app/@preview.video.tsx | 2 +- src/utils/previewHelper.ts | 11 ++++++----- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/app/@preview.doc.tsx b/src/app/@preview.doc.tsx index e048992..3b6380a 100644 --- a/src/app/@preview.doc.tsx +++ b/src/app/@preview.doc.tsx @@ -16,6 +16,7 @@ type Props = { export default function PreviewDoc({ file }: Props) { const [docSrc, setDocSrc] = useState(""); + const [docBuffer, setDocBuffer] = useState(); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); @@ -27,6 +28,10 @@ export default function PreviewDoc({ file }: Props) { return; } const token = await CreateDownloadToken(); + const buffer = await fetch( + `/api/download/${file.encryptedId}?token=${token}`, + ).then((res) => res.arrayBuffer()); + setDocBuffer(buffer); setDocSrc(`/api/download/${file.encryptedId}?token=${token}`); } catch (error) { const e = error as Error; @@ -69,6 +74,9 @@ export default function PreviewDoc({ file }: Props) { documents={[ { uri: docSrc, + fileData: docBuffer, + fileName: file.name, + fileType: file.mimeType, }, ]} pluginRenderers={DocViewerRenderers} diff --git a/src/app/@preview.unknown.tsx b/src/app/@preview.unknown.tsx index 5f8cde0..b044810 100644 --- a/src/app/@preview.unknown.tsx +++ b/src/app/@preview.unknown.tsx @@ -26,7 +26,7 @@ export default function PreviewUnknown() { size={32} className='animate-spin text-foreground' /> -

Loading image...

+

Loading content...

) : (
diff --git a/src/utils/previewHelper.ts b/src/utils/previewHelper.ts index f0ad7f7..6295a2e 100644 --- a/src/utils/previewHelper.ts +++ b/src/utils/previewHelper.ts @@ -17,10 +17,10 @@ const extensionsMap: Record = { "mp4", "mkv", "webm", - "avi", - "mov", - "flv", - "wmv", + // "avi", + // "mov", + // "flv", + // "wmv", "mpg", "mpeg", "m4v", @@ -131,7 +131,8 @@ export function getFileType( export function getPreviewIcon(fileExtension: string, mimeType: string) { if (fileExtension === "ts") { if (mimeType.includes("video")) { - return iconMap["video"]; + // .ts video are not supported + return iconMap["unknown"]; } else { return iconMap["code"]; }