From 85a1798e02b3c7b2471a5cf4de38d2d62824aa03 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Sun, 20 Oct 2024 10:13:25 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20#258=20=EB=A1=9C=EA=B3=A0=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EA=B9=A8=EC=A7=80=EB=8A=94=20?= =?UTF-8?q?=EC=9D=B4=EC=8A=88=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/footer/Footer.tsx | 6 +++--- src/components/header/Header.tsx | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/footer/Footer.tsx b/src/components/footer/Footer.tsx index c6d613f2..11a17e26 100644 --- a/src/components/footer/Footer.tsx +++ b/src/components/footer/Footer.tsx @@ -17,9 +17,9 @@ const Footer = () => {
logo_typo
diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index 5895fb07..394fc40d 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -83,10 +83,10 @@ const Header = () => {
logo_typo {isLogin && {userInfo?.university}} From 654c57242346153d7fa98670df6ec3d09d858c76 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Sun, 20 Oct 2024 10:20:15 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20#258=20=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=20=EC=95=BD=EA=B4=80=20=EC=97=B4=EB=A6=AC=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EC=9D=B4=EC=8A=88=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/footer/Footer.tsx | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/components/footer/Footer.tsx b/src/components/footer/Footer.tsx index 11a17e26..41c8e4f7 100644 --- a/src/components/footer/Footer.tsx +++ b/src/components/footer/Footer.tsx @@ -57,8 +57,26 @@ const Footer = () => { {!isMobile && (
-
서비스이용약관
-
개인정보처리방침
+
+ window.open( + 'https://www.notion.so/e4b205e0f9f54e0685766ba2795b043e?pvs=4', + '_blank' + ) + } + > + 서비스이용약관 +
+
+ window.open( + 'https://www.notion.so/10e6ef13aebb42e5b87d4bd873eef04f?pvs=4', + '_blank' + ) + } + > + 개인정보처리방침 +
window.open('https://forms.gle/CVVDm4gnF21GpwM78', '_blank')}> 피드백주기
From e753c8beee725caf5710b177496cc953af8befd6 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Sun, 20 Oct 2024 15:17:15 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20#258=20=EC=9D=BC=EB=B6=80=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=20=EB=93=9C=EB=A1=AD=EB=8B=A4=EC=9A=B4=20UI?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inputRole/InputRoleForm.styled.ts | 1 - .../inputDropdown/inputRole/InputRoleForm.tsx | 38 ++++++++++++------- .../containers/ContainerCourse.tsx | 23 +++++++---- src/components/tag/MeeteamTag.tsx | 19 +++++++--- 4 files changed, 52 insertions(+), 29 deletions(-) diff --git a/src/components/inputDropdown/inputRole/InputRoleForm.styled.ts b/src/components/inputDropdown/inputRole/InputRoleForm.styled.ts index 5332102d..e00774c7 100644 --- a/src/components/inputDropdown/inputRole/InputRoleForm.styled.ts +++ b/src/components/inputDropdown/inputRole/InputRoleForm.styled.ts @@ -56,7 +56,6 @@ const InputRoleForm = styled.article` .dropdown-loading { width: 100%; - height: 5rem; } .option { diff --git a/src/components/inputDropdown/inputRole/InputRoleForm.tsx b/src/components/inputDropdown/inputRole/InputRoleForm.tsx index 3cc1c497..64ceff6f 100644 --- a/src/components/inputDropdown/inputRole/InputRoleForm.tsx +++ b/src/components/inputDropdown/inputRole/InputRoleForm.tsx @@ -49,7 +49,7 @@ const InputRoleForm = (props: InputRoleObj) => { const dropdownRef = useRef(null); const { isValid } = useValid(info); - const { data: dataRole, isLoading: isLoadingRoleQuery } = useQuery({ + const { data: dataRole, isFetching: isFetchingRole } = useQuery({ queryKey: ['searchRole', keywordRole], queryFn: () => getRoleKeyword(keywordRole as string), staleTime: Infinity, @@ -57,7 +57,7 @@ const InputRoleForm = (props: InputRoleObj) => { enabled: !!keywordRole, }); - const { data: dataSkill, isLoading: isLoadingSkill } = useQuery({ + const { data: dataSkill, isFetching: isFetchingSkill } = useQuery({ queryKey: ['searchSkill', keywordSkill], queryFn: () => getSkillKeyword(keywordSkill), staleTime: Infinity, @@ -81,7 +81,7 @@ const InputRoleForm = (props: InputRoleObj) => { ...role, skills: role.skills?.filter(skill => skill.id !== deletedId), skillIds: role.skillIds.filter(id => id !== deletedId), - } + } : role ), })); @@ -104,12 +104,13 @@ const InputRoleForm = (props: InputRoleObj) => { const onChangeRole = (event: React.ChangeEvent) => { event.preventDefault(); + const roleKeyword = event.target.value; setRoleData(prev => ({ ...prev, - roleName: event.target.value, + roleName: roleKeyword, count: prev.count, })); - if (event.target.value === '') { + if (roleKeyword === '') { setRoleData(prev => ({ ...prev, roleName: '', @@ -121,13 +122,13 @@ const InputRoleForm = (props: InputRoleObj) => { role.roleId === id ? { ...role, - roleName: event.target.value, - } + roleName: roleKeyword, + } : role ), })); } - setDropdown(prev => ({ ...prev, role: true })); + setDropdown(prev => ({ ...prev, role: roleKeyword.length > 0 })); }; const onChangeCount = (event: React.ChangeEvent) => { event.preventDefault(); @@ -241,7 +242,7 @@ const InputRoleForm = (props: InputRoleObj) => { ...role.skillIds, ...(role.skillIds.includes(Number(target.id)) ? [] : [Number(target.id)]), ], - } + } : role ), })); @@ -274,7 +275,7 @@ const InputRoleForm = (props: InputRoleObj) => { ...role.skillIds, ...(role.skillIds.includes(Number(target.id)) ? [] : [Number(target.id)]), ], - } + } : role ), })); @@ -391,11 +392,11 @@ const InputRoleForm = (props: InputRoleObj) => { /> {dropdown.role && (
- {isLoadingRoleQuery ? ( + {isFetchingRole ? (
검색중...
- ) : ( + ) : dataRole && dataRole.length > 0 ? ( dataRole?.map((keyword: Keyword) => ( { {keyword.name} )) + ) : ( +
+ 검색결과가 없습니다. +
)}
)} @@ -480,7 +485,7 @@ const InputRoleForm = (props: InputRoleObj) => { {dropdown.skill && (
- {!isLoadingSkill && + {!isFetchingSkill && dataSkill?.map(elem => ( { {elem.name} ))} - {!isLoadingSkill && dataSkill?.length === 0 && ( + {!isFetchingSkill && keywordSkill?.length === 0 && ( +
+ 기술스택을 검색해주세요. +
+ )} + {!isFetchingSkill && dataSkill?.length === 0 && (
검색 결과가 없습니다.
diff --git a/src/components/recruit/create/basicInformation/containers/ContainerCourse.tsx b/src/components/recruit/create/basicInformation/containers/ContainerCourse.tsx index bdb52a9e..a3ea03db 100644 --- a/src/components/recruit/create/basicInformation/containers/ContainerCourse.tsx +++ b/src/components/recruit/create/basicInformation/containers/ContainerCourse.tsx @@ -26,14 +26,14 @@ const ContainerCourse = ({ course, professor }: ContainerCourseProps) => { }); const keywordCourse = useDebounce(name.course, 500); const keywordProfessor = useDebounce(name.professor, 500); - const { data: dataCourse, isLoading: isLoadingCourse } = useQuery({ + const { data: dataCourse, isFetching: isFetchingCourse } = useQuery({ queryKey: ['searchCourse', keywordCourse], queryFn: () => getCourseKeyword(keywordCourse ?? ''), enabled: !!keywordCourse, staleTime: Infinity, gcTime: Infinity, }); - const { data: dataProfessor, isLoading: isLoadingProfessor } = useQuery({ + const { data: dataProfessor, isFetching: isFetchingProfessor } = useQuery({ queryKey: ['searchProfessor', keywordProfessor], queryFn: () => getProfessorKeyword(keywordProfessor ?? ''), enabled: !!keywordProfessor, @@ -42,8 +42,9 @@ const ContainerCourse = ({ course, professor }: ContainerCourseProps) => { }); const onChangeCourse = useCallback((event: React.ChangeEvent) => { - setName(prev => ({ ...prev, course: event.target.value })); - setDropdown({ course: true, professor: false }); + const keyword = event.target.value; + setName(prev => ({ ...prev, course: keyword })); + setDropdown({ course: keyword.length > 0, professor: false }); }, []); const onChangeProfessor = useCallback((event: React.ChangeEvent) => { @@ -118,12 +119,15 @@ const ContainerCourse = ({ course, professor }: ContainerCourseProps) => { /> {dropdown.course && (
- {!isLoadingCourse && + {isFetchingCourse ? ( +
검색중입니다...
+ ) : ( dataCourse?.map((keyword: Keyword) => ( {keyword.name} - ))} + )) + )}
)}
@@ -139,12 +143,15 @@ const ContainerCourse = ({ course, professor }: ContainerCourseProps) => { /> {dropdown.professor && (
- {!isLoadingProfessor && + {isFetchingProfessor ? ( +
검색중입니다...
+ ) : ( dataProfessor?.map((keyword: Keyword) => ( {keyword.name} - ))} + )) + )}
)}
diff --git a/src/components/tag/MeeteamTag.tsx b/src/components/tag/MeeteamTag.tsx index 218b68ca..c7d3b688 100644 --- a/src/components/tag/MeeteamTag.tsx +++ b/src/components/tag/MeeteamTag.tsx @@ -20,7 +20,7 @@ const MeeteamTag = ({ tags }: RecruitTagListProps) => { const dropdownRef = useRef(null); const keywordTag = useDebounce(tagItem, 500); - const { data, isSuccess } = useQuery({ + const { data, isSuccess, isFetching } = useQuery({ queryKey: ['keywordTag', keywordTag], queryFn: () => getTagKeyword(keywordTag), staleTime: Infinity, @@ -30,6 +30,12 @@ const MeeteamTag = ({ tags }: RecruitTagListProps) => { const onKeyPress = (event: React.KeyboardEvent) => { const target = event.currentTarget; + + if (target.value.length > 0) { + console.log('왜 안됨?'); + setIsDropdownVisible(true); + } + if (target.value.length !== 0 && event.key === 'Enter') { event.preventDefault(); submitTagItem(); @@ -61,10 +67,6 @@ const MeeteamTag = ({ tags }: RecruitTagListProps) => { }); }; - const onClickInput = () => { - setIsDropdownVisible(true); - }; - const onClickTagOptions = (selectedTag: string, event: React.MouseEvent) => { event.stopPropagation(); if (!tagList.includes(selectedTag) && tagList.length < 5) { @@ -100,7 +102,7 @@ const MeeteamTag = ({ tags }: RecruitTagListProps) => { return ( -
+
{
)} + {isFetching && keywordTag.length === 0 && ( +
+ 태그를 입력해주세요. +
+ )}
)} From 443b0f6b4cee83eec1ad2f32efceea907f7fbfa8 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Wed, 23 Oct 2024 13:44:19 +0900 Subject: [PATCH 4/5] =?UTF-8?q?chore:=20=EA=B5=AC=EA=B8=80=20=EC=95=A0?= =?UTF-8?q?=EB=84=90=EB=A6=AC=ED=8B=B1=EC=8A=A4=EB=A5=BC=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.html b/index.html index ed89159a..2508f2c2 100644 --- a/index.html +++ b/index.html @@ -27,6 +27,17 @@ 밋팀 + + +
From b1e760015f32126c2baff460b80af246ace16dc8 Mon Sep 17 00:00:00 2001 From: prgmr99 Date: Thu, 24 Oct 2024 17:05:27 +0900 Subject: [PATCH 5/5] =?UTF-8?q?chore:=20#258=20=EC=BD=98=EC=86=94=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/tag/MeeteamTag.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/tag/MeeteamTag.tsx b/src/components/tag/MeeteamTag.tsx index c7d3b688..2e2f3e8a 100644 --- a/src/components/tag/MeeteamTag.tsx +++ b/src/components/tag/MeeteamTag.tsx @@ -32,7 +32,6 @@ const MeeteamTag = ({ tags }: RecruitTagListProps) => { const target = event.currentTarget; if (target.value.length > 0) { - console.log('왜 안됨?'); setIsDropdownVisible(true); }