1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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)
|