|
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; |
|
|