'use client' import { useCallback, useState } from 'react' import { RiCloseLine, RiUploadCloud2Line } from '@remixicon/react' import s from './index.module.css' import cn from '@/utils/classnames' import Modal from '@/app/components/base/modal' import Button from '@/app/components/base/button' import 'react-multi-email/dist/style.css' import FileInput from '@/app/components/base/file-uploader/file-input' import { FileContextProvider, useStore } from '@/app/components/base/file-uploader/store' import { useFile } from '@/app/components/base/file-uploader/hooks' import useSWR from 'swr' import { addMouldFile, delMouldFile, fetchMoulds } from '@/service/common' import { useDebounceFn } from 'ahooks' import Confirm from '@/app/components/base/confirm' import { downloadFile } from '@/app/components/base/file-uploader/utils' const DetailModel = ({ datasetId, transfer, onCancel, }: any) => { const [showConfirmDelete, setShowConfirmDelete] = useState(false) const [delId, setDelId] = useState('') const [delFileName, setDelFileName] = useState('') const fileConfig: any = { image: { detail: 'high', enabled: true, number_limits: 3, transfer_methods: [ 'local_file', 'remote_url', ], }, enabled: true, allowed_file_types: [ 'custom', ], allowed_file_extensions: [ '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx', '.pdf', '.csv', ], allowed_file_upload_methods: [ 'local_file', ], number_limits: 6, fileUploadConfig: { file_size_limit: 15, batch_count_limit: 5, image_file_size_limit: 10, video_file_size_limit: 100, audio_file_size_limit: 50, workflow_file_upload_limit: 10, }, } const files = useStore(s => s.files) const { handleRemoveFile, handleReUploadFile, } = useFile(fileConfig) const { data, mutate }: any = useSWR( { url: '/workspaces/123123', params: {}, }, fetchMoulds, ) const fileList = data?.data || [] const handleAdd = useCallback(async () => { try { const { result }: any = await addMouldFile({ url: '/workspaces/123123', body: { id: files[0].id, fileName: files[0].name }, }) handleRemoveFile(files[0].id) if (result === 'success') mutate() } catch (e) { } }, [files, handleRemoveFile]) const { run: getFiles } = useDebounceFn(() => { if (files.length > 0) { console.log(5555) console.log(files) handleAdd() } }, { wait: 500 }) getFiles() const handleDel = useCallback(async () => { try { const { result }: any = await delMouldFile({ url: '/workspaces/123123', body: { id: delId }, }) if (result === 'success') mutate() } catch (e) { } }, [delId]) return ( <>