From c03286dc003082cd69c2f934069e3e78addd4c86 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Fri, 10 May 2024 20:14:51 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20#178=20=ED=83=AD=20=ED=82=A4=20?= =?UTF-8?q?=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetailedInformation.tsx | 6 +- src/pages/recruit/recruitDetailPage/data.ts | 190 ------------------ src/utils/editorModule.ts | 5 + 3 files changed, 7 insertions(+), 194 deletions(-) delete mode 100644 src/pages/recruit/recruitDetailPage/data.ts diff --git a/src/components/recruit/create/detailedInformation/DetailedInformation.tsx b/src/components/recruit/create/detailedInformation/DetailedInformation.tsx index 6326e0d2..bf87d5bf 100644 --- a/src/components/recruit/create/detailedInformation/DetailedInformation.tsx +++ b/src/components/recruit/create/detailedInformation/DetailedInformation.tsx @@ -12,10 +12,8 @@ const DetailedInformation = () => { const [formData, setFormData] = useRecoilState(recruitInputState); const { validMessage, isValid } = useValid(formData); - const preventInput = (event: React.KeyboardEvent) => { - const forbiddenKeys = ['\t']; - - if (forbiddenKeys.includes(event.key)) { + const preventInput = (event: React.KeyboardEvent) => { + if (event.key === 'Tab') { event.preventDefault(); } }; diff --git a/src/pages/recruit/recruitDetailPage/data.ts b/src/pages/recruit/recruitDetailPage/data.ts deleted file mode 100644 index b289687d..00000000 --- a/src/pages/recruit/recruitDetailPage/data.ts +++ /dev/null @@ -1,190 +0,0 @@ -export const tempData = { - isWriter: true, - category: '프로젝트', - title: '팀원을 구합니다!', - createdAt: '2024-03-15', - bookmarkCount: 13, - writerNickname: 'song123', - responseRate: 90, - writerScore: 4.5, - proceedingStart: '2024-04-15', - proceedingEnd: '2024-07-15', - proceedType: '온/오프라인', - deadline: '2024-03-10', - scope: '교내', - courseName: '공학설계입문', - courseProfessor: '최웅철', - tags: [ - { - id: 1, - name: '대학생', - }, - { - id: 2, - name: '응용소프트웨어실습', - }, - { - id: 3, - name: '김용혁', - }, - { - id: 4, - name: 'C#', - }, - { - id: 5, - name: '게임개발', - }, - { - id: 6, - name: 'WindowsForms', - }, - { - id: 7, - name: '바보', - }, - { - id: 8, - name: '밋팀최고', - }, - ], - recruitmentRoles: [ - { - roleName: '백엔드 개발자', - skills: [ - { - id: 1, - name: '파이썬', - }, - { - id: 2, - name: 'Java', - }, - { - id: 3, - name: 'Spring', - }, - { - id: 4, - name: 'AWS', - }, - ], - recruitCount: 5, - applicantCount: 10, - recruitedCount: 3, - }, - { - roleName: '프론트엔드 개발자', - skills: [ - { - id: 1, - name: 'React.js', - }, - { - id: 2, - name: 'React.js', - }, - { - id: 3, - name: 'React.js', - }, - { - id: 4, - name: 'React.js', - }, - { - id: 5, - name: 'React.js', - }, - ], - recruitCount: 5, - applicantCount: 10, - recruitedCount: 4, - }, - { - roleName: '디자이너', - skills: [ - { - id: 1, - name: '피그마', - }, - ], - recruitCount: 4, - applicantCount: 7, - recruitedCount: 3, - }, - { - roleName: '기획자', - skills: [ - { - id: 1, - name: '파이썬', - }, - ], - recruitCount: 3, - applicantCount: 3, - recruitedCount: 1, - }, - { - roleName: '백엔드개발자', - skills: [ - { - id: 1, - name: '파이썬', - }, - ], - recruitCount: 5, - applicantCount: 10, - recruitedCount: 2, - }, - ], - content: - '밋팀(Meeteam)은 나 자신을 의미하는 Me, 팀을 의미하는 Team, 만남을 의미하는 Meet이 합쳐진 단어입니다. 대학생들의 보다 원활한 팀프로젝트를 위해 기획하게 되었으며, 그 외에포토폴리오로서의 기능까지 생각하고 있습니다! 이를 위해 함께 멋진 서비스를 완성할 웹\ - 디자이너를 찾고 있어요! \ - 밋팀(Meeteam)은 나 자신을 의미하는 Me, 팀을 의미하는 Team,만남을 의미하는 Meet이 합쳐진 단어입니다. \ - 대학생들의 보다 원활한 팀프로젝트를 위해 기획하게 되었으며, 그 외에 포토폴리오로서의 기능까지 생각하고 있습니다! \ - 이를 위해 함께 멋진 서비스를 완성할 웹 디자이너를 찾고 있어요! \ - 밋팀(Meeteam)은 나 자신을 의미하는 Me,팀을 의미하는 Team, 만남을 의미하는 Meet이 합쳐진 단어입니다.\ - 대학생들의 보다 원활한 팀프로젝트를 위해 기획하게 되었으며, 그 외에 포토폴리오로서의 기능까지 생각하고 있습니다! \ - 이를 위해 함께 멋진 서비스를 완성할 웹 디자이너를 찾고있어요!\ - 이어서작성하기이어서작성하기 우왁우왁 우와아아아악 우왁우왁 집인데 집에 가고\ - 싶은 이 기분은 도대체 무엇일까요옹??임시로 작성중입니다. 이 내용은 신경쓰지\ - 말아주시죠. 그러는 순간 당신은 이 글이 신경 쓰이게 될 것이고 어쩌고 저쩌고 솰라솰라\ - 얄리얄리 얄라셩 얄라리 얄라 히히 진짜 제정신 아닌거같아 보인다 무슨일이니 세상에...', - comments: [ - { - id: 1, - nickname: 'feelgood03', - profileImg: 'url형태', - content: '저 으아아아아 정신체리고 빨리허쟈ㅏㅏ아 언제끝나냐 근데 허핳허하허핳..', - createAt: '2023-12-24', - isWriter: true, - replies: [ - { - id: 2, - nickname: 'yeom', - profileImg: 'url형태', - content: '저 관심있는데요..', - createAt: '2023-12-25', - isWriter: true, - }, - ], - }, - ], -}; - -export const tempTags = [ - '응용소프트웨어실습', - '광운대학교', - '교내', - '교내', - '팀프로젝트', - 'Windows Forms', - '문승현 교수님', - '포트폴리오', - '게임개발', - '프론트엔드', - '백엔드', - '자유로운 분위기', - '적극 구인중', -]; diff --git a/src/utils/editorModule.ts b/src/utils/editorModule.ts index af0ff320..764d5e26 100644 --- a/src/utils/editorModule.ts +++ b/src/utils/editorModule.ts @@ -51,6 +51,11 @@ export const modules = { ['clean'], ], }, + keyboard: { + bindings: { + tab: false, + }, + }, }; export const formats = [ From baac2c9d750d9f5845b0be8e960ab5b373f41be7 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Fri, 10 May 2024 21:03:28 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20#178=20Bold,=20Italic=20=EA=B8=80?= =?UTF-8?q?=EC=94=A8=20=EB=AF=B8=EB=B0=98=EC=98=81=EB=90=98=EB=8A=94=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EB=B0=8F=20=EC=9D=BC=EB=B6=80=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/header/Header.tsx | 26 +++---- src/components/meeteam/card/RecruitCard.tsx | 4 +- .../recruit/create/ControlButtons.tsx | 34 ++------ .../DetailedInformation.styled.ts | 6 ++ .../RecruitDescription.styled.ts | 22 +++--- .../recruitCreatePage/RecruitCreatePage.tsx | 77 +++++++++++-------- src/utils/resetFormData.ts | 44 ++++++----- 7 files changed, 104 insertions(+), 109 deletions(-) diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index 10c07f4a..612ccd13 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -23,6 +23,7 @@ const Header = () => { galary: false, inform: false, }); + const { mutate: signOut } = useSignOut({ setUserState }); const goRecruit = () => { navigate('/'); @@ -38,12 +39,10 @@ const Header = () => { professor: null, }); }; + const goGalary = () => { setIsWait(true); }; - const goInformationUse = () => { - setIsWait(true); - }; const onClickMy = () => { if (!isLoggedIn) { @@ -53,6 +52,15 @@ const Header = () => { } }; + const handleLogOutButtonClick = () => { + const confirm = window.confirm('로그아웃 하시겠습니까?'); + if (confirm) { + signOut(); + navigate('/'); + setOpenDrop(false); + } + }; + useEffect(() => { if (location.pathname === `/recruitment/postings/${id}` || location.pathname === '/') { setIsHere({ recruit: true, galary: false, inform: false }); @@ -78,18 +86,6 @@ const Header = () => { fixModalBackground(isWait); }, [isWait]); - // 로그아웃 - const { mutate: signOut } = useSignOut({ setUserState }); - - const handleLogOutButtonClick = () => { - const confirm = window.confirm('로그아웃 하시겠습니까?'); - if (confirm) { - signOut(); - navigate('/'); - setOpenDrop(false); - } - }; - resetFormData(); return ( diff --git a/src/components/meeteam/card/RecruitCard.tsx b/src/components/meeteam/card/RecruitCard.tsx index f1d5a409..6f2592d9 100644 --- a/src/components/meeteam/card/RecruitCard.tsx +++ b/src/components/meeteam/card/RecruitCard.tsx @@ -40,7 +40,9 @@ const RecruitCard = ({ }); const setNeedLoginModal = useSetRecoilState(needLoginModalState); const extractDeadline = new Date(deadline); - const convertedDeadline = `${extractDeadline.getFullYear()}/${extractDeadline.getMonth()}/${extractDeadline.getDate()}`; + const convertedDeadline = `${extractDeadline.getFullYear()}/${ + extractDeadline.getMonth() + 1 + }/${extractDeadline.getDate()}`; const onClickContent = () => { navigate(`/recruitment/postings/${id}`); diff --git a/src/components/recruit/create/ControlButtons.tsx b/src/components/recruit/create/ControlButtons.tsx index 84658bc4..c3516d5c 100644 --- a/src/components/recruit/create/ControlButtons.tsx +++ b/src/components/recruit/create/ControlButtons.tsx @@ -1,38 +1,18 @@ import React from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; -import { useSetRecoilState } from 'recoil'; -import { recruitInputState } from '../../../atom'; -import { simpleDate } from '../../../utils'; +import { resetFormData } from '../../../utils'; const ControlButtons = () => { const location = useLocation(); const navigate = useNavigate(); - const setFormData = useSetRecoilState(recruitInputState); - - const resetFormData = () => { - setFormData({ - scope: '', - category: '', - fieldId: 1, - deadline: simpleDate(new Date()), - proceedType: '', - proceedingStart: simpleDate(new Date()), - proceedingEnd: simpleDate(new Date()), - courseTag: { - isCourse: false, - courseTagName: '', - courseProfessor: '', - }, - recruitmentRoles: [], - tags: [], - title: '', - content: '', - }); - }; const cancelHandler = () => { - resetFormData(); - navigate('/'); + if (location.pathname.includes('edit')) { + navigate(-1); + } else { + resetFormData(); + navigate('/'); + } }; return ( diff --git a/src/components/recruit/create/detailedInformation/DetailedInformation.styled.ts b/src/components/recruit/create/detailedInformation/DetailedInformation.styled.ts index 12acabf6..a017bb61 100644 --- a/src/components/recruit/create/detailedInformation/DetailedInformation.styled.ts +++ b/src/components/recruit/create/detailedInformation/DetailedInformation.styled.ts @@ -28,6 +28,12 @@ const DetailedInformation = styled.section` border-radius: 0.1rem; width: 100%; margin-top: 0.8rem; + strong { + font-weight: bold; + } + em { + font-style: italic; + } } .ql-container.ql-snow { diff --git a/src/components/recruit/recruitDetail/recruitDescription/RecruitDescription.styled.ts b/src/components/recruit/recruitDetail/recruitDescription/RecruitDescription.styled.ts index 849f905d..0e1acc4a 100644 --- a/src/components/recruit/recruitDetail/recruitDescription/RecruitDescription.styled.ts +++ b/src/components/recruit/recruitDetail/recruitDescription/RecruitDescription.styled.ts @@ -15,9 +15,10 @@ const RecruitDescription = styled.article` color: #373f41; font-size: 1.6rem; font-weight: 500; - line-height: 1.9rem; + font-family: Pretendard; letter-spacing: 0.0032rem; box-sizing: border-box; + line-height: 1.42; h1 { font-size: 3.2rem; @@ -40,6 +41,15 @@ const RecruitDescription = styled.article` strong { font-weight: bold; } + em { + font-style: italic; + } + blockquote { + border-left: 4px solid #ccc; + margin-bottom: 5px; + margin-top: 5px; + padding-left: 16px; + } ul { list-style-type: circle; padding-left: 2rem; @@ -60,16 +70,6 @@ const RecruitDescription = styled.article` .ql-indent-3 { margin-left: 15rem; } - - em { - font-style: italic; - } - blockquote { - border-left: 4px solid #ccc; - margin-bottom: 5px; - margin-top: 5px; - padding-left: 16px; - } } `; diff --git a/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx b/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx index 1e822281..535d0f01 100644 --- a/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx +++ b/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx @@ -89,56 +89,65 @@ const RecruitCreatePage = () => { } if (postAvailable && !location.pathname.includes('edit')) { uploadPost.mutate(formData, { - onSuccess: () => resetFormData(), + onSuccess: () => { + resetFormData(); + }, }); } if (postAvailable && location.pathname.includes('edit') && pageNum) { editPost.mutate( { pageNum, formData }, { - onSuccess: () => resetFormData(), + onSuccess: () => { + resetFormData(); + }, } ); } }; useEffect(() => { - fixModalBackground(beforeSubmit || isWarnRoleDelete); - }, [beforeSubmit, isWarnRoleDelete]); - - useEffect(() => { - const convertRoleInfo = (roleInfo: RoleInfo): RoleForPost => { - return { - roleId: roleInfo.roleId, - count: roleInfo.recruitCount, - skillIds: roleInfo.skills.map(e => e.id), - skills: roleInfo.skills, - roleName: roleInfo.roleName, + if (data) { + const convertRoleInfo = (roleInfo: RoleInfo): RoleForPost => { + return { + roleId: roleInfo.roleId, + count: roleInfo.recruitCount, + skillIds: roleInfo.skills.map(e => e.id), + skills: roleInfo.skills, + roleName: roleInfo.roleName, + }; }; - }; - const transformedRoles = data?.recruitmentRoles.map(convertRoleInfo); - if (isSuccess && location.pathname.includes('edit') && data && transformedRoles) { - setFormData({ - scope: data.scope, - category: data.category, - deadline: data.deadline, - proceedingStart: data.proceedingStart, - proceedingEnd: data.proceedingEnd, - fieldId: 1, - proceedType: data.proceedType, - courseTag: { - courseTagName: data.courseName, - courseProfessor: data.courseProfessor, - isCourse: data.courseName || data.courseProfessor ? true : false, - }, - recruitmentRoles: transformedRoles, - tags: data.tags.map(e => e.name), - title: data.title, - content: data.content, - }); + const transformedRoles = data.recruitmentRoles.map(convertRoleInfo); + if (isSuccess && location.pathname.includes('edit') && transformedRoles) { + setFormData({ + scope: data.scope, + category: data.category, + deadline: data.deadline, + proceedingStart: data.proceedingStart, + proceedingEnd: data.proceedingEnd, + fieldId: 1, + proceedType: data.proceedType, + courseTag: { + courseTagName: data.courseName, + courseProfessor: data.courseProfessor, + isCourse: data.courseName || data.courseProfessor ? true : false, + }, + recruitmentRoles: transformedRoles, + tags: data.tags.map(e => e.name), + title: data.title, + content: data.content, + }); + } } }, [data]); + console.log('formData:', formData); + console.log('data:', data); + + useEffect(() => { + fixModalBackground(beforeSubmit || isWarnRoleDelete); + }, [beforeSubmit, isWarnRoleDelete]); + return (
diff --git a/src/utils/resetFormData.ts b/src/utils/resetFormData.ts index 3ec320ae..464173ce 100644 --- a/src/utils/resetFormData.ts +++ b/src/utils/resetFormData.ts @@ -1,33 +1,35 @@ -import { useEffect, useState } from 'react'; +import { useEffect } from 'react'; import { recruitInputState } from '../atom'; import { useLocation } from 'react-router-dom'; -import { useRecoilState } from 'recoil'; +import { useSetRecoilState } from 'recoil'; import simpleDate from './simpleDate'; import { SAFE_DEFAULT_VALUE } from '../constant'; const resetFormData = () => { - const [formData, setFormData] = useRecoilState(recruitInputState); + const setFormData = useSetRecoilState(recruitInputState); const location = useLocation(); useEffect(() => { - setFormData({ - scope: '', - category: '', - fieldId: 1, - deadline: simpleDate(new Date()), - proceedType: '', - proceedingStart: simpleDate(new Date()), - proceedingEnd: simpleDate(new Date()), - courseTag: { - isCourse: false, - courseTagName: '', - courseProfessor: '', - }, - recruitmentRoles: [], - tags: [], - title: '', - content: SAFE_DEFAULT_VALUE, - }); + if (location.pathname === '/recruitment/postings') { + setFormData({ + scope: '', + category: '', + fieldId: 1, + deadline: simpleDate(new Date()), + proceedType: '', + proceedingStart: simpleDate(new Date()), + proceedingEnd: simpleDate(new Date()), + courseTag: { + isCourse: false, + courseTagName: '', + courseProfessor: '', + }, + recruitmentRoles: [], + tags: [], + title: '', + content: SAFE_DEFAULT_VALUE, + }); + } }, [location.pathname]); }; From 2bbafe0d1dd40b4b1e54d98271c1036b8abb2a2d Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Fri, 10 May 2024 21:20:10 +0900 Subject: [PATCH 3/4] =?UTF-8?q?chore:=20#178=20=ED=85=9C=ED=94=8C=EB=A6=BF?= =?UTF-8?q?=20=EC=9E=84=EC=8B=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constant/textEditor.ts | 42 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/constant/textEditor.ts b/src/constant/textEditor.ts index bbc19b93..47ddf3c8 100644 --- a/src/constant/textEditor.ts +++ b/src/constant/textEditor.ts @@ -3,46 +3,50 @@ import DOMPurify from 'dompurify'; export const DEFAULT_VALUE = ` -1. 프로젝트 계기 +

