import { Form, Input, Modal, notification } from 'antd' import { useForm } from 'antd/lib/form/Form' import React, { useState } from 'react' import { req } from '../../../utils/Fetcher' interface Props { dataSource: [any[], (data: any[]) => void], dataActivate: [any, (data: any) => void], parent?: Record | null } const AddFolder: React.FC = ({ dataSource: [data, setData], dataActivate: [addFolder, setAddFolder], parent }) => { const [loadingAddFolder, setLoadingAddFolder] = useState() const [formAddFolder] = useForm() const createFolder = async () => { setLoadingAddFolder(true) const { name } = formAddFolder.getFieldsValue() try { const { data: result } = await req.post('/files/addFolder', { file: { name, parent_id: parent?.link_id || parent?.id || undefined } }) notification.success({ message: 'Success', description: `Folder ${result.file.name} created successfully!` }) formAddFolder.resetFields() setData([{ ...result.file, key: result.file.id }, ...data]) setAddFolder(false) setLoadingAddFolder(false) } catch (error: any) { setLoadingAddFolder(false) return notification.error({ message: 'Error', description: error?.message || error }) } } return setAddFolder(false)} okText="Add" title="Add Folder" onOk={() => formAddFolder.submit()} cancelButtonProps={{ shape: 'round' }} okButtonProps={{ loading: loadingAddFolder, shape: 'round' }}>
} export default AddFolder