diff --git a/src/features/login/type.ts b/src/features/login/type.ts index a39225b..9cab342 100644 --- a/src/features/login/type.ts +++ b/src/features/login/type.ts @@ -4,6 +4,8 @@ export type User = { companyNo?: string; department?: string; position?: string; + comment?: string; + mood?: string; }; export type DummyUser = User & { password?: string }; diff --git a/src/features/preview/Container.tsx b/src/features/preview/Container.tsx index ae4caf1..02bba16 100644 --- a/src/features/preview/Container.tsx +++ b/src/features/preview/Container.tsx @@ -18,7 +18,7 @@ const Container = () => { useLayoutEffect(() => { setTitle({ title: 'CardMe Preview', back: true }); - setBottomBtn({ text: 'Modification', disable: curNum !== 1 }); + setBottomBtn({ text: 'Edit', disable: curNum !== 1 }); return () => { setTitle({}); diff --git a/src/features/setting/hooks/useSetting.ts b/src/features/setting/hooks/useSetting.ts index e5172b8..3ed5a2d 100644 --- a/src/features/setting/hooks/useSetting.ts +++ b/src/features/setting/hooks/useSetting.ts @@ -11,14 +11,26 @@ import badMood from '/png/badge_bad.png'; import { dummyEsl, labelsImagePushPath, token } from '../constants'; import { modalAtom } from '../../shared/modal/atom'; +import { userAtom } from '../../login/atom'; const useSetting = () => { const [, setModal] = useAtom(modalAtom); const [, setPreviewMood] = useAtom(previewMoodAtom); + const [{ mood, comment }, setUser] = useAtom(userAtom); + const { register, handleSubmit, control, formState } = useForm({ + defaultValues: { + mood: mood, + comment: comment, + }, + }); - const { register, handleSubmit, control, formState } = useForm(); const onSubmit: SubmitHandler = async (data) => { const imgEl = document.createElement('img'); + setUser((prev) => ({ + ...prev, + mood: data.mood, + comment: data.comment, + })); imgEl.src = data.mood === 'mood_GOOD' ? goodMood : badMood; //TODO 이래도 될까 fetch(imgEl.src) @@ -39,7 +51,10 @@ const useSetting = () => { }; const handlePreviewClick = () => { - setPreviewMood((prev) => ({ ...prev, open: true })); + setPreviewMood((prev) => ({ + value: mood ? mood.slice(5) : prev.value, + open: true, + })); setModal({ open: true }); }; diff --git a/src/features/shared/layout/components/BottomBtn.tsx b/src/features/shared/layout/components/BottomBtn.tsx index daa24d3..6b82313 100644 --- a/src/features/shared/layout/components/BottomBtn.tsx +++ b/src/features/shared/layout/components/BottomBtn.tsx @@ -1,13 +1,25 @@ import { useAtom } from 'jotai'; import { FunctionComponent } from 'react'; +import { useNavigate } from 'react-router-dom'; import { activeSaveAtom, bottomBtnAtom } from '../atom'; import addLogo from '/svg/add.svg'; +import { URL } from '../../constants/url'; + const LayoutBottomBtn: FunctionComponent = () => { const [{ text, add, disable }] = useAtom(bottomBtnAtom); const [, setActiveSave] = useAtom(activeSaveAtom); + const navigate = useNavigate(); + + const handleBtnClick = () => { + if (text === 'Edit') { + navigate(URL.setting); + } else if (text === 'Save') { + setActiveSave(true); + } + }; if (!text) return null; @@ -15,7 +27,7 @@ const LayoutBottomBtn: FunctionComponent = () => {