1. 프로젝트 계기

  -- 해당 프로젝트를 시작하게된 계기를 적어주세요 -ex) 대학생 때는 전공을 불문하고, 굉장히 많은 팀프로젝트를 하게 됩니다. 하지만 프로젝트를 진행하면서 팀원 때문에 고통받는 사람들을 여럿 볼 수 있는데요! 그런 사람들에게 도움이 되는 플랫폼을 만들면 좋겠다고 생각했어요! +- 해당 프로젝트를 시작하게된 계기를 적어주세요. +ex) 대학생 때는 전공을 불문하고, 굉장히 많은 팀프로젝트를 하게 됩니다. 하지만 프로젝트를 진행하면서 팀원 때문에 고통받는 사람들을 여럿 볼 수 있는데요! 그런 사람들에게 도움이 되는 플랫폼을 만들면 좋겠다고 생각했어요!   -- 만들고자 하는 프로덕트에 대해 알려주세요  +- 만들고자 하는 프로덕트에 대해 알려주세요.  ex) 대학생을 위한 프로젝트 구인 플랫폼을 만들고자 합니다. 대학생동안 많은 팀프로젝트를 하면서 나랑 잘 어울리는 팀원과 만날 수 있는 플랫폼이에요. 궁극적인 목표는 프로젝트에서 팀원을 구할 때, 오픈된 프로필을 바탕으로 자신의 니즈에 맞는 팀원을 구하는데 도움을 주는 플랫폼을 만들고자 합니다. 더불어 우리는 해당 플랫폼을 바탕으로 팀 프로젝트 할 때 서로의 능력을 오픈하는 문화를 만들고 싶습니다! -   -- 어떤 사용자들을 타겟하고 있는지 적어주세요  +- 어떤 사용자들을 타겟하고 있는지 적어주세요  ex) 아무래도 주 타겟은 전국 대학생이에요! 이후에는 직장인까지 확장해보고 싶어요!     -2. 회의 진행/모임 방식  +

