import { memo, useCallback, } from 'react' import { RiAttachmentLine, } from '@remixicon/react' import FileFromLinkOrLocal from '../file-from-link-or-local' import ActionButton from '@/app/components/base/action-button' import cn from '@/utils/classnames' import type { FileUpload } from '@/app/components/base/features/types' import { TransferMethod } from '@/types/app' type FileUploaderInChatInputProps = { fileConfig: FileUpload } const FileUploaderInChatInput = ({ fileConfig, }: FileUploaderInChatInputProps) => { const renderTrigger = useCallback((open: boolean) => { return ( <ActionButton size='l' className={cn(open && 'bg-state-base-hover')} > <RiAttachmentLine className='w-5 h-5' /> </ActionButton> ) }, []) return ( <FileFromLinkOrLocal trigger={renderTrigger} fileConfig={fileConfig} showFromLocal={fileConfig?.allowed_file_upload_methods?.includes(TransferMethod.local_file)} showFromLink={fileConfig?.allowed_file_upload_methods?.includes(TransferMethod.remote_url)} /> ) } export default memo(FileUploaderInChatInput)