import { Button, Form, Input } from 'antd'; import { useUserStore } from '../store'; import { useEffect, useRef, useState } from 'react'; import { useShallow } from 'zustand/react/shallow'; import { isObjectNull } from '@/utils/is-null'; import { useLayoutStore } from '@/modules/layout/store'; import { AvatarUpload } from '../module/AvatarUpload'; import { UploadOutlined } from '@ant-design/icons'; import PandaPNG from '@/assets/panda.png'; import { FileUpload } from '../module/FileUpload'; export const Profile = () => { const [form] = Form.useForm(); const ref = useRef(null); const userStore = useUserStore( useShallow((state) => { return { showEdit: state.showEdit, setShowEdit: state.setShowEdit, formData: state.formData, updateData: state.updateData, setFormData: state.setFormData, updateSelf: state.updateSelf, }; }), ); const [avatar, setAvatar] = useState(''); const layoutStore = useLayoutStore( useShallow((state) => { return { me: state.me, setMe: state.setMe, }; }), ); // const avatar = layoutStore.me?.avatar; useEffect(() => { const fromData = layoutStore.me; if (isObjectNull(fromData)) { form.setFieldsValue({}); } else { form.setFieldsValue(fromData); } setAvatar(fromData.avatar || ''); }, [layoutStore.me]); const onChange = (path: string) => { let url = '/resources/' + path; console.log('path', url); form.setFieldsValue({ avatar: url }); setAvatar(url + '?t=' + new Date().getTime()); }; const onFinish = async (values) => { const newMe = await userStore.updateSelf(values); if (newMe) { layoutStore.setMe(newMe); } }; return (
Profile
Edit your profile
{avatar && avatar} {!avatar && avatar}
{ ref.current?.open?.(); }} />
} />
); };