Files
Docker/Downloads/Voltaserve/ui/src/components/viewer/viewer-pdf.tsx
2024-04-21 14:42:52 +02:00

34 lines
867 B
TypeScript

import { useMemo } from 'react'
import cx from 'classnames'
import { File } from '@/client/api/file'
import { getAccessTokenOrRedirect } from '@/infra/token'
export type ViewerPDFProps = {
file: File
}
const ViewerPDF = ({ file }: ViewerPDFProps) => {
const download = useMemo(() => file.preview || file.original, [file])
const urlPath = useMemo(() => (file.preview ? 'preview' : 'original'), [file])
const url = useMemo(() => {
if (!download || !download.extension) {
return ''
}
return `/proxy/api/v1/files/${file.id}/${urlPath}${
download.extension
}?${new URLSearchParams({
access_token: getAccessTokenOrRedirect(),
})}`
}, [file, download, urlPath])
if (!download) {
return null
}
return (
<iframe className={cx('w-full', 'h-full')} src={url} title={file.name} />
)
}
export default ViewerPDF