import { WarningOutlined } from '@ant-design/icons' import { Modal, Typography } from 'antd' import React, { useState } from 'react' import { req } from '../../../utils/Fetcher' interface Props { dataSource?: [any[], (data: any[]) => void], dataSelect: [any, (data: any) => void], onFinish?: (newData: any[]) => void } const Remove: React.FC = ({ dataSource, dataSelect: [selectDeleted, setSelectDeleted], onFinish }) => { const [loadingRemove, setLoadingRemove] = useState() // const [deleteMessage, setDeleteMessage] = useState() const remove = async (ids: string[]) => { setLoadingRemove(true) try { await Promise.all(ids.map(async id => await req.delete(`/files/${id}`, { // params: { deleteMessage: deleteMessage ? 'true' : undefined } }))) } catch (error) { // ignore } const newData = dataSource?.[0].filter(datum => !ids.includes(datum.id)) || [] dataSource?.[1](newData) setSelectDeleted([]) setLoadingRemove(false) onFinish?.(newData) } return Confirmation} onCancel={() => setSelectDeleted([])} onOk={() => remove(selectDeleted.map((data: any) => data.id))} okText="Remove" cancelButtonProps={{ shape: 'round' }} okButtonProps={{ danger: true, type: 'primary', loading: loadingRemove, shape: 'round' }}> Are you sure to delete {selectDeleted?.length > 1 ? `${selectDeleted?.length} objects` : selectDeleted?.[0]?.name.replace(/\.part0*\d+$/, '') }? {/* setDeleteMessage(target.checked)}> Delete from Saved Messages too */} } export default Remove