import { Input, Modal } from 'antd'; import { Fragment, useEffect, useState } from 'react'; import { useUserStore } from '../store'; import { useShallow } from 'zustand/react/shallow'; import { Form } from 'antd'; import EditOutlined from '@ant-design/icons/EditOutlined'; import SaveOutlined from '@ant-design/icons/SaveOutlined'; import DeleteOutlined from '@ant-design/icons/DeleteOutlined'; import LeftOutlined from '@ant-design/icons/LeftOutlined'; import PlusOutlined from '@ant-design/icons/PlusOutlined'; import clsx from 'clsx'; import { isObjectNull } from '@/utils/is-null'; import { CardBlank } from '@kevisual/center-components/card/CardBlank.tsx'; import { Dialog, ButtonGroup, Button, DialogContent, DialogTitle } from '@mui/material'; import { IconButton } from '@kevisual/center-components/button/index.tsx'; import { useTranslation } from 'react-i18next'; const FormModal = () => { const [form] = Form.useForm(); const userStore = useUserStore( useShallow((state) => { return { showEdit: state.showEdit, setShowEdit: state.setShowEdit, formData: state.formData, updateData: state.updateData, setFormData: state.setFormData, }; }), ); useEffect(() => { const open = userStore.showEdit; if (open) { const isNull = isObjectNull(userStore.formData); if (isNull) { form.setFieldsValue({}); } else form.setFieldsValue(userStore.formData); } }, [userStore.showEdit]); const onFinish = async (values: any) => { userStore.updateData(values); }; const onClose = () => { userStore.setShowEdit(false); form.setFieldsValue({}); userStore.setFormData({}); }; const isEdit = userStore.formData.id; const { t } = useTranslation(); return ( userStore.setShowEdit(false)} sx={{ '& .MuiDialog-paper': { width: '800px', }, }}> {isEdit ? t('Edit') : t('Add')}
); }; export const List = () => { const [modal, contextHolder] = Modal.useModal(); const userStore = useUserStore( useShallow((state) => { return { setFormData: state.setFormData, setShowEdit: state.setShowEdit, list: state.list, deleteData: state.deleteData, getList: state.getList, loading: state.loading, updateData: state.updateData, formData: state.formData, }; }), ); const [codeEdit, setCodeEdit] = useState(false); const [code, setCode] = useState(''); useEffect(() => { userStore.getList(); }, []); const onAdd = () => { userStore.setFormData({}); userStore.setShowEdit(true); }; return (
{userStore.list.length > 0 && userStore.list.map((item) => { return (
{ setCode(item.code); userStore.setFormData(item); setCodeEdit(true); }}>
{ e.stopPropagation(); // message.success('copy code success'); }}> {item.username || '-'}
{item.description ? item.description : '-'}
); })} {userStore.list.length == 0 && (
No Data
)}
{ // setCode(value); }} className='h-full max-h-full scrollbar' style={{ overflow: 'auto' }} />
{contextHolder}
); };