2. 회의 진행/모임 방식

    -- 1주에 몇번정도 회의나 모임을 진행할 계획인가요?  +- 1주에 몇번정도 회의나 모임을 진행할 계획인가요?  ex) 1주일에 1~2회 정기회의가 있습니다.   -- 온/오프라인 회의 진행시 진행방식을 적어주세요  +- 온/오프라인 회의 진행시 진행방식을 적어주세요.  ex) 온라인은 줌을 활용하고, 공유 사무실 공간이 있습니다. 문서화는 노션을 지향합니다.   - -3. 우리 팀 문화는요   -- 프로젝트 동안 지향하는 문화를 적어주세요. +

3. 우리 팀 문화는요

+  +- 프로젝트 동안 지향하는 문화를 적어주세요. ex) 저희는 신속한 의사소통을 지향해요. \n회의시간은 1시간 내로 제한하려고 해요. 그리고 오버커뮤니케이션을 지향해요.\n   -- 프로젝트 동안 지양하는 문화를 적어주세요. +- 프로젝트 동안 지양하는 문화를 적어주세요. ex) 누군가 단독적인 의사결정을 기피하고 있어요.   -4. 저는 누구냐면요\n - -- 전문적으로 담당한 업무나, 별도로 진행하신 팀 프로젝트가 있으시다면 적어주세요. +  +

