import { useShallow } from 'zustand/react/shallow'; import { useOrgStore } from '../store'; import { useNavigation, useParams } from 'react-router'; import { useEffect } from 'react'; import { Button, Input, message, Modal, Select, Tooltip } from 'antd'; import { DeleteOutlined, EditOutlined, LeftOutlined, PlusOutlined } from '@ant-design/icons'; import { Form } from 'antd'; import { useNavigate } from 'react-router'; import { isObjectNull } from '@/utils/is-null'; const FormModal = () => { const [form] = Form.useForm(); const userStore = useOrgStore( 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, userStore.formData]); const onFinish = async (values: any) => { userStore.updateData(values); }; const onClose = () => { userStore.setShowEdit(false); userStore.setFormData({}); }; const isEdit = userStore.formData.id; return ( userStore.setShowEdit(false)} destroyOnClose footer={false} width={800} onCancel={onClose}>
); }; export const UserList = () => { const param = useParams(); const navicate = useNavigate(); const orgStore = useOrgStore( useShallow((state) => { return { users: state.users, org: state.org, setOrgId: state.setOrgId, getOrg: state.getOrg, setFormData: state.setFormData, setShowEdit: state.setShowEdit, }; }), ); useEffect(() => { if (param.id) { orgStore.setOrgId(param.id); orgStore.getOrg(); } return () => { orgStore.setFormData({}); }; }, []); return (
{orgStore.users.map((item) => { const isOwner = item.role === 'owner'; return (
username: {item.username}
{item.role || '-'}
); })}
); };