all
This commit is contained in:
33
Downloads/Voltaserve/ui/src/components/viewer/viewer-pdf.tsx
Normal file
33
Downloads/Voltaserve/ui/src/components/viewer/viewer-pdf.tsx
Normal file
@ -0,0 +1,33 @@
|
||||
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
|
Reference in New Issue
Block a user