4. 저는 누구냐면요

+  +- 전문적으로 담당한 업무나, 별도로 진행하신 팀 프로젝트가 있으시다면 적어주세요. ex) 실무에서 서버 개발 경험이 있습니다. 뿐만 아니라 작은 팀을 이끈 경험도 여러 번 있어요.   -- 이 프로젝트에서 나(리더) 역할을 적어주세요. +- 이 프로젝트에서 나(리더) 역할을 적어주세요. ex) 전체적인 프로덕트 매니징은 제가 주로 담당할 예정이에요! 여러분은 개발에만 집중할 수 있게끔 노력할게요!   -5. 기타사항 -- 이외에 미래의 팀원들에게 알려줄 내용이 있다면 적어주세요. +  +

5. 기타사항

+  +- 이외에 미래의 팀원들에게 알려줄 내용이 있다면 적어주세요. +ex) 매주 금요일 저녁 일정이 있습니다. +  `; const lines = DEFAULT_VALUE.split('\n') From 0856e0531ac045047441bc04a21af8ba33b671ae Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Fri, 10 May 2024 21:40:26 +0900 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20#178=20=EC=9D=BC=EB=B6=80=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruit/create/ControlButtons.tsx | 2 +- .../recruitCreatePage/RecruitCreatePage.tsx | 13 ++---- src/utils/resetFormData.ts | 42 +++++++++---------- 3 files changed, 25 insertions(+), 32 deletions(-) diff --git a/src/components/recruit/create/ControlButtons.tsx b/src/components/recruit/create/ControlButtons.tsx index c3516d5c..ba28f451 100644 --- a/src/components/recruit/create/ControlButtons.tsx +++ b/src/components/recruit/create/ControlButtons.tsx @@ -10,9 +10,9 @@ const ControlButtons = () => { if (location.pathname.includes('edit')) { navigate(-1); } else { - resetFormData(); navigate('/'); } + resetFormData(); }; return ( diff --git a/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx b/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx index 535d0f01..27252cec 100644 --- a/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx +++ b/src/pages/create/recruitCreatePage/RecruitCreatePage.tsx @@ -89,23 +89,21 @@ const RecruitCreatePage = () => { } if (postAvailable && !location.pathname.includes('edit')) { uploadPost.mutate(formData, { - onSuccess: () => { - resetFormData(); - }, + onSuccess: () => resetFormData(), }); } if (postAvailable && location.pathname.includes('edit') && pageNum) { editPost.mutate( { pageNum, formData }, { - onSuccess: () => { - resetFormData(); - }, + onSuccess: () => resetFormData(), } ); } }; + resetFormData(); + useEffect(() => { if (data) { const convertRoleInfo = (roleInfo: RoleInfo): RoleForPost => { @@ -141,9 +139,6 @@ const RecruitCreatePage = () => { } }, [data]); - console.log('formData:', formData); - console.log('data:', data); - useEffect(() => { fixModalBackground(beforeSubmit || isWarnRoleDelete); }, [beforeSubmit, isWarnRoleDelete]); diff --git a/src/utils/resetFormData.ts b/src/utils/resetFormData.ts index 464173ce..86d3bd09 100644 --- a/src/utils/resetFormData.ts +++ b/src/utils/resetFormData.ts @@ -1,35 +1,33 @@ import { useEffect } from 'react'; import { recruitInputState } from '../atom'; import { useLocation } from 'react-router-dom'; -import { useSetRecoilState } from 'recoil'; +import { useRecoilState } from 'recoil'; import simpleDate from './simpleDate'; import { SAFE_DEFAULT_VALUE } from '../constant'; const resetFormData = () => { - const setFormData = useSetRecoilState(recruitInputState); + const [formData, setFormData] = useRecoilState(recruitInputState); const location = useLocation(); useEffect(() => { - if (location.pathname === '/recruitment/postings') { - setFormData({ - scope: '', - category: '', - fieldId: 1, - deadline: simpleDate(new Date()), - proceedType: '', - proceedingStart: simpleDate(new Date()), - proceedingEnd: simpleDate(new Date()), - courseTag: { - isCourse: false, - courseTagName: '', - courseProfessor: '', - }, - recruitmentRoles: [], - tags: [], - title: '', - content: SAFE_DEFAULT_VALUE, - }); - } + setFormData({ + scope: '', + category: '', + fieldId: 1, + deadline: simpleDate(new Date()), + proceedType: '', + proceedingStart: simpleDate(new Date()), + proceedingEnd: simpleDate(new Date()), + courseTag: { + isCourse: false, + courseTagName: '', + courseProfessor: '', + }, + recruitmentRoles: [], + tags: [], + title: '', + content: SAFE_DEFAULT_VALUE, + }); }, [location.pathname]); };