From 0928e05f91c51165969270f290bebd09baf96a7e Mon Sep 17 00:00:00 2001 From: Cho SeungYeon <111514472+layout-SY@users.noreply.github.com> Date: Thu, 15 May 2025 21:55:17 +0900 Subject: [PATCH 01/11] =?UTF-8?q?refactor=20:=20=ED=95=B4=EA=B2=B0?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/auth.api.ts | 4 ++-- src/components/common/header/Header.tsx | 1 - .../careersComponent/CareersComponent.styled.ts | 2 +- .../comment/commentComponent/CommentComponentLayout.tsx | 2 +- .../commentComponent/CommentComponent.tsx | 6 +++--- .../user/comment/commentInput/CommentInput.styled.ts | 2 +- .../user/evaluation/EvaluationContent.styled.ts | 2 +- .../user/home/projectCardLists/cardList/CardList.tsx | 3 ++- .../filteringContents/filtering/Filtering.tsx | 9 ++++----- .../passNonPassList/SendResultButton.styled.ts | 2 +- src/components/user/mypage/ContentTab.tsx | 2 +- .../mypage/activityLog/inquiries/inquiry/Inquiry.tsx | 4 ++-- .../positionComponent/PositionComponent.styled.ts | 2 +- .../positionComponent/PositionComponent.tsx | 4 +++- src/components/user/userPage/userProfile/UserProfile.tsx | 2 +- src/constants/sidebarItems.tsx | 2 +- src/models/createProject.ts | 2 +- src/models/joinProject.ts | 2 +- src/pages/login/Login.tsx | 9 ++++++--- src/pages/login/LoginSuccess.tsx | 4 ++-- src/pages/user/apply/Apply.styled.ts | 2 +- src/pages/user/apply/ApplyStep.styled.ts | 2 +- src/pages/user/projectDetail/ProjectDetail.styled.ts | 2 +- 23 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/api/auth.api.ts b/src/api/auth.api.ts index 44322c56..b00e5634 100644 --- a/src/api/auth.api.ts +++ b/src/api/auth.api.ts @@ -1,8 +1,8 @@ import { ApiVerifyNickname, VerifyEmail } from '../models/auth'; import { httpClient } from './http.api'; -import { registerFormValues } from '../pages/register/Register'; -import { changePasswordFormValues } from '../pages/changePassword/ChangePassword'; import { loginFormValues } from '../pages/login/Login'; +import { registerFormValues } from '../pages/user/register/Register'; +import { changePasswordFormValues } from '../pages/user/changePassword/ChangePassword'; export const postVerificationEmail = async (email: string) => { try { diff --git a/src/components/common/header/Header.tsx b/src/components/common/header/Header.tsx index e5f71ad9..6d9f1b8f 100644 --- a/src/components/common/header/Header.tsx +++ b/src/components/common/header/Header.tsx @@ -14,7 +14,6 @@ import { formatImgPath } from '../../../util/formatImgPath'; import bell from '../../../assets/bell.svg'; import Notification from './Notification/Notification'; import bellLogined from '../../../assets/bellLogined.svg'; -import useNotification from '../../../hooks/useNotification'; import { useEffect } from 'react'; import { testLiveAlarm } from '../../../api/alarm.api'; import { useMyProfileInfo } from '../../../hooks/user/useMyInfo'; diff --git a/src/components/user/applyComponents/careersComponent/CareersComponent.styled.ts b/src/components/user/applyComponents/careersComponent/CareersComponent.styled.ts index a2bf796d..5a17e4cc 100644 --- a/src/components/user/applyComponents/careersComponent/CareersComponent.styled.ts +++ b/src/components/user/applyComponents/careersComponent/CareersComponent.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../common/Button/Button'; +import Button from '../../../common/Button/Button'; export const Container = styled.div` width: 100%; diff --git a/src/components/user/comment/commentComponent/CommentComponentLayout.tsx b/src/components/user/comment/commentComponent/CommentComponentLayout.tsx index 1668babf..ef0a4531 100644 --- a/src/components/user/comment/commentComponent/CommentComponentLayout.tsx +++ b/src/components/user/comment/commentComponent/CommentComponentLayout.tsx @@ -1,13 +1,13 @@ import * as S from './CommentComponentLayout.styled'; import DropDown from '../../../common/dropDown/DropDown'; import DropDownItem from '../DropDownItem'; -import { CommentType } from '../../../../models/comment'; import dropdownButton from '../../../assets/dropdownButton.svg'; import useComment from '../../../../hooks/user/CommentHooks/useComment'; import ReplyComponent from '../replyComponent/ReplyComponent'; import ArrowDown from '../../../assets/ArrowDown.svg'; import ArrowUp from '../../../assets/ArrowUp.svg'; import CommentComponent from './commentComponent/CommentComponent'; +import { CommentType } from '../../../../models/comment'; interface CommentLayoutProps { projectId: number; diff --git a/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx b/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx index f3bd34b7..417057fe 100644 --- a/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx +++ b/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx @@ -1,11 +1,11 @@ import { Dispatch, SetStateAction } from 'react'; import * as S from './CommentComponent.styled'; -import Avatar from '../../../common/avatar/Avatar'; -import { CommentType } from '../../../../models/comment'; import chat from '../../../../assets/chat.svg'; import { Link } from 'react-router-dom'; -import { ROUTES } from '../../../../constants/routes'; import CommentInput from '../../commentInput/CommentInput'; +import { CommentType } from '../../../../../models/comment'; +import { ROUTES } from '../../../../../constants/user/routes'; +import Avatar from '../../../../common/avatar/Avatar'; interface CommentComponentProps { item: CommentType; diff --git a/src/components/user/comment/commentInput/CommentInput.styled.ts b/src/components/user/comment/commentInput/CommentInput.styled.ts index 52c9a482..a609ddbe 100644 --- a/src/components/user/comment/commentInput/CommentInput.styled.ts +++ b/src/components/user/comment/commentInput/CommentInput.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../common/Button/Button'; +import Button from '../../../common/Button/Button'; export const InputContainer = styled.div` display: flex; diff --git a/src/components/user/evaluation/EvaluationContent.styled.ts b/src/components/user/evaluation/EvaluationContent.styled.ts index 76242ac1..ca40c6c3 100644 --- a/src/components/user/evaluation/EvaluationContent.styled.ts +++ b/src/components/user/evaluation/EvaluationContent.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../common/Button/Button'; +import Button from '../../common/Button/Button'; export const Container = styled.div` display: flex; diff --git a/src/components/user/home/projectCardLists/cardList/CardList.tsx b/src/components/user/home/projectCardLists/cardList/CardList.tsx index c31912ce..275c03b2 100644 --- a/src/components/user/home/projectCardLists/cardList/CardList.tsx +++ b/src/components/user/home/projectCardLists/cardList/CardList.tsx @@ -1,10 +1,10 @@ import PositionButton from '../../../../common/positionButton/PositionButton'; import * as S from './CardList.styled'; import beginner from '../../../../assets/beginner.svg'; -import Avatar from '../../../../common/avatar/Avatar'; import { EyeIcon } from '@heroicons/react/24/outline'; import type { ProjectList } from '../../../../../models/mainProjectLists'; import { formatDate } from '../../../../../util/formatDate'; +import Avatar from '../../../../common/avatar/Avatar'; interface CardListProps { list: ProjectList; @@ -28,6 +28,7 @@ export default function CardList({ list }: CardListProps) { ))} {list.positions.length > listPositionTag.length && ( diff --git a/src/components/user/home/searchFiltering/filteringContents/filtering/Filtering.tsx b/src/components/user/home/searchFiltering/filteringContents/filtering/Filtering.tsx index 585c7f94..9e5e5b3a 100644 --- a/src/components/user/home/searchFiltering/filteringContents/filtering/Filtering.tsx +++ b/src/components/user/home/searchFiltering/filteringContents/filtering/Filtering.tsx @@ -1,11 +1,10 @@ import { ChevronDownIcon } from '@heroicons/react/24/outline'; import * as S from './Filtering.styled'; import { useEffect, useState } from 'react'; -import type { MethodTag, PositionTag } from '../../../../../models/tags'; -import { useOutsideClick } from '../../../../../hooks/useOutsideClick'; -import { useSaveSearchFiltering } from '../../../../../hooks/useSaveSearchFiltering'; -import { SEARCH_FILTERING_DEFAULT_VALUE } from '../../../../../constants/homeConstants'; - +import { useSaveSearchFiltering } from '../../../../../../hooks/user/useSaveSearchFiltering'; +import { MethodTag, PositionTag } from '../../../../../../models/tags'; +import { SEARCH_FILTERING_DEFAULT_VALUE } from '../../../../../../constants/user/homeConstants'; +import { useOutsideClick } from '../../../../../../hooks/user/useOutsideClick'; interface FilteringProps { selects: PositionTag[] | MethodTag[]; defaultValue: string; diff --git a/src/components/user/manageProjects/passNonPassList/SendResultButton.styled.ts b/src/components/user/manageProjects/passNonPassList/SendResultButton.styled.ts index f36e72fe..927d382f 100644 --- a/src/components/user/manageProjects/passNonPassList/SendResultButton.styled.ts +++ b/src/components/user/manageProjects/passNonPassList/SendResultButton.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../common/Button/Button'; +import Button from '../../../common/Button/Button'; export const Wrapper = styled.div` width: 100%; diff --git a/src/components/user/mypage/ContentTab.tsx b/src/components/user/mypage/ContentTab.tsx index 623075ec..f1d38833 100644 --- a/src/components/user/mypage/ContentTab.tsx +++ b/src/components/user/mypage/ContentTab.tsx @@ -1,9 +1,9 @@ import { useEffect, useState } from 'react'; import * as S from './ContentTab.styled'; import { Link, Outlet, useLocation } from 'react-router-dom'; -import { ROUTES } from '../../constants/routes'; import ScrollWrapper from './ScrollWrapper'; import MovedInquiredLink from '../customerService/MoveInquiredLink'; +import { ROUTES } from '../../../constants/user/routes'; interface Filter { title: string; diff --git a/src/components/user/mypage/activityLog/inquiries/inquiry/Inquiry.tsx b/src/components/user/mypage/activityLog/inquiries/inquiry/Inquiry.tsx index f59cf02d..82a5735b 100644 --- a/src/components/user/mypage/activityLog/inquiries/inquiry/Inquiry.tsx +++ b/src/components/user/mypage/activityLog/inquiries/inquiry/Inquiry.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; -import type { MyInquiries } from '../../../../../models/activityLog'; import * as S from './Inquiry.styled'; -import { My_INQUIRIES_MESSAGE } from '../../../../../constants/customerService'; +import { MyInquiries } from '../../../../../../models/activityLog'; +import { My_INQUIRIES_MESSAGE } from '../../../../../../constants/user/customerService'; interface InquiryProps { list: MyInquiries; diff --git a/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.styled.ts b/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.styled.ts index 51b088fa..35d4340c 100644 --- a/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.styled.ts +++ b/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import PositionButton from '../../../common/positionButton/PositionButton'; +import PositionButton from '../../../../common/positionButton/PositionButton'; export const Container = styled.div``; diff --git a/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.tsx b/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.tsx index 5533d9d0..06605ff8 100644 --- a/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.tsx +++ b/src/components/user/projectFormComponents/projectInformationInput/positionComponent/PositionComponent.tsx @@ -36,7 +36,9 @@ const MozipCategoryComponent = ({ handleClick(e, idx + 1)} + onClick={(e: React.MouseEvent) => + handleClick(e, idx + 1) + } key={idx + 1} isHover={true} fontSize={true} diff --git a/src/components/user/userPage/userProfile/UserProfile.tsx b/src/components/user/userPage/userProfile/UserProfile.tsx index e3a2a9cb..02accded 100644 --- a/src/components/user/userPage/userProfile/UserProfile.tsx +++ b/src/components/user/userPage/userProfile/UserProfile.tsx @@ -1,4 +1,4 @@ -import * as S from '../../../mypage/myProfile/MyProfile.styled'; +import * as S from '../../'; import BeginnerIcon from '../../../assets/beginner.svg'; import { useParams } from 'react-router-dom'; import { useUserProfileInfo } from '../../../../hooks/user/useUserInfo'; diff --git a/src/constants/sidebarItems.tsx b/src/constants/sidebarItems.tsx index dd76a964..d1567109 100644 --- a/src/constants/sidebarItems.tsx +++ b/src/constants/sidebarItems.tsx @@ -1,9 +1,9 @@ -import { ROUTES } from './routes'; import { UserGroupIcon, PencilSquareIcon, UserPlusIcon, } from '@heroicons/react/24/outline'; +import { ROUTES } from './user/routes'; export const applicantsMenuItems = (projectId: number, isDone?: boolean) => { return [ diff --git a/src/models/createProject.ts b/src/models/createProject.ts index 6b98dca6..4727c7e9 100644 --- a/src/models/createProject.ts +++ b/src/models/createProject.ts @@ -1,5 +1,5 @@ import { z } from 'zod'; -import { createProjectScheme } from '../constants/projectConstants'; +import { createProjectScheme } from '../constants/user/projectConstants'; export type CreateProjectFormValues = z.infer; diff --git a/src/models/joinProject.ts b/src/models/joinProject.ts index ce7689e6..c644282e 100644 --- a/src/models/joinProject.ts +++ b/src/models/joinProject.ts @@ -1,5 +1,5 @@ import { z } from 'zod'; -import { ApplyScheme } from '../constants/projectConstants'; +import { ApplyScheme } from '../constants/user/projectConstants'; export type ApplySchemeType = z.infer; diff --git a/src/pages/login/Login.tsx b/src/pages/login/Login.tsx index c2f2a2ce..4596c1fb 100644 --- a/src/pages/login/Login.tsx +++ b/src/pages/login/Login.tsx @@ -2,17 +2,20 @@ import { Link } from 'react-router-dom'; import * as S from './Login.styled'; import Mainlogo from '../../assets/mainlogo.svg'; import { EnvelopeIcon, KeyIcon } from '@heroicons/react/24/outline'; -import InputText from '../../components/auth/InputText'; import Title from '../../components/common/title/Title'; import { z } from 'zod'; import { Controller, useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import Button from '../../components/common/Button/Button'; -import { ERROR_MESSAGES, OAUTH_PROVIDERS } from '../../constants/authConstants'; import { useAuth } from '../../hooks/useAuth'; -import { ROUTES } from '../../constants/routes'; import { useModal } from '../../hooks/useModal'; import Modal from '../../components/common/modal/Modal'; +import { + ERROR_MESSAGES, + OAUTH_PROVIDERS, +} from '../../constants/user/authConstants'; +import InputText from '../../components/user/auth/InputText'; +import { ROUTES } from '../../constants/user/routes'; const loginSchema = z.object({ email: z diff --git a/src/pages/login/LoginSuccess.tsx b/src/pages/login/LoginSuccess.tsx index 125171ac..cb42cae1 100644 --- a/src/pages/login/LoginSuccess.tsx +++ b/src/pages/login/LoginSuccess.tsx @@ -1,12 +1,12 @@ import { useEffect } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import useAuthStore from '../../store/authStore'; -import { ROUTES } from '../../constants/routes'; import * as S from './Login.styled'; import { Spinner } from '../../components/common/loadingSpinner/LoadingSpinner.styled'; import Modal from '../../components/common/modal/Modal'; import { useModal } from '../../hooks/useModal'; -import { AUTH_MESSAGE } from '../../constants/authConstants'; +import { ROUTES } from '../../constants/user/routes'; +import { AUTH_MESSAGE } from '../../constants/user/authConstants'; function LoginSuccess() { const [searchParams] = useSearchParams(); diff --git a/src/pages/user/apply/Apply.styled.ts b/src/pages/user/apply/Apply.styled.ts index 1d946a60..ab3932ff 100644 --- a/src/pages/user/apply/Apply.styled.ts +++ b/src/pages/user/apply/Apply.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../components/common/Button/Button'; +import Button from '../../../components/common/Button/Button'; export const Container = styled.div` max-width: 100%; diff --git a/src/pages/user/apply/ApplyStep.styled.ts b/src/pages/user/apply/ApplyStep.styled.ts index 36f685eb..c98ce78a 100644 --- a/src/pages/user/apply/ApplyStep.styled.ts +++ b/src/pages/user/apply/ApplyStep.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../components/common/Button/Button'; +import Button from '../../../components/common/Button/Button'; export const Container = styled.div` max-width: 100%; diff --git a/src/pages/user/projectDetail/ProjectDetail.styled.ts b/src/pages/user/projectDetail/ProjectDetail.styled.ts index efe0746f..afcda36c 100644 --- a/src/pages/user/projectDetail/ProjectDetail.styled.ts +++ b/src/pages/user/projectDetail/ProjectDetail.styled.ts @@ -1,5 +1,5 @@ import styled from 'styled-components'; -import Button from '../../components/common/Button/Button'; +import Button from '../../../components/common/Button/Button'; export const Container = styled.div` width: 100%; From e9cc24887bca1705bca6f48c7e059fa166eb526d Mon Sep 17 00:00:00 2001 From: Cho SeungYeon <111514472+layout-SY@users.noreply.github.com> Date: Thu, 15 May 2025 22:12:16 +0900 Subject: [PATCH 02/11] =?UTF-8?q?refactor=20:=20asset=EC=9D=98=20.svg=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=ED=8C=8C=EC=9D=BC=20=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/header/Header.tsx | 10 +++++----- .../commentComponent/CommentComponentLayout.tsx | 6 +++--- .../commentComponent/CommentComponent.tsx | 2 +- .../user/comment/commentInput/CommentInput.tsx | 2 +- .../user/comment/replyComponent/ReplyComponent.tsx | 4 ++-- src/components/user/home/banner/Banner.tsx | 2 +- .../user/home/projectCardLists/cardList/CardList.tsx | 2 +- .../filteringContents/FilteringContents.tsx | 2 +- src/components/user/mypage/joinedProject/Project.tsx | 8 ++------ .../user/mypage/myProfile/profile/Profile.tsx | 2 +- .../projectInformationText/ProjectInformation.tsx | 2 +- .../MyProjectVolunteersPass.tsx | 2 +- .../manage/myProjectVolunteer/MyProjectVolunteer.tsx | 2 +- src/pages/user/mypage/MyPage.tsx | 2 +- src/pages/user/register/Register.tsx | 2 +- src/pages/user/userpage/UserPage.tsx | 2 +- 16 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/components/common/header/Header.tsx b/src/components/common/header/Header.tsx index 6d9f1b8f..c2dc1aaf 100644 --- a/src/components/common/header/Header.tsx +++ b/src/components/common/header/Header.tsx @@ -11,11 +11,11 @@ import loadingImg from '../../../assets/loadingImg.svg'; import { useModal } from '../../../hooks/useModal'; import Modal from '../modal/Modal'; import { formatImgPath } from '../../../util/formatImgPath'; -import bell from '../../../assets/bell.svg'; -import Notification from './Notification/Notification'; -import bellLogined from '../../../assets/bellLogined.svg'; -import { useEffect } from 'react'; -import { testLiveAlarm } from '../../../api/alarm.api'; +// import bell from '../../../assets/bell.svg'; +// import Notification from './Notification/Notification'; +// import bellLogined from '../../../assets/bellLogined.svg'; +// import { useEffect } from 'react'; +// import { testLiveAlarm } from '../../../api/alarm.api'; import { useMyProfileInfo } from '../../../hooks/user/useMyInfo'; import { ROUTES } from '../../../constants/user/routes'; diff --git a/src/components/user/comment/commentComponent/CommentComponentLayout.tsx b/src/components/user/comment/commentComponent/CommentComponentLayout.tsx index ef0a4531..a19b5b45 100644 --- a/src/components/user/comment/commentComponent/CommentComponentLayout.tsx +++ b/src/components/user/comment/commentComponent/CommentComponentLayout.tsx @@ -1,13 +1,13 @@ import * as S from './CommentComponentLayout.styled'; import DropDown from '../../../common/dropDown/DropDown'; import DropDownItem from '../DropDownItem'; -import dropdownButton from '../../../assets/dropdownButton.svg'; import useComment from '../../../../hooks/user/CommentHooks/useComment'; import ReplyComponent from '../replyComponent/ReplyComponent'; -import ArrowDown from '../../../assets/ArrowDown.svg'; -import ArrowUp from '../../../assets/ArrowUp.svg'; +import ArrowUp from '../../../../assets/ArrowUp.svg'; import CommentComponent from './commentComponent/CommentComponent'; import { CommentType } from '../../../../models/comment'; +import dropdownButton from '../../../../assets/dropdownButton.svg'; +import ArrowDown from '../../../../assets/ArrowDown.svg'; interface CommentLayoutProps { projectId: number; diff --git a/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx b/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx index 417057fe..b5e63ce6 100644 --- a/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx +++ b/src/components/user/comment/commentComponent/commentComponent/CommentComponent.tsx @@ -1,6 +1,6 @@ import { Dispatch, SetStateAction } from 'react'; import * as S from './CommentComponent.styled'; -import chat from '../../../../assets/chat.svg'; +import chat from '../../../../../assets/chat.svg'; import { Link } from 'react-router-dom'; import CommentInput from '../../commentInput/CommentInput'; import { CommentType } from '../../../../../models/comment'; diff --git a/src/components/user/comment/commentInput/CommentInput.tsx b/src/components/user/comment/commentInput/CommentInput.tsx index 068e5da9..6e39312d 100644 --- a/src/components/user/comment/commentInput/CommentInput.tsx +++ b/src/components/user/comment/commentInput/CommentInput.tsx @@ -2,7 +2,7 @@ import * as S from './CommentInput.styled'; import { Dispatch, SetStateAction, useEffect } from 'react'; import { useMyProfileInfo } from '../../../../hooks/user/useMyInfo'; import { formatImgPath } from '../../../../util/formatImgPath'; -import DefaultImg from '../../../assets/defaultImg.png'; +import DefaultImg from '../../../../assets/defaultImg.png'; import Avatar from '../../../common/avatar/Avatar'; import { useForm } from 'react-hook-form'; import useInputFocus from '../../../../hooks/user/useInputFocus'; diff --git a/src/components/user/comment/replyComponent/ReplyComponent.tsx b/src/components/user/comment/replyComponent/ReplyComponent.tsx index 401bafba..985a9419 100644 --- a/src/components/user/comment/replyComponent/ReplyComponent.tsx +++ b/src/components/user/comment/replyComponent/ReplyComponent.tsx @@ -1,15 +1,15 @@ import Avatar from '../../../common/avatar/Avatar'; import * as S from './ReplyComponent.styled'; -import DefaultImg from '../../../assets/defaultImg.png'; +import DefaultImg from '../../../../assets/defaultImg.png'; import useComment from '../../../../hooks/user/CommentHooks/useComment'; import DropDown from '../../../common/dropDown/DropDown'; import DropDownItem from '../DropDownItem'; -import dropdownButton from '../../../assets/dropdownButton.svg'; import CommentInput from '../commentInput/CommentInput'; import useGetReply from '../../../../hooks/user/CommentHooks/useGetReply'; import LoadingSpinner from '../../../common/loadingSpinner/LoadingSpinner'; import { Link } from 'react-router-dom'; import { ROUTES } from '../../../../constants/user/routes'; +import dropdownButton from '../../../../assets/dropdownButton.svg'; interface ReplyComponentProps { projectId: number; diff --git a/src/components/user/home/banner/Banner.tsx b/src/components/user/home/banner/Banner.tsx index 25e7107f..7f0afc22 100644 --- a/src/components/user/home/banner/Banner.tsx +++ b/src/components/user/home/banner/Banner.tsx @@ -1,5 +1,5 @@ import * as S from './Banner.styled'; -import banner from '../../../assets/banner.svg'; +import banner from '../../../../assets/banner.svg'; export default function Banner() { return ( diff --git a/src/components/user/home/projectCardLists/cardList/CardList.tsx b/src/components/user/home/projectCardLists/cardList/CardList.tsx index 275c03b2..4975a5bb 100644 --- a/src/components/user/home/projectCardLists/cardList/CardList.tsx +++ b/src/components/user/home/projectCardLists/cardList/CardList.tsx @@ -1,10 +1,10 @@ import PositionButton from '../../../../common/positionButton/PositionButton'; import * as S from './CardList.styled'; -import beginner from '../../../../assets/beginner.svg'; import { EyeIcon } from '@heroicons/react/24/outline'; import type { ProjectList } from '../../../../../models/mainProjectLists'; import { formatDate } from '../../../../../util/formatDate'; import Avatar from '../../../../common/avatar/Avatar'; +import beginner from '../../../../../assets/beginner.svg'; interface CardListProps { list: ProjectList; diff --git a/src/components/user/home/searchFiltering/filteringContents/FilteringContents.tsx b/src/components/user/home/searchFiltering/filteringContents/FilteringContents.tsx index 30398fd2..0bcf8133 100644 --- a/src/components/user/home/searchFiltering/filteringContents/FilteringContents.tsx +++ b/src/components/user/home/searchFiltering/filteringContents/FilteringContents.tsx @@ -1,6 +1,5 @@ import Filtering from './filtering/Filtering'; import * as S from './FilteringContents.styled'; -import beginner from '../../../../assets/beginner.svg'; import { ChevronDownIcon } from '@heroicons/react/24/outline'; import SkillTagBox from '../../../../common/skillTagBox/SkillTagBox'; import React, { useState } from 'react'; @@ -8,6 +7,7 @@ import { useSearchFilteringSkillTag } from '../../../../../hooks/user/useSearchF import { useOutsideClick } from '../../../../../hooks/user/useOutsideClick'; import { useSaveSearchFiltering } from '../../../../../hooks/user/useSaveSearchFiltering'; import { SEARCH_FILTERING_DEFAULT_VALUE } from '../../../../../constants/user/homeConstants'; +import beginner from '../../../../../assets/beginner.svg'; export default function FilteringContents() { const { positionTagsData, methodTagsData } = useSearchFilteringSkillTag(); diff --git a/src/components/user/mypage/joinedProject/Project.tsx b/src/components/user/mypage/joinedProject/Project.tsx index 920c8fa9..ec215e35 100644 --- a/src/components/user/mypage/joinedProject/Project.tsx +++ b/src/components/user/mypage/joinedProject/Project.tsx @@ -1,7 +1,7 @@ import * as S from './Project.styled'; -import BeginnerIcon from '../../../assets/beginner.svg'; import { EllipsisHorizontalIcon } from '@heroicons/react/24/outline'; import { JoinedProject } from '../../../../models/userProject'; +import beginner from '../../../../assets/beginner.svg'; interface ProjectProps { project: JoinedProject; @@ -22,11 +22,7 @@ const Project = ({ project }: ProjectProps) => { - {project.isBeginner ? ( - beginner - ) : ( - '' - )} + {project.isBeginner ? beginner : ''} {project.totalMember}명 diff --git a/src/components/user/mypage/myProfile/profile/Profile.tsx b/src/components/user/mypage/myProfile/profile/Profile.tsx index 27e74e4e..b7fc4ddf 100644 --- a/src/components/user/mypage/myProfile/profile/Profile.tsx +++ b/src/components/user/mypage/myProfile/profile/Profile.tsx @@ -1,5 +1,5 @@ import * as S from './Profile.styled'; -import BeginnerIcon from '../../../../assets/beginner.svg'; +import BeginnerIcon from '../../../../../assets/beginner.svg'; import 'chart.js/auto'; import { ChartOptions } from 'chart.js'; import { Link, useOutletContext } from 'react-router-dom'; diff --git a/src/components/user/projectFormComponents/projectInformationText/ProjectInformation.tsx b/src/components/user/projectFormComponents/projectInformationText/ProjectInformation.tsx index ef754f10..2acf1073 100644 --- a/src/components/user/projectFormComponents/projectInformationText/ProjectInformation.tsx +++ b/src/components/user/projectFormComponents/projectInformationText/ProjectInformation.tsx @@ -5,7 +5,7 @@ import { } from '../../../../models/projectDetail'; import { formatDate } from '../../../../util/formatDate'; import * as S from './ProjectInformation.styled'; -import beginner from '/src/assets/beginner.svg'; +import beginner from '../../../../assets/beginner.svg'; interface ProjectInformationProps { data: ProjectDetailPlusExtended; diff --git a/src/pages/user/manage/myProjectParticipantsPass/MyProjectVolunteersPass.tsx b/src/pages/user/manage/myProjectParticipantsPass/MyProjectVolunteersPass.tsx index 50c61948..b60bf2d1 100644 --- a/src/pages/user/manage/myProjectParticipantsPass/MyProjectVolunteersPass.tsx +++ b/src/pages/user/manage/myProjectParticipantsPass/MyProjectVolunteersPass.tsx @@ -1,6 +1,6 @@ import * as S from './MyProjectVolunteersPass.styled'; import { useParams } from 'react-router-dom'; -import MainLogo from '../../../assets/mainlogo.svg'; +import MainLogo from '../../../../assets/mainlogo.svg'; import { Suspense, useMemo } from 'react'; import useGetProjectData from '../../../../hooks/user/useGetProjectData'; import { usePassNonPassList } from '../../../../hooks/user/usePassNonPassList'; diff --git a/src/pages/user/manage/myProjectVolunteer/MyProjectVolunteer.tsx b/src/pages/user/manage/myProjectVolunteer/MyProjectVolunteer.tsx index f725c37e..d65bc856 100644 --- a/src/pages/user/manage/myProjectVolunteer/MyProjectVolunteer.tsx +++ b/src/pages/user/manage/myProjectVolunteer/MyProjectVolunteer.tsx @@ -1,6 +1,6 @@ import { useParams } from 'react-router-dom'; import * as S from './MyProjectVolunteer.styled'; -import MainLogo from '../../../assets/mainlogo.svg'; +import MainLogo from '../../../../assets/mainlogo.svg'; import { useMemo } from 'react'; import useGetProjectData from '../../../../hooks/user/useGetProjectData'; import { useModal } from '../../../../hooks/useModal'; diff --git a/src/pages/user/mypage/MyPage.tsx b/src/pages/user/mypage/MyPage.tsx index b70c6dda..b1b6d72f 100644 --- a/src/pages/user/mypage/MyPage.tsx +++ b/src/pages/user/mypage/MyPage.tsx @@ -6,7 +6,7 @@ import { PencilSquareIcon, BellIcon, } from '@heroicons/react/24/outline'; -import loadingImg from '../../assets/loadingImg.svg'; +import loadingImg from '../../../assets/loadingImg.svg'; import { ROUTES } from '../../../constants/user/routes'; import { useMyProfileInfo } from '../../../hooks/user/useMyInfo'; import Sidebar from '../../../components/common/sidebar/Sidebar'; diff --git a/src/pages/user/register/Register.tsx b/src/pages/user/register/Register.tsx index c1e32dfc..912db98a 100644 --- a/src/pages/user/register/Register.tsx +++ b/src/pages/user/register/Register.tsx @@ -1,6 +1,6 @@ import * as S from '../../login/Login.styled'; import { Link } from 'react-router-dom'; -import Mainlogo from '../../assets/mainlogo.svg'; +import Mainlogo from '../../../assets/mainlogo.svg'; import { z } from 'zod'; import { Controller, useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; diff --git a/src/pages/user/userpage/UserPage.tsx b/src/pages/user/userpage/UserPage.tsx index 4fddff39..46b81c0a 100644 --- a/src/pages/user/userpage/UserPage.tsx +++ b/src/pages/user/userpage/UserPage.tsx @@ -1,7 +1,7 @@ import { Outlet, useParams } from 'react-router-dom'; import * as S from '../mypage/MyPage.styled'; import { DocumentTextIcon, UserIcon } from '@heroicons/react/24/outline'; -import loadingImg from '../../assets/loadingImg.svg'; +import loadingImg from '../../../assets/loadingImg.svg'; import { ROUTES } from '../../../constants/user/routes'; import { useUserProfileInfo } from '../../../hooks/user/useUserInfo'; import Sidebar from '../../../components/common/sidebar/Sidebar'; From 1254cf5d0cf06cad9e365cbd1dba10f9549f0a8b Mon Sep 17 00:00:00 2001 From: Cho SeungYeon <111514472+layout-SY@users.noreply.github.com> Date: Thu, 15 May 2025 22:14:56 +0900 Subject: [PATCH 03/11] =?UTF-8?q?feat=20:=20=EC=B0=B8=EC=97=AC=ED=95=9C/?= =?UTF-8?q?=EC=A7=80=EC=9B=90=ED=95=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=EB=8A=94=20=EA=B3=B5=EA=B3=A0=20=EC=83=81=EC=84=B8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20"=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=A0=9D=ED=8A=B8=20=ED=95=A8=EA=BB=98=ED=95=98=EA=B8=B0"=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/projectDetail.ts | 2 ++ src/pages/user/projectDetail/ProjectDetail.tsx | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/models/projectDetail.ts b/src/models/projectDetail.ts index 5f84f3e3..de1a594a 100644 --- a/src/models/projectDetail.ts +++ b/src/models/projectDetail.ts @@ -33,6 +33,8 @@ export interface ProjectDetailPlusExtended extends ProjectDetailPlus { methodType: MethodTag; positions: PositionTag[]; skills: SkillTag[]; + applicantIds: number[]; + acceptedIds: number[]; } export interface dataPlus extends ApiCommonType { diff --git a/src/pages/user/projectDetail/ProjectDetail.tsx b/src/pages/user/projectDetail/ProjectDetail.tsx index bc9b6195..14079c45 100644 --- a/src/pages/user/projectDetail/ProjectDetail.tsx +++ b/src/pages/user/projectDetail/ProjectDetail.tsx @@ -41,6 +41,14 @@ const ProjectDetail = () => { ); } + if (!userData) { + return ( + + {message} + + ); + } + const handleApplyClick = () => { navigate(`${ROUTES.apply}/${id}`); }; @@ -50,6 +58,9 @@ const ProjectDetail = () => { navigate(`/user/${userId}`); }; + console.log(data); + console.log(userData.id); + return ( @@ -80,7 +91,9 @@ const ProjectDetail = () => { - {userData?.id !== data.user.id ? ( + {userData.id !== data.user.id && + !data.acceptedIds.includes(userData.id) && + !data.applicantIds.includes(userData.id) ? (