mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? Feat: Adjust the operation cell of the table on the file management page and dataset page #3221. ### Type of change - [x] New Feature (non-breaking change which adds functionality)
52 lines
1.1 KiB
TypeScript
52 lines
1.1 KiB
TypeScript
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;
|
|
className?: string;
|
|
}
|
|
|
|
const NewDocumentLink = ({
|
|
children,
|
|
link,
|
|
preventDefault = false,
|
|
color = 'rgb(15, 79, 170)',
|
|
documentId,
|
|
documentName,
|
|
prefix = 'file',
|
|
className,
|
|
}: 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: className ? '' : color, wordBreak: 'break-all' }}
|
|
className={className}
|
|
>
|
|
{children}
|
|
</a>
|
|
);
|
|
};
|
|
|
|
export default NewDocumentLink;
|