import { Button, Input, message, Modal, Table } from 'antd'; import { useEffect, useState } from 'react'; import { usePublishStore } from '../store'; import { useShallow } from 'zustand/react/shallow'; import { Form } from 'antd'; import copy from 'copy-to-clipboard'; import { useNavigate } from 'react-router'; const FormModal = () => { const [form] = Form.useForm(); const containerStore = usePublishStore( useShallow((state) => { return { showEdit: state.showEdit, setShowEdit: state.setShowEdit, formData: state.formData, updateData: state.updateData, }; }), ); useEffect(() => { const open = containerStore.showEdit; if (open) { form.setFieldsValue(containerStore.formData || {}); } else { form.resetFields(); } }, [containerStore.showEdit]); const onFinish = async (values: any) => { containerStore.updateData(values); }; const onClose = () => { containerStore.setShowEdit(false); form.resetFields(); }; const isEdit = containerStore.formData.id; return ( containerStore.setShowEdit(false)} destroyOnClose footer={false} width={800} onCancel={onClose}>
); }; export const List = () => { const navicate = useNavigate(); const containerStore = usePublishStore( useShallow((state) => { return { setFormData: state.setFormData, setShowEdit: state.setShowEdit, list: state.list, deleteData: state.deleteData, getList: state.getList, loading: state.loading, }; }), ); useEffect(() => { containerStore.getList(); }, []); const columns = [ { title: 'ID', dataIndex: 'id', render: (text: string) => { return (
{ copy(text); message.success('copy success'); }}> {text}
); }, }, { title: 'Title', dataIndex: 'title', }, { title: 'Source', dataIndex: 'source', }, { title: 'Operation', dataIndex: 'operation', render: (text: string, record: any) => { return (
); }, }, ]; return (
); };