Spaces:
Paused
Paused
import { | |
getExtension, | |
isSupportedPreviewDocumentType, | |
} from '@/utils/document-util'; | |
import React from 'react'; | |
interface IProps extends React.PropsWithChildren { | |
link?: string; | |
preventDefault?: boolean; | |
color?: string; | |
documentName: string; | |
documentId?: string; | |
prefix?: string; | |
} | |
const NewDocumentLink = ({ | |
children, | |
link, | |
preventDefault = false, | |
color = 'rgb(15, 79, 170)', | |
documentId, | |
documentName, | |
prefix = 'file', | |
}: IProps) => { | |
let nextLink = link; | |
const extension = getExtension(documentName); | |
if (!link) { | |
nextLink = `/document/${documentId}?ext=${extension}&prefix=${prefix}`; | |
} | |
return ( | |
<a | |
target="_blank" | |
onClick={ | |
!preventDefault || isSupportedPreviewDocumentType(extension) | |
? undefined | |
: (e) => e.preventDefault() | |
} | |
href={nextLink} | |
rel="noreferrer" | |
style={{ color, wordBreak: 'break-all' }} | |
> | |
{children} | |
</a> | |
); | |
}; | |
export default NewDocumentLink; | |