From e9d5b358681bf455646527dff3d5bd3d51d30250 Mon Sep 17 00:00:00 2001 From: yeahsel Date: Fri, 30 Jan 2026 00:20:12 +0900 Subject: [PATCH 1/5] =?UTF-8?q?rename:=20mypage=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=ED=95=84=20=EC=B9=B4=EB=93=9C=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routeTree.gen.ts | 616 ++++++++++++------ .../components}/ConfirmModal.tsx | 2 +- .../profileCard.tsx/MatchingResult.tsx | 13 + .../profileCard.tsx/MyCampaigns.tsx | 13 + .../components/profileCard.tsx/MyTraits.tsx | 11 + .../profileCard.tsx/ProfileSummary.tsx | 13 + .../components/profileCard.tsx/SnsCard.tsx | 11 + .../_main/_mypage/edit/edit-content.tsx | 9 + .../edit.tsx => _mypage/edit/route.tsx} | 2 +- .../likes/likes-content.tsx} | 2 +- .../inquiry.tsx => _mypage/likes/route.tsx} | 4 +- .../_main/{ => _mypage}/mypage/MyPageHome.tsx | 129 ++-- .../_main/_mypage/mypage/mypage-content.tsx | 37 ++ src/routes/_main/_mypage/mypage/route.tsx | 14 + .../notifications/notifications-content.tsx | 9 + .../notifications/route.tsx} | 2 +- .../_main/_mypage/privacy/privacy-content.tsx | 9 + .../privacy.tsx => _mypage/privacy/route.tsx} | 2 +- .../profileCard/profileCard-content.tsx | 195 ++++++ .../_main/_mypage/profileCard/route.tsx | 10 + .../terms.tsx => _mypage/terms/route.tsx} | 2 +- .../_main/_mypage/terms/terms-content.tsx | 9 + src/routes/_main/mypage/mypage-content.tsx | 35 - src/routes/_main/mypage/profileCard.tsx | 9 - src/routes/_main/mypage/route.tsx | 6 - src/routes/_main/mypage/withdraw.tsx | 9 - 26 files changed, 856 insertions(+), 317 deletions(-) rename src/routes/_main/{mypage/_components => _mypage/components}/ConfirmModal.tsx (97%) create mode 100644 src/routes/_main/_mypage/components/profileCard.tsx/MatchingResult.tsx create mode 100644 src/routes/_main/_mypage/components/profileCard.tsx/MyCampaigns.tsx create mode 100644 src/routes/_main/_mypage/components/profileCard.tsx/MyTraits.tsx create mode 100644 src/routes/_main/_mypage/components/profileCard.tsx/ProfileSummary.tsx create mode 100644 src/routes/_main/_mypage/components/profileCard.tsx/SnsCard.tsx create mode 100644 src/routes/_main/_mypage/edit/edit-content.tsx rename src/routes/_main/{mypage/edit.tsx => _mypage/edit/route.tsx} (73%) rename src/routes/_main/{mypage/likes.tsx => _mypage/likes/likes-content.tsx} (70%) rename src/routes/_main/{mypage/inquiry.tsx => _mypage/likes/route.tsx} (51%) rename src/routes/_main/{ => _mypage}/mypage/MyPageHome.tsx (86%) create mode 100644 src/routes/_main/_mypage/mypage/mypage-content.tsx create mode 100644 src/routes/_main/_mypage/mypage/route.tsx create mode 100644 src/routes/_main/_mypage/notifications/notifications-content.tsx rename src/routes/_main/{mypage/notifications.tsx => _mypage/notifications/route.tsx} (71%) create mode 100644 src/routes/_main/_mypage/privacy/privacy-content.tsx rename src/routes/_main/{mypage/privacy.tsx => _mypage/privacy/route.tsx} (72%) create mode 100644 src/routes/_main/_mypage/profileCard/profileCard-content.tsx create mode 100644 src/routes/_main/_mypage/profileCard/route.tsx rename src/routes/_main/{mypage/terms.tsx => _mypage/terms/route.tsx} (72%) create mode 100644 src/routes/_main/_mypage/terms/terms-content.tsx delete mode 100644 src/routes/_main/mypage/mypage-content.tsx delete mode 100644 src/routes/_main/mypage/profileCard.tsx delete mode 100644 src/routes/_main/mypage/route.tsx delete mode 100644 src/routes/_main/mypage/withdraw.tsx diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index 92b548a7..d9c2d086 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -13,17 +13,8 @@ import { Route as MainRouteImport } from './routes/_main' import { Route as RoomsRouteRouteImport } from './routes/rooms/route' import { Route as RoomsChatIdRouteImport } from './routes/rooms/$chatId' import { Route as AuthLoginRouteRouteImport } from './routes/auth/login/route' -import { Route as MainMypageRouteRouteImport } from './routes/_main/mypage/route' import { Route as MainChatRouteRouteImport } from './routes/_main/chat/route' import { Route as MainHomeIndexRouteImport } from './routes/_main/_home/index' -import { Route as MainMypageWithdrawRouteImport } from './routes/_main/mypage/withdraw' -import { Route as MainMypageTermsRouteImport } from './routes/_main/mypage/terms' -import { Route as MainMypageProfileCardRouteImport } from './routes/_main/mypage/profileCard' -import { Route as MainMypagePrivacyRouteImport } from './routes/_main/mypage/privacy' -import { Route as MainMypageNotificationsRouteImport } from './routes/_main/mypage/notifications' -import { Route as MainMypageLikesRouteImport } from './routes/_main/mypage/likes' -import { Route as MainMypageInquiryRouteImport } from './routes/_main/mypage/inquiry' -import { Route as MainMypageEditRouteImport } from './routes/_main/mypage/edit' import { Route as MainHomePreRouteImport } from './routes/_main/_home/pre' import { Route as AuthSignupTypeRouteRouteImport } from './routes/auth/signup/type/route' import { Route as AuthSignupTermsRouteRouteImport } from './routes/auth/signup/terms/route' @@ -32,13 +23,30 @@ import { Route as AuthSignupPurposeRouteRouteImport } from './routes/auth/signup import { Route as AuthSignupInfoMoreRouteRouteImport } from './routes/auth/signup/info-more/route' import { Route as AuthSignupInfoRouteRouteImport } from './routes/auth/signup/info/route' import { Route as MainMatchingTestMatchingResultRouteRouteImport } from './routes/_main/matching-test/matching-result/route' +import { Route as MainMypageTermsRouteRouteImport } from './routes/_main/_mypage/terms/route' +import { Route as MainMypageProfileCardRouteRouteImport } from './routes/_main/_mypage/profileCard/route' +import { Route as MainMypagePrivacyRouteRouteImport } from './routes/_main/_mypage/privacy/route' +import { Route as MainMypageNotificationsRouteRouteImport } from './routes/_main/_mypage/notifications/route' +import { Route as MainMypageMypageRouteRouteImport } from './routes/_main/_mypage/mypage/route' +import { Route as MainMypageLikesRouteRouteImport } from './routes/_main/_mypage/likes/route' +import { Route as MainMypageEditRouteRouteImport } from './routes/_main/_mypage/edit/route' import { Route as MainBusinessRejectionRouteRouteImport } from './routes/_main/_business/rejection/route' import { Route as MainBusinessProposalRouteRouteImport } from './routes/_main/_business/proposal/route' import { Route as MainBusinessCampaignRouteRouteImport } from './routes/_main/_business/campaign/route' import { Route as MainBusinessCalendarRouteRouteImport } from './routes/_main/_business/calendar/route' +import { Route as MainMypageTermsTermsContentRouteImport } from './routes/_main/_mypage/terms/terms-content' +import { Route as MainMypagePrivacyPrivacyContentRouteImport } from './routes/_main/_mypage/privacy/privacy-content' +import { Route as MainMypageNotificationsNotificationsContentRouteImport } from './routes/_main/_mypage/notifications/notifications-content' +import { Route as MainMypageLikesLikesContentRouteImport } from './routes/_main/_mypage/likes/likes-content' +import { Route as MainMypageEditEditContentRouteImport } from './routes/_main/_mypage/edit/edit-content' import { Route as MainMatchingTestMatchingTestStep3RouteRouteImport } from './routes/_main/matching-test/matching-test/step3/route' import { Route as MainMatchingTestMatchingTestStep2RouteRouteImport } from './routes/_main/matching-test/matching-test/step2/route' import { Route as MainMatchingTestMatchingTestStep1RouteRouteImport } from './routes/_main/matching-test/matching-test/step1/route' +import { Route as MainMypageComponentsProfileCardTsxSnsCardRouteImport } from './routes/_main/_mypage/components/profileCard.tsx/SnsCard' +import { Route as MainMypageComponentsProfileCardTsxProfileSummaryRouteImport } from './routes/_main/_mypage/components/profileCard.tsx/ProfileSummary' +import { Route as MainMypageComponentsProfileCardTsxMyTraitsRouteImport } from './routes/_main/_mypage/components/profileCard.tsx/MyTraits' +import { Route as MainMypageComponentsProfileCardTsxMyCampaignsRouteImport } from './routes/_main/_mypage/components/profileCard.tsx/MyCampaigns' +import { Route as MainMypageComponentsProfileCardTsxMatchingResultRouteImport } from './routes/_main/_mypage/components/profileCard.tsx/MatchingResult' const MainRoute = MainRouteImport.update({ id: '/_main', @@ -59,11 +67,6 @@ const AuthLoginRouteRoute = AuthLoginRouteRouteImport.update({ path: '/auth/login', getParentRoute: () => rootRouteImport, } as any) -const MainMypageRouteRoute = MainMypageRouteRouteImport.update({ - id: '/mypage', - path: '/mypage', - getParentRoute: () => MainRoute, -} as any) const MainChatRouteRoute = MainChatRouteRouteImport.update({ id: '/chat', path: '/chat', @@ -74,46 +77,6 @@ const MainHomeIndexRoute = MainHomeIndexRouteImport.update({ path: '/', getParentRoute: () => MainRoute, } as any) -const MainMypageWithdrawRoute = MainMypageWithdrawRouteImport.update({ - id: '/withdraw', - path: '/withdraw', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageTermsRoute = MainMypageTermsRouteImport.update({ - id: '/terms', - path: '/terms', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageProfileCardRoute = MainMypageProfileCardRouteImport.update({ - id: '/profileCard', - path: '/profileCard', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypagePrivacyRoute = MainMypagePrivacyRouteImport.update({ - id: '/privacy', - path: '/privacy', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageNotificationsRoute = MainMypageNotificationsRouteImport.update({ - id: '/notifications', - path: '/notifications', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageLikesRoute = MainMypageLikesRouteImport.update({ - id: '/likes', - path: '/likes', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageInquiryRoute = MainMypageInquiryRouteImport.update({ - id: '/inquiry', - path: '/inquiry', - getParentRoute: () => MainMypageRouteRoute, -} as any) -const MainMypageEditRoute = MainMypageEditRouteImport.update({ - id: '/edit', - path: '/edit', - getParentRoute: () => MainMypageRouteRoute, -} as any) const MainHomePreRoute = MainHomePreRouteImport.update({ id: '/_home/pre', path: '/pre', @@ -155,6 +118,43 @@ const MainMatchingTestMatchingResultRouteRoute = path: '/matching-test/matching-result', getParentRoute: () => MainRoute, } as any) +const MainMypageTermsRouteRoute = MainMypageTermsRouteRouteImport.update({ + id: '/_mypage/terms', + path: '/terms', + getParentRoute: () => MainRoute, +} as any) +const MainMypageProfileCardRouteRoute = + MainMypageProfileCardRouteRouteImport.update({ + id: '/_mypage/profileCard', + path: '/profileCard', + getParentRoute: () => MainRoute, + } as any) +const MainMypagePrivacyRouteRoute = MainMypagePrivacyRouteRouteImport.update({ + id: '/_mypage/privacy', + path: '/privacy', + getParentRoute: () => MainRoute, +} as any) +const MainMypageNotificationsRouteRoute = + MainMypageNotificationsRouteRouteImport.update({ + id: '/_mypage/notifications', + path: '/notifications', + getParentRoute: () => MainRoute, + } as any) +const MainMypageMypageRouteRoute = MainMypageMypageRouteRouteImport.update({ + id: '/_mypage/mypage', + path: '/mypage', + getParentRoute: () => MainRoute, +} as any) +const MainMypageLikesRouteRoute = MainMypageLikesRouteRouteImport.update({ + id: '/_mypage/likes', + path: '/likes', + getParentRoute: () => MainRoute, +} as any) +const MainMypageEditRouteRoute = MainMypageEditRouteRouteImport.update({ + id: '/_mypage/edit', + path: '/edit', + getParentRoute: () => MainRoute, +} as any) const MainBusinessRejectionRouteRoute = MainBusinessRejectionRouteRouteImport.update({ id: '/_business/rejection', @@ -179,6 +179,36 @@ const MainBusinessCalendarRouteRoute = path: '/calendar', getParentRoute: () => MainRoute, } as any) +const MainMypageTermsTermsContentRoute = + MainMypageTermsTermsContentRouteImport.update({ + id: '/terms-content', + path: '/terms-content', + getParentRoute: () => MainMypageTermsRouteRoute, + } as any) +const MainMypagePrivacyPrivacyContentRoute = + MainMypagePrivacyPrivacyContentRouteImport.update({ + id: '/privacy-content', + path: '/privacy-content', + getParentRoute: () => MainMypagePrivacyRouteRoute, + } as any) +const MainMypageNotificationsNotificationsContentRoute = + MainMypageNotificationsNotificationsContentRouteImport.update({ + id: '/notifications-content', + path: '/notifications-content', + getParentRoute: () => MainMypageNotificationsRouteRoute, + } as any) +const MainMypageLikesLikesContentRoute = + MainMypageLikesLikesContentRouteImport.update({ + id: '/likes-content', + path: '/likes-content', + getParentRoute: () => MainMypageLikesRouteRoute, + } as any) +const MainMypageEditEditContentRoute = + MainMypageEditEditContentRouteImport.update({ + id: '/edit-content', + path: '/edit-content', + getParentRoute: () => MainMypageEditRouteRoute, + } as any) const MainMatchingTestMatchingTestStep3RouteRoute = MainMatchingTestMatchingTestStep3RouteRouteImport.update({ id: '/matching-test/matching-test/step3', @@ -197,17 +227,53 @@ const MainMatchingTestMatchingTestStep1RouteRoute = path: '/matching-test/matching-test/step1', getParentRoute: () => MainRoute, } as any) +const MainMypageComponentsProfileCardTsxSnsCardRoute = + MainMypageComponentsProfileCardTsxSnsCardRouteImport.update({ + id: '/_mypage/components/profileCard/tsx/SnsCard', + path: '/components/profileCard/tsx/SnsCard', + getParentRoute: () => MainRoute, + } as any) +const MainMypageComponentsProfileCardTsxProfileSummaryRoute = + MainMypageComponentsProfileCardTsxProfileSummaryRouteImport.update({ + id: '/_mypage/components/profileCard/tsx/ProfileSummary', + path: '/components/profileCard/tsx/ProfileSummary', + getParentRoute: () => MainRoute, + } as any) +const MainMypageComponentsProfileCardTsxMyTraitsRoute = + MainMypageComponentsProfileCardTsxMyTraitsRouteImport.update({ + id: '/_mypage/components/profileCard/tsx/MyTraits', + path: '/components/profileCard/tsx/MyTraits', + getParentRoute: () => MainRoute, + } as any) +const MainMypageComponentsProfileCardTsxMyCampaignsRoute = + MainMypageComponentsProfileCardTsxMyCampaignsRouteImport.update({ + id: '/_mypage/components/profileCard/tsx/MyCampaigns', + path: '/components/profileCard/tsx/MyCampaigns', + getParentRoute: () => MainRoute, + } as any) +const MainMypageComponentsProfileCardTsxMatchingResultRoute = + MainMypageComponentsProfileCardTsxMatchingResultRouteImport.update({ + id: '/_mypage/components/profileCard/tsx/MatchingResult', + path: '/components/profileCard/tsx/MatchingResult', + getParentRoute: () => MainRoute, + } as any) export interface FileRoutesByFullPath { '/rooms': typeof RoomsRouteRouteWithChildren '/chat': typeof MainChatRouteRoute - '/mypage': typeof MainMypageRouteRouteWithChildren '/auth/login': typeof AuthLoginRouteRoute '/rooms/$chatId': typeof RoomsChatIdRoute '/calendar': typeof MainBusinessCalendarRouteRoute '/campaign': typeof MainBusinessCampaignRouteRoute '/proposal': typeof MainBusinessProposalRouteRoute '/rejection': typeof MainBusinessRejectionRouteRoute + '/edit': typeof MainMypageEditRouteRouteWithChildren + '/likes': typeof MainMypageLikesRouteRouteWithChildren + '/mypage': typeof MainMypageMypageRouteRoute + '/notifications': typeof MainMypageNotificationsRouteRouteWithChildren + '/privacy': typeof MainMypagePrivacyRouteRouteWithChildren + '/profileCard': typeof MainMypageProfileCardRouteRoute + '/terms': typeof MainMypageTermsRouteRouteWithChildren '/matching-test/matching-result': typeof MainMatchingTestMatchingResultRouteRoute '/auth/signup/info': typeof AuthSignupInfoRouteRoute '/auth/signup/info-more': typeof AuthSignupInfoMoreRouteRoute @@ -216,29 +282,37 @@ export interface FileRoutesByFullPath { '/auth/signup/terms': typeof AuthSignupTermsRouteRoute '/auth/signup/type': typeof AuthSignupTypeRouteRoute '/pre': typeof MainHomePreRoute - '/mypage/edit': typeof MainMypageEditRoute - '/mypage/inquiry': typeof MainMypageInquiryRoute - '/mypage/likes': typeof MainMypageLikesRoute - '/mypage/notifications': typeof MainMypageNotificationsRoute - '/mypage/privacy': typeof MainMypagePrivacyRoute - '/mypage/profileCard': typeof MainMypageProfileCardRoute - '/mypage/terms': typeof MainMypageTermsRoute - '/mypage/withdraw': typeof MainMypageWithdrawRoute '/': typeof MainHomeIndexRoute '/matching-test/matching-test/step1': typeof MainMatchingTestMatchingTestStep1RouteRoute '/matching-test/matching-test/step2': typeof MainMatchingTestMatchingTestStep2RouteRoute '/matching-test/matching-test/step3': typeof MainMatchingTestMatchingTestStep3RouteRoute + '/edit/edit-content': typeof MainMypageEditEditContentRoute + '/likes/likes-content': typeof MainMypageLikesLikesContentRoute + '/notifications/notifications-content': typeof MainMypageNotificationsNotificationsContentRoute + '/privacy/privacy-content': typeof MainMypagePrivacyPrivacyContentRoute + '/terms/terms-content': typeof MainMypageTermsTermsContentRoute + '/components/profileCard/tsx/MatchingResult': typeof MainMypageComponentsProfileCardTsxMatchingResultRoute + '/components/profileCard/tsx/MyCampaigns': typeof MainMypageComponentsProfileCardTsxMyCampaignsRoute + '/components/profileCard/tsx/MyTraits': typeof MainMypageComponentsProfileCardTsxMyTraitsRoute + '/components/profileCard/tsx/ProfileSummary': typeof MainMypageComponentsProfileCardTsxProfileSummaryRoute + '/components/profileCard/tsx/SnsCard': typeof MainMypageComponentsProfileCardTsxSnsCardRoute } export interface FileRoutesByTo { '/rooms': typeof RoomsRouteRouteWithChildren '/chat': typeof MainChatRouteRoute - '/mypage': typeof MainMypageRouteRouteWithChildren '/auth/login': typeof AuthLoginRouteRoute '/rooms/$chatId': typeof RoomsChatIdRoute '/calendar': typeof MainBusinessCalendarRouteRoute '/campaign': typeof MainBusinessCampaignRouteRoute '/proposal': typeof MainBusinessProposalRouteRoute '/rejection': typeof MainBusinessRejectionRouteRoute + '/edit': typeof MainMypageEditRouteRouteWithChildren + '/likes': typeof MainMypageLikesRouteRouteWithChildren + '/mypage': typeof MainMypageMypageRouteRoute + '/notifications': typeof MainMypageNotificationsRouteRouteWithChildren + '/privacy': typeof MainMypagePrivacyRouteRouteWithChildren + '/profileCard': typeof MainMypageProfileCardRouteRoute + '/terms': typeof MainMypageTermsRouteRouteWithChildren '/matching-test/matching-result': typeof MainMatchingTestMatchingResultRouteRoute '/auth/signup/info': typeof AuthSignupInfoRouteRoute '/auth/signup/info-more': typeof AuthSignupInfoMoreRouteRoute @@ -247,31 +321,39 @@ export interface FileRoutesByTo { '/auth/signup/terms': typeof AuthSignupTermsRouteRoute '/auth/signup/type': typeof AuthSignupTypeRouteRoute '/pre': typeof MainHomePreRoute - '/mypage/edit': typeof MainMypageEditRoute - '/mypage/inquiry': typeof MainMypageInquiryRoute - '/mypage/likes': typeof MainMypageLikesRoute - '/mypage/notifications': typeof MainMypageNotificationsRoute - '/mypage/privacy': typeof MainMypagePrivacyRoute - '/mypage/profileCard': typeof MainMypageProfileCardRoute - '/mypage/terms': typeof MainMypageTermsRoute - '/mypage/withdraw': typeof MainMypageWithdrawRoute '/': typeof MainHomeIndexRoute '/matching-test/matching-test/step1': typeof MainMatchingTestMatchingTestStep1RouteRoute '/matching-test/matching-test/step2': typeof MainMatchingTestMatchingTestStep2RouteRoute '/matching-test/matching-test/step3': typeof MainMatchingTestMatchingTestStep3RouteRoute + '/edit/edit-content': typeof MainMypageEditEditContentRoute + '/likes/likes-content': typeof MainMypageLikesLikesContentRoute + '/notifications/notifications-content': typeof MainMypageNotificationsNotificationsContentRoute + '/privacy/privacy-content': typeof MainMypagePrivacyPrivacyContentRoute + '/terms/terms-content': typeof MainMypageTermsTermsContentRoute + '/components/profileCard/tsx/MatchingResult': typeof MainMypageComponentsProfileCardTsxMatchingResultRoute + '/components/profileCard/tsx/MyCampaigns': typeof MainMypageComponentsProfileCardTsxMyCampaignsRoute + '/components/profileCard/tsx/MyTraits': typeof MainMypageComponentsProfileCardTsxMyTraitsRoute + '/components/profileCard/tsx/ProfileSummary': typeof MainMypageComponentsProfileCardTsxProfileSummaryRoute + '/components/profileCard/tsx/SnsCard': typeof MainMypageComponentsProfileCardTsxSnsCardRoute } export interface FileRoutesById { __root__: typeof rootRouteImport '/rooms': typeof RoomsRouteRouteWithChildren '/_main': typeof MainRouteWithChildren '/_main/chat': typeof MainChatRouteRoute - '/_main/mypage': typeof MainMypageRouteRouteWithChildren '/auth/login': typeof AuthLoginRouteRoute '/rooms/$chatId': typeof RoomsChatIdRoute '/_main/_business/calendar': typeof MainBusinessCalendarRouteRoute '/_main/_business/campaign': typeof MainBusinessCampaignRouteRoute '/_main/_business/proposal': typeof MainBusinessProposalRouteRoute '/_main/_business/rejection': typeof MainBusinessRejectionRouteRoute + '/_main/_mypage/edit': typeof MainMypageEditRouteRouteWithChildren + '/_main/_mypage/likes': typeof MainMypageLikesRouteRouteWithChildren + '/_main/_mypage/mypage': typeof MainMypageMypageRouteRoute + '/_main/_mypage/notifications': typeof MainMypageNotificationsRouteRouteWithChildren + '/_main/_mypage/privacy': typeof MainMypagePrivacyRouteRouteWithChildren + '/_main/_mypage/profileCard': typeof MainMypageProfileCardRouteRoute + '/_main/_mypage/terms': typeof MainMypageTermsRouteRouteWithChildren '/_main/matching-test/matching-result': typeof MainMatchingTestMatchingResultRouteRoute '/auth/signup/info': typeof AuthSignupInfoRouteRoute '/auth/signup/info-more': typeof AuthSignupInfoMoreRouteRoute @@ -280,31 +362,39 @@ export interface FileRoutesById { '/auth/signup/terms': typeof AuthSignupTermsRouteRoute '/auth/signup/type': typeof AuthSignupTypeRouteRoute '/_main/_home/pre': typeof MainHomePreRoute - '/_main/mypage/edit': typeof MainMypageEditRoute - '/_main/mypage/inquiry': typeof MainMypageInquiryRoute - '/_main/mypage/likes': typeof MainMypageLikesRoute - '/_main/mypage/notifications': typeof MainMypageNotificationsRoute - '/_main/mypage/privacy': typeof MainMypagePrivacyRoute - '/_main/mypage/profileCard': typeof MainMypageProfileCardRoute - '/_main/mypage/terms': typeof MainMypageTermsRoute - '/_main/mypage/withdraw': typeof MainMypageWithdrawRoute '/_main/_home/': typeof MainHomeIndexRoute '/_main/matching-test/matching-test/step1': typeof MainMatchingTestMatchingTestStep1RouteRoute '/_main/matching-test/matching-test/step2': typeof MainMatchingTestMatchingTestStep2RouteRoute '/_main/matching-test/matching-test/step3': typeof MainMatchingTestMatchingTestStep3RouteRoute + '/_main/_mypage/edit/edit-content': typeof MainMypageEditEditContentRoute + '/_main/_mypage/likes/likes-content': typeof MainMypageLikesLikesContentRoute + '/_main/_mypage/notifications/notifications-content': typeof MainMypageNotificationsNotificationsContentRoute + '/_main/_mypage/privacy/privacy-content': typeof MainMypagePrivacyPrivacyContentRoute + '/_main/_mypage/terms/terms-content': typeof MainMypageTermsTermsContentRoute + '/_main/_mypage/components/profileCard/tsx/MatchingResult': typeof MainMypageComponentsProfileCardTsxMatchingResultRoute + '/_main/_mypage/components/profileCard/tsx/MyCampaigns': typeof MainMypageComponentsProfileCardTsxMyCampaignsRoute + '/_main/_mypage/components/profileCard/tsx/MyTraits': typeof MainMypageComponentsProfileCardTsxMyTraitsRoute + '/_main/_mypage/components/profileCard/tsx/ProfileSummary': typeof MainMypageComponentsProfileCardTsxProfileSummaryRoute + '/_main/_mypage/components/profileCard/tsx/SnsCard': typeof MainMypageComponentsProfileCardTsxSnsCardRoute } export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath fullPaths: | '/rooms' | '/chat' - | '/mypage' | '/auth/login' | '/rooms/$chatId' | '/calendar' | '/campaign' | '/proposal' | '/rejection' + | '/edit' + | '/likes' + | '/mypage' + | '/notifications' + | '/privacy' + | '/profileCard' + | '/terms' | '/matching-test/matching-result' | '/auth/signup/info' | '/auth/signup/info-more' @@ -313,29 +403,37 @@ export interface FileRouteTypes { | '/auth/signup/terms' | '/auth/signup/type' | '/pre' - | '/mypage/edit' - | '/mypage/inquiry' - | '/mypage/likes' - | '/mypage/notifications' - | '/mypage/privacy' - | '/mypage/profileCard' - | '/mypage/terms' - | '/mypage/withdraw' | '/' | '/matching-test/matching-test/step1' | '/matching-test/matching-test/step2' | '/matching-test/matching-test/step3' + | '/edit/edit-content' + | '/likes/likes-content' + | '/notifications/notifications-content' + | '/privacy/privacy-content' + | '/terms/terms-content' + | '/components/profileCard/tsx/MatchingResult' + | '/components/profileCard/tsx/MyCampaigns' + | '/components/profileCard/tsx/MyTraits' + | '/components/profileCard/tsx/ProfileSummary' + | '/components/profileCard/tsx/SnsCard' fileRoutesByTo: FileRoutesByTo to: | '/rooms' | '/chat' - | '/mypage' | '/auth/login' | '/rooms/$chatId' | '/calendar' | '/campaign' | '/proposal' | '/rejection' + | '/edit' + | '/likes' + | '/mypage' + | '/notifications' + | '/privacy' + | '/profileCard' + | '/terms' | '/matching-test/matching-result' | '/auth/signup/info' | '/auth/signup/info-more' @@ -344,30 +442,38 @@ export interface FileRouteTypes { | '/auth/signup/terms' | '/auth/signup/type' | '/pre' - | '/mypage/edit' - | '/mypage/inquiry' - | '/mypage/likes' - | '/mypage/notifications' - | '/mypage/privacy' - | '/mypage/profileCard' - | '/mypage/terms' - | '/mypage/withdraw' | '/' | '/matching-test/matching-test/step1' | '/matching-test/matching-test/step2' | '/matching-test/matching-test/step3' + | '/edit/edit-content' + | '/likes/likes-content' + | '/notifications/notifications-content' + | '/privacy/privacy-content' + | '/terms/terms-content' + | '/components/profileCard/tsx/MatchingResult' + | '/components/profileCard/tsx/MyCampaigns' + | '/components/profileCard/tsx/MyTraits' + | '/components/profileCard/tsx/ProfileSummary' + | '/components/profileCard/tsx/SnsCard' id: | '__root__' | '/rooms' | '/_main' | '/_main/chat' - | '/_main/mypage' | '/auth/login' | '/rooms/$chatId' | '/_main/_business/calendar' | '/_main/_business/campaign' | '/_main/_business/proposal' | '/_main/_business/rejection' + | '/_main/_mypage/edit' + | '/_main/_mypage/likes' + | '/_main/_mypage/mypage' + | '/_main/_mypage/notifications' + | '/_main/_mypage/privacy' + | '/_main/_mypage/profileCard' + | '/_main/_mypage/terms' | '/_main/matching-test/matching-result' | '/auth/signup/info' | '/auth/signup/info-more' @@ -376,18 +482,20 @@ export interface FileRouteTypes { | '/auth/signup/terms' | '/auth/signup/type' | '/_main/_home/pre' - | '/_main/mypage/edit' - | '/_main/mypage/inquiry' - | '/_main/mypage/likes' - | '/_main/mypage/notifications' - | '/_main/mypage/privacy' - | '/_main/mypage/profileCard' - | '/_main/mypage/terms' - | '/_main/mypage/withdraw' | '/_main/_home/' | '/_main/matching-test/matching-test/step1' | '/_main/matching-test/matching-test/step2' | '/_main/matching-test/matching-test/step3' + | '/_main/_mypage/edit/edit-content' + | '/_main/_mypage/likes/likes-content' + | '/_main/_mypage/notifications/notifications-content' + | '/_main/_mypage/privacy/privacy-content' + | '/_main/_mypage/terms/terms-content' + | '/_main/_mypage/components/profileCard/tsx/MatchingResult' + | '/_main/_mypage/components/profileCard/tsx/MyCampaigns' + | '/_main/_mypage/components/profileCard/tsx/MyTraits' + | '/_main/_mypage/components/profileCard/tsx/ProfileSummary' + | '/_main/_mypage/components/profileCard/tsx/SnsCard' fileRoutesById: FileRoutesById } export interface RootRouteChildren { @@ -432,13 +540,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof AuthLoginRouteRouteImport parentRoute: typeof rootRouteImport } - '/_main/mypage': { - id: '/_main/mypage' - path: '/mypage' - fullPath: '/mypage' - preLoaderRoute: typeof MainMypageRouteRouteImport - parentRoute: typeof MainRoute - } '/_main/chat': { id: '/_main/chat' path: '/chat' @@ -453,62 +554,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof MainHomeIndexRouteImport parentRoute: typeof MainRoute } - '/_main/mypage/withdraw': { - id: '/_main/mypage/withdraw' - path: '/withdraw' - fullPath: '/mypage/withdraw' - preLoaderRoute: typeof MainMypageWithdrawRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/terms': { - id: '/_main/mypage/terms' - path: '/terms' - fullPath: '/mypage/terms' - preLoaderRoute: typeof MainMypageTermsRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/profileCard': { - id: '/_main/mypage/profileCard' - path: '/profileCard' - fullPath: '/mypage/profileCard' - preLoaderRoute: typeof MainMypageProfileCardRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/privacy': { - id: '/_main/mypage/privacy' - path: '/privacy' - fullPath: '/mypage/privacy' - preLoaderRoute: typeof MainMypagePrivacyRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/notifications': { - id: '/_main/mypage/notifications' - path: '/notifications' - fullPath: '/mypage/notifications' - preLoaderRoute: typeof MainMypageNotificationsRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/likes': { - id: '/_main/mypage/likes' - path: '/likes' - fullPath: '/mypage/likes' - preLoaderRoute: typeof MainMypageLikesRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/inquiry': { - id: '/_main/mypage/inquiry' - path: '/inquiry' - fullPath: '/mypage/inquiry' - preLoaderRoute: typeof MainMypageInquiryRouteImport - parentRoute: typeof MainMypageRouteRoute - } - '/_main/mypage/edit': { - id: '/_main/mypage/edit' - path: '/edit' - fullPath: '/mypage/edit' - preLoaderRoute: typeof MainMypageEditRouteImport - parentRoute: typeof MainMypageRouteRoute - } '/_main/_home/pre': { id: '/_main/_home/pre' path: '/pre' @@ -565,6 +610,55 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof MainMatchingTestMatchingResultRouteRouteImport parentRoute: typeof MainRoute } + '/_main/_mypage/terms': { + id: '/_main/_mypage/terms' + path: '/terms' + fullPath: '/terms' + preLoaderRoute: typeof MainMypageTermsRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/profileCard': { + id: '/_main/_mypage/profileCard' + path: '/profileCard' + fullPath: '/profileCard' + preLoaderRoute: typeof MainMypageProfileCardRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/privacy': { + id: '/_main/_mypage/privacy' + path: '/privacy' + fullPath: '/privacy' + preLoaderRoute: typeof MainMypagePrivacyRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/notifications': { + id: '/_main/_mypage/notifications' + path: '/notifications' + fullPath: '/notifications' + preLoaderRoute: typeof MainMypageNotificationsRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/mypage': { + id: '/_main/_mypage/mypage' + path: '/mypage' + fullPath: '/mypage' + preLoaderRoute: typeof MainMypageMypageRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/likes': { + id: '/_main/_mypage/likes' + path: '/likes' + fullPath: '/likes' + preLoaderRoute: typeof MainMypageLikesRouteRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/edit': { + id: '/_main/_mypage/edit' + path: '/edit' + fullPath: '/edit' + preLoaderRoute: typeof MainMypageEditRouteRouteImport + parentRoute: typeof MainRoute + } '/_main/_business/rejection': { id: '/_main/_business/rejection' path: '/rejection' @@ -593,6 +687,41 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof MainBusinessCalendarRouteRouteImport parentRoute: typeof MainRoute } + '/_main/_mypage/terms/terms-content': { + id: '/_main/_mypage/terms/terms-content' + path: '/terms-content' + fullPath: '/terms/terms-content' + preLoaderRoute: typeof MainMypageTermsTermsContentRouteImport + parentRoute: typeof MainMypageTermsRouteRoute + } + '/_main/_mypage/privacy/privacy-content': { + id: '/_main/_mypage/privacy/privacy-content' + path: '/privacy-content' + fullPath: '/privacy/privacy-content' + preLoaderRoute: typeof MainMypagePrivacyPrivacyContentRouteImport + parentRoute: typeof MainMypagePrivacyRouteRoute + } + '/_main/_mypage/notifications/notifications-content': { + id: '/_main/_mypage/notifications/notifications-content' + path: '/notifications-content' + fullPath: '/notifications/notifications-content' + preLoaderRoute: typeof MainMypageNotificationsNotificationsContentRouteImport + parentRoute: typeof MainMypageNotificationsRouteRoute + } + '/_main/_mypage/likes/likes-content': { + id: '/_main/_mypage/likes/likes-content' + path: '/likes-content' + fullPath: '/likes/likes-content' + preLoaderRoute: typeof MainMypageLikesLikesContentRouteImport + parentRoute: typeof MainMypageLikesRouteRoute + } + '/_main/_mypage/edit/edit-content': { + id: '/_main/_mypage/edit/edit-content' + path: '/edit-content' + fullPath: '/edit/edit-content' + preLoaderRoute: typeof MainMypageEditEditContentRouteImport + parentRoute: typeof MainMypageEditRouteRoute + } '/_main/matching-test/matching-test/step3': { id: '/_main/matching-test/matching-test/step3' path: '/matching-test/matching-test/step3' @@ -614,6 +743,41 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof MainMatchingTestMatchingTestStep1RouteRouteImport parentRoute: typeof MainRoute } + '/_main/_mypage/components/profileCard/tsx/SnsCard': { + id: '/_main/_mypage/components/profileCard/tsx/SnsCard' + path: '/components/profileCard/tsx/SnsCard' + fullPath: '/components/profileCard/tsx/SnsCard' + preLoaderRoute: typeof MainMypageComponentsProfileCardTsxSnsCardRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/components/profileCard/tsx/ProfileSummary': { + id: '/_main/_mypage/components/profileCard/tsx/ProfileSummary' + path: '/components/profileCard/tsx/ProfileSummary' + fullPath: '/components/profileCard/tsx/ProfileSummary' + preLoaderRoute: typeof MainMypageComponentsProfileCardTsxProfileSummaryRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/components/profileCard/tsx/MyTraits': { + id: '/_main/_mypage/components/profileCard/tsx/MyTraits' + path: '/components/profileCard/tsx/MyTraits' + fullPath: '/components/profileCard/tsx/MyTraits' + preLoaderRoute: typeof MainMypageComponentsProfileCardTsxMyTraitsRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/components/profileCard/tsx/MyCampaigns': { + id: '/_main/_mypage/components/profileCard/tsx/MyCampaigns' + path: '/components/profileCard/tsx/MyCampaigns' + fullPath: '/components/profileCard/tsx/MyCampaigns' + preLoaderRoute: typeof MainMypageComponentsProfileCardTsxMyCampaignsRouteImport + parentRoute: typeof MainRoute + } + '/_main/_mypage/components/profileCard/tsx/MatchingResult': { + id: '/_main/_mypage/components/profileCard/tsx/MatchingResult' + path: '/components/profileCard/tsx/MatchingResult' + fullPath: '/components/profileCard/tsx/MatchingResult' + preLoaderRoute: typeof MainMypageComponentsProfileCardTsxMatchingResultRouteImport + parentRoute: typeof MainRoute + } } } @@ -629,54 +793,108 @@ const RoomsRouteRouteWithChildren = RoomsRouteRoute._addFileChildren( RoomsRouteRouteChildren, ) -interface MainMypageRouteRouteChildren { - MainMypageEditRoute: typeof MainMypageEditRoute - MainMypageInquiryRoute: typeof MainMypageInquiryRoute - MainMypageLikesRoute: typeof MainMypageLikesRoute - MainMypageNotificationsRoute: typeof MainMypageNotificationsRoute - MainMypagePrivacyRoute: typeof MainMypagePrivacyRoute - MainMypageProfileCardRoute: typeof MainMypageProfileCardRoute - MainMypageTermsRoute: typeof MainMypageTermsRoute - MainMypageWithdrawRoute: typeof MainMypageWithdrawRoute +interface MainMypageEditRouteRouteChildren { + MainMypageEditEditContentRoute: typeof MainMypageEditEditContentRoute } -const MainMypageRouteRouteChildren: MainMypageRouteRouteChildren = { - MainMypageEditRoute: MainMypageEditRoute, - MainMypageInquiryRoute: MainMypageInquiryRoute, - MainMypageLikesRoute: MainMypageLikesRoute, - MainMypageNotificationsRoute: MainMypageNotificationsRoute, - MainMypagePrivacyRoute: MainMypagePrivacyRoute, - MainMypageProfileCardRoute: MainMypageProfileCardRoute, - MainMypageTermsRoute: MainMypageTermsRoute, - MainMypageWithdrawRoute: MainMypageWithdrawRoute, +const MainMypageEditRouteRouteChildren: MainMypageEditRouteRouteChildren = { + MainMypageEditEditContentRoute: MainMypageEditEditContentRoute, } -const MainMypageRouteRouteWithChildren = MainMypageRouteRoute._addFileChildren( - MainMypageRouteRouteChildren, -) +const MainMypageEditRouteRouteWithChildren = + MainMypageEditRouteRoute._addFileChildren(MainMypageEditRouteRouteChildren) + +interface MainMypageLikesRouteRouteChildren { + MainMypageLikesLikesContentRoute: typeof MainMypageLikesLikesContentRoute +} + +const MainMypageLikesRouteRouteChildren: MainMypageLikesRouteRouteChildren = { + MainMypageLikesLikesContentRoute: MainMypageLikesLikesContentRoute, +} + +const MainMypageLikesRouteRouteWithChildren = + MainMypageLikesRouteRoute._addFileChildren(MainMypageLikesRouteRouteChildren) + +interface MainMypageNotificationsRouteRouteChildren { + MainMypageNotificationsNotificationsContentRoute: typeof MainMypageNotificationsNotificationsContentRoute +} + +const MainMypageNotificationsRouteRouteChildren: MainMypageNotificationsRouteRouteChildren = + { + MainMypageNotificationsNotificationsContentRoute: + MainMypageNotificationsNotificationsContentRoute, + } + +const MainMypageNotificationsRouteRouteWithChildren = + MainMypageNotificationsRouteRoute._addFileChildren( + MainMypageNotificationsRouteRouteChildren, + ) + +interface MainMypagePrivacyRouteRouteChildren { + MainMypagePrivacyPrivacyContentRoute: typeof MainMypagePrivacyPrivacyContentRoute +} + +const MainMypagePrivacyRouteRouteChildren: MainMypagePrivacyRouteRouteChildren = + { + MainMypagePrivacyPrivacyContentRoute: MainMypagePrivacyPrivacyContentRoute, + } + +const MainMypagePrivacyRouteRouteWithChildren = + MainMypagePrivacyRouteRoute._addFileChildren( + MainMypagePrivacyRouteRouteChildren, + ) + +interface MainMypageTermsRouteRouteChildren { + MainMypageTermsTermsContentRoute: typeof MainMypageTermsTermsContentRoute +} + +const MainMypageTermsRouteRouteChildren: MainMypageTermsRouteRouteChildren = { + MainMypageTermsTermsContentRoute: MainMypageTermsTermsContentRoute, +} + +const MainMypageTermsRouteRouteWithChildren = + MainMypageTermsRouteRoute._addFileChildren(MainMypageTermsRouteRouteChildren) interface MainRouteChildren { MainChatRouteRoute: typeof MainChatRouteRoute - MainMypageRouteRoute: typeof MainMypageRouteRouteWithChildren MainBusinessCalendarRouteRoute: typeof MainBusinessCalendarRouteRoute MainBusinessCampaignRouteRoute: typeof MainBusinessCampaignRouteRoute MainBusinessProposalRouteRoute: typeof MainBusinessProposalRouteRoute MainBusinessRejectionRouteRoute: typeof MainBusinessRejectionRouteRoute + MainMypageEditRouteRoute: typeof MainMypageEditRouteRouteWithChildren + MainMypageLikesRouteRoute: typeof MainMypageLikesRouteRouteWithChildren + MainMypageMypageRouteRoute: typeof MainMypageMypageRouteRoute + MainMypageNotificationsRouteRoute: typeof MainMypageNotificationsRouteRouteWithChildren + MainMypagePrivacyRouteRoute: typeof MainMypagePrivacyRouteRouteWithChildren + MainMypageProfileCardRouteRoute: typeof MainMypageProfileCardRouteRoute + MainMypageTermsRouteRoute: typeof MainMypageTermsRouteRouteWithChildren MainMatchingTestMatchingResultRouteRoute: typeof MainMatchingTestMatchingResultRouteRoute MainHomePreRoute: typeof MainHomePreRoute MainHomeIndexRoute: typeof MainHomeIndexRoute MainMatchingTestMatchingTestStep1RouteRoute: typeof MainMatchingTestMatchingTestStep1RouteRoute MainMatchingTestMatchingTestStep2RouteRoute: typeof MainMatchingTestMatchingTestStep2RouteRoute MainMatchingTestMatchingTestStep3RouteRoute: typeof MainMatchingTestMatchingTestStep3RouteRoute + MainMypageComponentsProfileCardTsxMatchingResultRoute: typeof MainMypageComponentsProfileCardTsxMatchingResultRoute + MainMypageComponentsProfileCardTsxMyCampaignsRoute: typeof MainMypageComponentsProfileCardTsxMyCampaignsRoute + MainMypageComponentsProfileCardTsxMyTraitsRoute: typeof MainMypageComponentsProfileCardTsxMyTraitsRoute + MainMypageComponentsProfileCardTsxProfileSummaryRoute: typeof MainMypageComponentsProfileCardTsxProfileSummaryRoute + MainMypageComponentsProfileCardTsxSnsCardRoute: typeof MainMypageComponentsProfileCardTsxSnsCardRoute } const MainRouteChildren: MainRouteChildren = { MainChatRouteRoute: MainChatRouteRoute, - MainMypageRouteRoute: MainMypageRouteRouteWithChildren, MainBusinessCalendarRouteRoute: MainBusinessCalendarRouteRoute, MainBusinessCampaignRouteRoute: MainBusinessCampaignRouteRoute, MainBusinessProposalRouteRoute: MainBusinessProposalRouteRoute, MainBusinessRejectionRouteRoute: MainBusinessRejectionRouteRoute, + MainMypageEditRouteRoute: MainMypageEditRouteRouteWithChildren, + MainMypageLikesRouteRoute: MainMypageLikesRouteRouteWithChildren, + MainMypageMypageRouteRoute: MainMypageMypageRouteRoute, + MainMypageNotificationsRouteRoute: + MainMypageNotificationsRouteRouteWithChildren, + MainMypagePrivacyRouteRoute: MainMypagePrivacyRouteRouteWithChildren, + MainMypageProfileCardRouteRoute: MainMypageProfileCardRouteRoute, + MainMypageTermsRouteRoute: MainMypageTermsRouteRouteWithChildren, MainMatchingTestMatchingResultRouteRoute: MainMatchingTestMatchingResultRouteRoute, MainHomePreRoute: MainHomePreRoute, @@ -687,6 +905,16 @@ const MainRouteChildren: MainRouteChildren = { MainMatchingTestMatchingTestStep2RouteRoute, MainMatchingTestMatchingTestStep3RouteRoute: MainMatchingTestMatchingTestStep3RouteRoute, + MainMypageComponentsProfileCardTsxMatchingResultRoute: + MainMypageComponentsProfileCardTsxMatchingResultRoute, + MainMypageComponentsProfileCardTsxMyCampaignsRoute: + MainMypageComponentsProfileCardTsxMyCampaignsRoute, + MainMypageComponentsProfileCardTsxMyTraitsRoute: + MainMypageComponentsProfileCardTsxMyTraitsRoute, + MainMypageComponentsProfileCardTsxProfileSummaryRoute: + MainMypageComponentsProfileCardTsxProfileSummaryRoute, + MainMypageComponentsProfileCardTsxSnsCardRoute: + MainMypageComponentsProfileCardTsxSnsCardRoute, } const MainRouteWithChildren = MainRoute._addFileChildren(MainRouteChildren) diff --git a/src/routes/_main/mypage/_components/ConfirmModal.tsx b/src/routes/_main/_mypage/components/ConfirmModal.tsx similarity index 97% rename from src/routes/_main/mypage/_components/ConfirmModal.tsx rename to src/routes/_main/_mypage/components/ConfirmModal.tsx index 7d171433..8860a5fb 100644 --- a/src/routes/_main/mypage/_components/ConfirmModal.tsx +++ b/src/routes/_main/_mypage/components/ConfirmModal.tsx @@ -39,7 +39,7 @@ export default function ConfirmModal({ ) : null} - {/* buttons – 맨 아래 고정 */} + {/* buttons */}
+ ) +} diff --git a/src/routes/_main/_mypage/components/profileCard.tsx/MyCampaigns.tsx b/src/routes/_main/_mypage/components/profileCard.tsx/MyCampaigns.tsx new file mode 100644 index 00000000..4ee0b0d6 --- /dev/null +++ b/src/routes/_main/_mypage/components/profileCard.tsx/MyCampaigns.tsx @@ -0,0 +1,13 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute( + '/_main/_mypage/components/profileCard/tsx/MyCampaigns', +)({ + component: RouteComponent, +}) + +function RouteComponent() { + return ( +
Hello "/_main/mypage/components/profileCard/tsx/MyCampaigns"!
+ ) +} diff --git a/src/routes/_main/_mypage/components/profileCard.tsx/MyTraits.tsx b/src/routes/_main/_mypage/components/profileCard.tsx/MyTraits.tsx new file mode 100644 index 00000000..1ef1c108 --- /dev/null +++ b/src/routes/_main/_mypage/components/profileCard.tsx/MyTraits.tsx @@ -0,0 +1,11 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute( + '/_main/_mypage/components/profileCard/tsx/MyTraits', +)({ + component: RouteComponent, +}) + +function RouteComponent() { + return
Hello "/_main/mypage/components/profileCard/tsx/MyTraits"!
+} diff --git a/src/routes/_main/_mypage/components/profileCard.tsx/ProfileSummary.tsx b/src/routes/_main/_mypage/components/profileCard.tsx/ProfileSummary.tsx new file mode 100644 index 00000000..fdd5f80f --- /dev/null +++ b/src/routes/_main/_mypage/components/profileCard.tsx/ProfileSummary.tsx @@ -0,0 +1,13 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute( + '/_main/_mypage/components/profileCard/tsx/ProfileSummary', +)({ + component: RouteComponent, +}) + +function RouteComponent() { + return ( +
Hello "/_main/mypage/components/profileCard/tsx/ProfileSummary"!
+ ) +} diff --git a/src/routes/_main/_mypage/components/profileCard.tsx/SnsCard.tsx b/src/routes/_main/_mypage/components/profileCard.tsx/SnsCard.tsx new file mode 100644 index 00000000..c5166266 --- /dev/null +++ b/src/routes/_main/_mypage/components/profileCard.tsx/SnsCard.tsx @@ -0,0 +1,11 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute( + '/_main/_mypage/components/profileCard/tsx/SnsCard', +)({ + component: RouteComponent, +}) + +function RouteComponent() { + return
Hello "/_main/mypage/components/profileCard/tsx/SnsCard"!
+} diff --git a/src/routes/_main/_mypage/edit/edit-content.tsx b/src/routes/_main/_mypage/edit/edit-content.tsx new file mode 100644 index 00000000..8241bb76 --- /dev/null +++ b/src/routes/_main/_mypage/edit/edit-content.tsx @@ -0,0 +1,9 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/_main/_mypage/edit/edit-content')({ + component: RouteComponent, +}) + +function RouteComponent() { + return
Hello "/_main/mypage/edit"!
+} diff --git a/src/routes/_main/mypage/edit.tsx b/src/routes/_main/_mypage/edit/route.tsx similarity index 73% rename from src/routes/_main/mypage/edit.tsx rename to src/routes/_main/_mypage/edit/route.tsx index 9df1a277..474de423 100644 --- a/src/routes/_main/mypage/edit.tsx +++ b/src/routes/_main/_mypage/edit/route.tsx @@ -1,6 +1,6 @@ import { createFileRoute } from '@tanstack/react-router' -export const Route = createFileRoute('/_main/mypage/edit')({ +export const Route = createFileRoute('/_main/_mypage/edit')({ component: RouteComponent, }) diff --git a/src/routes/_main/mypage/likes.tsx b/src/routes/_main/_mypage/likes/likes-content.tsx similarity index 70% rename from src/routes/_main/mypage/likes.tsx rename to src/routes/_main/_mypage/likes/likes-content.tsx index fc72757e..648082af 100644 --- a/src/routes/_main/mypage/likes.tsx +++ b/src/routes/_main/_mypage/likes/likes-content.tsx @@ -1,6 +1,6 @@ import { createFileRoute } from '@tanstack/react-router' -export const Route = createFileRoute('/_main/mypage/likes')({ +export const Route = createFileRoute('/_main/_mypage/likes/likes-content')({ component: RouteComponent, }) diff --git a/src/routes/_main/mypage/inquiry.tsx b/src/routes/_main/_mypage/likes/route.tsx similarity index 51% rename from src/routes/_main/mypage/inquiry.tsx rename to src/routes/_main/_mypage/likes/route.tsx index f516c9fb..5e82330d 100644 --- a/src/routes/_main/mypage/inquiry.tsx +++ b/src/routes/_main/_mypage/likes/route.tsx @@ -1,9 +1,9 @@ import { createFileRoute } from '@tanstack/react-router' -export const Route = createFileRoute('/_main/mypage/inquiry')({ +export const Route = createFileRoute('/_main/_mypage/likes')({ component: RouteComponent, }) function RouteComponent() { - return
Hello "/_main/mypage/inquiry"!
+ return
Hello "/_main/mypage/likes"!
} diff --git a/src/routes/_main/mypage/MyPageHome.tsx b/src/routes/_main/_mypage/mypage/MyPageHome.tsx similarity index 86% rename from src/routes/_main/mypage/MyPageHome.tsx rename to src/routes/_main/_mypage/mypage/MyPageHome.tsx index 11c6927a..cc65dac6 100644 --- a/src/routes/_main/mypage/MyPageHome.tsx +++ b/src/routes/_main/_mypage/mypage/MyPageHome.tsx @@ -1,5 +1,5 @@ -import { useState } from "react"; -import ConfirmModal from "./_components/ConfirmModal"; +import { useEffect, useState } from "react"; +import ConfirmModal from "../components/ConfirmModal"; type Props = { // 서버/스토어에서 내려오는 값이라고 가정 @@ -36,11 +36,16 @@ export default function MyPageHome({ onLogout, onWithdraw, }: Props) { - // hasMatchingTest가 false면 gate 모달을 바로 열기 위해 초기값으로 설정 - const [openGate, setOpenGate] = useState(!hasMatchingTest); + const [openGate, setOpenGate] = useState(false); const [openLogout, setOpenLogout] = useState(false); const [openWithdraw, setOpenWithdraw] = useState(false); + useEffect(() => { + if (!hasMatchingTest) { + setOpenGate(true); + } + }, [hasMatchingTest]); + //const actionsDisabled = useMemo(() => !hasMatchingTest, [hasMatchingTest]); 매칭검사 안했을 시 return ( @@ -80,7 +85,7 @@ export default function MyPageHome({
{/* top buttons */} -
+
+
+ {/* list */}
- + - + - +
@@ -140,10 +147,10 @@ export default function MyPageHome({
- setOpenLogout(true)} py={16} gap={6} /> + setOpenLogout(true)} py={16} /> - setOpenWithdraw(true)} muted={true} py={16} gap={6} /> + setOpenWithdraw(true)} muted={true} py={16} />
{/* gate modal */} @@ -162,7 +169,7 @@ export default function MyPageHome({ onClose={() => setOpenLogout(false)} onPrimary={() => { setOpenLogout(false); - onLogout(); // ✅ MyPageContent에서 로그인 페이지 이동 처리 + onLogout(); // MyPageContent에서 로그인 페이지 이동 처리 }} /> ) : null} @@ -176,7 +183,7 @@ export default function MyPageHome({ onClose={() => setOpenWithdraw(false)} onPrimary={() => { setOpenWithdraw(false); - onWithdraw(); // ✅ 탈퇴 페이지 이동 or API 호출로 연결 + onWithdraw(); // 탈퇴 페이지 이동 or API 호출로 연결 }} /> ) : null} @@ -186,44 +193,52 @@ export default function MyPageHome({ } function MenuButton({ - title, label, onClick, muted, py, gap = 6, -}: {title?: string; label: string; onClick: () => void; muted?: boolean; py?: number; gap?: number; }) { + title, label, onClick, muted, py, +}: { + title?: string; + label: string; + onClick: () => void; + muted?: boolean; + py?: number; +}) { return ( -
+ - + ); } + function Divider() { return
; } @@ -241,22 +256,24 @@ function GateModal({
{/* modal */} -
- +
+
+ +
-
-
+
+
!
-
+
매칭 검사를
먼저 진행해주세요 @@ -265,7 +282,7 @@ function GateModal({ +
내 프로필 카드
+
+
+ + {/* profile summary */} +
+
+ {/* 이미지 자리 */} +
+
+
+
+
+ +
+
비비
+
여성 22세
+
+ 관심분야: 뷰티, 패션 +
+
+
+
+ +
+ + {/* content */} +
+ {/* SNS */} +
+
+
+ +
+
www.instagram.com/vivi
+ +
+
+ + {/* Matching */} +
+
+
+
+ 비비 님은 +
+
+ OO한 크리에이터 입니다. +
+ OO한 브랜드와 잘 어울려요. +
+
+
+
+
+
+
+ + {/* Traits */} +
+ › + + } + > +
+ + +
+
+ + {/* Campaigns */} +
+ ˅ + + } + > +
+ {campaigns.map((c, idx) => ( +
+
+ {c.type} + {c.title} +
+ {c.date} +
+ ))} + + {/* pagination mock */} +
+ + + + + + +
+
+
+
+
+
+ ); +} + +function Section({ + title, + right, + children, +}: { + title: string; + right?: React.ReactNode; + children: React.ReactNode; +}) { + return ( +
+
+
{title}
+ {right} +
+ {children} +
+ ); +} + +function TraitCard({ + badge, + icon, + lines, +}: { + badge: string; + icon: string; + lines: string[]; +}) { + return ( +
+
+ {badge} +
+ +
+ {icon} +
+ +
+ {lines.map((t, i) => ( +
{t}
+ ))} +
+
+ ); +} diff --git a/src/routes/_main/_mypage/profileCard/route.tsx b/src/routes/_main/_mypage/profileCard/route.tsx new file mode 100644 index 00000000..bee8d536 --- /dev/null +++ b/src/routes/_main/_mypage/profileCard/route.tsx @@ -0,0 +1,10 @@ +import { createFileRoute } from "@tanstack/react-router"; +import ProfileCard from "./profileCard-content"; + +export const Route = createFileRoute("/_main/_mypage/profileCard")({ + component: ProfileCardRoute, +}); + +function ProfileCardRoute() { + return ; +} diff --git a/src/routes/_main/mypage/terms.tsx b/src/routes/_main/_mypage/terms/route.tsx similarity index 72% rename from src/routes/_main/mypage/terms.tsx rename to src/routes/_main/_mypage/terms/route.tsx index ef529466..3f1c0996 100644 --- a/src/routes/_main/mypage/terms.tsx +++ b/src/routes/_main/_mypage/terms/route.tsx @@ -1,6 +1,6 @@ import { createFileRoute } from '@tanstack/react-router' -export const Route = createFileRoute('/_main/mypage/terms')({ +export const Route = createFileRoute('/_main/_mypage/terms')({ component: RouteComponent, }) diff --git a/src/routes/_main/_mypage/terms/terms-content.tsx b/src/routes/_main/_mypage/terms/terms-content.tsx new file mode 100644 index 00000000..b273524d --- /dev/null +++ b/src/routes/_main/_mypage/terms/terms-content.tsx @@ -0,0 +1,9 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/_main/_mypage/terms/terms-content')({ + component: RouteComponent, +}) + +function RouteComponent() { + return
Hello "/_main/mypage/terms"!
+} diff --git a/src/routes/_main/mypage/mypage-content.tsx b/src/routes/_main/mypage/mypage-content.tsx deleted file mode 100644 index 9a652797..00000000 --- a/src/routes/_main/mypage/mypage-content.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useNavigate } from "@tanstack/react-router"; -import MyPageHome from "./MyPageHome"; -import { useAuthStore } from "../../../stores/auth-store"; - -export default function MyPageContent() { - const navigate = useNavigate(); - const me = useAuthStore((s) => s.me); - - const hasMatchingTest = Boolean(me?.matchingTestDone); - - return ( - navigate({ to: "/matching-test/matching-test/step1" })} - onOpenProfileCard={() => navigate({ to: "/mypage/profileCard" })} - onOpenLikes={() => navigate({ to: "/mypage/likes" })} - onOpenEditProfile={() => navigate({ to: "/mypage/edit" })} - onOpenNotifications={() => navigate({ to: "/mypage/notifications" })} - onOpenInquiry={() => navigate({ to: "/mypage/inquiry" })} - onOpenTerms={() => navigate({ to: "/mypage/terms" })} // policy/terms - onOpenPrivacy={() => navigate({ to: "/mypage/privacy" })} // policy/privacy - onLogout={() => { - useAuthStore.getState().logout?.(); - navigate({ to: "/auth/login" }); - }} - onWithdraw={() => navigate({ to: "/mypage/withdraw" })} - /> - ); -} diff --git a/src/routes/_main/mypage/profileCard.tsx b/src/routes/_main/mypage/profileCard.tsx deleted file mode 100644 index 6d760aa6..00000000 --- a/src/routes/_main/mypage/profileCard.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router' - -export const Route = createFileRoute('/_main/mypage/profileCard')({ - component: RouteComponent, -}) - -function RouteComponent() { - return
Hello "/_main/mypage/components/profile-card"!
-} diff --git a/src/routes/_main/mypage/route.tsx b/src/routes/_main/mypage/route.tsx deleted file mode 100644 index f83bc0b6..00000000 --- a/src/routes/_main/mypage/route.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router' -import MyPage from './mypage-content' - -export const Route = createFileRoute('/_main/mypage')({ - component: MyPage, -}) diff --git a/src/routes/_main/mypage/withdraw.tsx b/src/routes/_main/mypage/withdraw.tsx deleted file mode 100644 index cd85a0f7..00000000 --- a/src/routes/_main/mypage/withdraw.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { createFileRoute } from '@tanstack/react-router' - -export const Route = createFileRoute('/_main/mypage/withdraw')({ - component: RouteComponent, -}) - -function RouteComponent() { - return
Hello "/_main/mypage/withdraw"!
-} From df36090b02e318acea5c43fc690dab26c6773ccf Mon Sep 17 00:00:00 2001 From: yeahsel Date: Fri, 30 Jan 2026 01:08:59 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=EB=A6=B0=ED=8A=B8=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/_main/_mypage/mypage/MyPageHome.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/routes/_main/_mypage/mypage/MyPageHome.tsx b/src/routes/_main/_mypage/mypage/MyPageHome.tsx index cc65dac6..e096e168 100644 --- a/src/routes/_main/_mypage/mypage/MyPageHome.tsx +++ b/src/routes/_main/_mypage/mypage/MyPageHome.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { useState } from "react"; import ConfirmModal from "../components/ConfirmModal"; type Props = { @@ -36,16 +36,10 @@ export default function MyPageHome({ onLogout, onWithdraw, }: Props) { - const [openGate, setOpenGate] = useState(false); + const [openGate, setOpenGate] = useState(!hasMatchingTest); const [openLogout, setOpenLogout] = useState(false); const [openWithdraw, setOpenWithdraw] = useState(false); - useEffect(() => { - if (!hasMatchingTest) { - setOpenGate(true); - } - }, [hasMatchingTest]); - //const actionsDisabled = useMemo(() => !hasMatchingTest, [hasMatchingTest]); 매칭검사 안했을 시 return ( From 23448b6bc7677d5b7f62b6f95cdbba711ea4c3a3 Mon Sep 17 00:00:00 2001 From: yeahsel Date: Fri, 30 Jan 2026 01:14:55 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20vercel=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/_main/_mypage/mypage/mypage-content.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/_main/_mypage/mypage/mypage-content.tsx b/src/routes/_main/_mypage/mypage/mypage-content.tsx index 4cb19cd6..7861e1c7 100644 --- a/src/routes/_main/_mypage/mypage/mypage-content.tsx +++ b/src/routes/_main/_mypage/mypage/mypage-content.tsx @@ -18,7 +18,7 @@ export default function MyPageContent() { email: me?.email ?? "yeahsel0608@cau.ac.kr", avatarUrl: me?.avatarUrl ?? "/images/default-avatar.png", }} - onGoMatchingTest={() => navigate({ to: "/matching-test/matching-test/step1" })} + onGoMatchingTest={() => navigate({ to: "/matching/test/step1" })} onOpenProfileCard={() => navigate({ to: "/profileCard" })} onOpenLikes={() => navigate({ to: "/likes" })} onOpenEditProfile={() => navigate({ to: "/edit" })} @@ -28,7 +28,7 @@ export default function MyPageContent() { onOpenPrivacy={() => navigate({ to: "/privacy" })} // policy/privacy onLogout={() => { useAuthStore.getState().logout?.(); - navigate({ to: "/auth/login" }); + navigate({ to: "/login" }); }} onWithdraw={() => {}} /> From f718225b880f1b4d318ac4a0e3d3d480d240f828 Mon Sep 17 00:00:00 2001 From: yeahsel Date: Sat, 31 Jan 2026 22:51:00 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=B1=84=ED=8C=85=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/NavigationHeader.tsx} | 14 +-- src/data/chat-room.ts | 8 +- src/routeTree.gen.ts | 6 +- .../_main/_mypage/mypage/MyPageHome.tsx | 2 +- .../profileCard/profileCard-content.tsx | 59 +++++++------ .../_main/chat/{components => }/ChatList.tsx | 53 +++++------ src/routes/_main/chat/chat-content.tsx | 39 ++++----- .../_main/chat/components/ChatListHeader.tsx | 87 +++++++++++-------- .../_main/chat/components/SortingSheet.tsx | 33 +++---- src/routes/_main/chat/types/ChatRoom.tsx | 12 --- src/routes/_main/chat/types/SortOption.tsx | 9 -- src/routes/rooms/chatting-room.tsx | 68 ++++++++++----- .../rooms/components/AttachmentSheet.tsx | 4 +- .../components/Bubbles/MatchingMessage.tsx | 22 +++-- .../components/Bubbles/MessageStatus.tsx | 83 ++++++++++++++++++ .../components/Bubbles/ProposalMessage.tsx | 12 ++- src/routes/rooms/components/ChatComposer.tsx | 2 +- .../rooms/components/CollaborationBar.tsx | 48 ++++++++++ src/routes/rooms/components/MessageRender.tsx | 2 +- src/stores/auth-store.ts | 8 +- 20 files changed, 362 insertions(+), 209 deletions(-) rename src/{routes/rooms/components/ChatRoomHeader.tsx => components/common/NavigationHeader.tsx} (68%) rename src/routes/_main/chat/{components => }/ChatList.tsx (74%) delete mode 100644 src/routes/_main/chat/types/ChatRoom.tsx delete mode 100644 src/routes/_main/chat/types/SortOption.tsx create mode 100644 src/routes/rooms/components/Bubbles/MessageStatus.tsx create mode 100644 src/routes/rooms/components/CollaborationBar.tsx diff --git a/src/routes/rooms/components/ChatRoomHeader.tsx b/src/components/common/NavigationHeader.tsx similarity index 68% rename from src/routes/rooms/components/ChatRoomHeader.tsx rename to src/components/common/NavigationHeader.tsx index 5ae4ec5c..1a24e200 100644 --- a/src/routes/rooms/components/ChatRoomHeader.tsx +++ b/src/components/common/NavigationHeader.tsx @@ -1,14 +1,11 @@ - type Props = { - title: string; - subtitle: string; - subTitleClass?: string; - onBack?: () => void; + title: string; // 텍스트 + onBack?: () => void; //onBack={() => history.back()} 뒤로가기 }; -export default function ChatRoomHeader({ title, subtitle, subTitleClass, onBack }: Props) { +export default function NavigationHeader({ title, onBack }: Props) { return ( -
+
{/* 오른쪽 여백 맞추기 */} diff --git a/src/data/chat-room.ts b/src/data/chat-room.ts index b2585b6e..4423a321 100644 --- a/src/data/chat-room.ts +++ b/src/data/chat-room.ts @@ -1,4 +1,4 @@ -import { type ChatRoom } from "../routes/_main/chat/types/ChatRoom"; +import { type ChatRoom } from "../routes/_main/chat/ChatList"; export const rooms: ChatRoom[] = [ { @@ -7,9 +7,9 @@ export const rooms: ChatRoom[] = [ lastMessage: "안녕하세요! 제안 확인 부탁드립니다.안녕하세요 제안 확인 부탁드립니다 안녕하세요 제안 확인 부탁드립니다 안녕하세요 제안 확인 부탁드립니다", updatedAt: new Date().toISOString(), unreadCount: 2, - status: "matching", logoUrl: "", type: "sent", + isCollaborating: true, }, { id: "2", @@ -17,9 +17,9 @@ export const rooms: ChatRoom[] = [ lastMessage: "검토 중입니다!", updatedAt: "2025-01-05T10:00:00", unreadCount: 0, - status: "reviewing", logoUrl: "", - type: "received", + type: "sent", + isCollaborating: false, }, ]; diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index 266e70b0..b23c8482 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -300,6 +300,7 @@ const MainMypageComponentsProfileCardTsxMatchingResultRoute = export interface FileRoutesByFullPath { '/rooms': typeof RoomsRouteRouteWithChildren + '/': typeof MainHomeIndexRoute '/login': typeof AuthLoginRouteRoute '/chat': typeof MainChatRouteRoute '/matching': typeof MainMatchingRouteRouteWithChildren @@ -325,7 +326,6 @@ export interface FileRoutesByFullPath { '/matching/campaign': typeof MainMatchingCampaignRouteRoute '/matching/suggest': typeof MainMatchingSuggestRouteRouteWithChildren '/pre': typeof MainHomePreRoute - '/': typeof MainHomeIndexRoute '/matching/suggest/create': typeof MainMatchingSuggestCreateRouteRoute '/matching/test/result': typeof MainMatchingTestResultRouteRoute '/matching/test/step1': typeof MainMatchingTestStep1RouteRoute @@ -438,6 +438,7 @@ export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath fullPaths: | '/rooms' + | '/' | '/login' | '/chat' | '/matching' @@ -463,7 +464,6 @@ export interface FileRouteTypes { | '/matching/campaign' | '/matching/suggest' | '/pre' - | '/' | '/matching/suggest/create' | '/matching/test/result' | '/matching/test/step1' @@ -589,7 +589,7 @@ declare module '@tanstack/react-router' { '/_main': { id: '/_main' path: '' - fullPath: '' + fullPath: '/' preLoaderRoute: typeof MainRouteImport parentRoute: typeof rootRouteImport } diff --git a/src/routes/_main/_mypage/mypage/MyPageHome.tsx b/src/routes/_main/_mypage/mypage/MyPageHome.tsx index e096e168..db457c22 100644 --- a/src/routes/_main/_mypage/mypage/MyPageHome.tsx +++ b/src/routes/_main/_mypage/mypage/MyPageHome.tsx @@ -107,7 +107,7 @@ export default function MyPageHome({
-
+
{/* list */}
diff --git a/src/routes/_main/_mypage/profileCard/profileCard-content.tsx b/src/routes/_main/_mypage/profileCard/profileCard-content.tsx index 8cd6c5d8..f34e117c 100644 --- a/src/routes/_main/_mypage/profileCard/profileCard-content.tsx +++ b/src/routes/_main/_mypage/profileCard/profileCard-content.tsx @@ -1,4 +1,5 @@ import React from "react"; +import NavigationHeader from "../../../../components/common/NavigationHeader"; type Campaign = { type: "보낸 제안" | "지원"; @@ -14,23 +15,20 @@ export default function ProfileCard() { ]; return ( -
- {/* phone frame (430px) */} -
- {/* status bar mock */} +
+
{/* header */} -
-
- -
내 프로필 카드
-
-
+
+ history.back()} + /> +
+
{/* profile summary */} -
-
+
+
{/* 이미지 자리 */}
@@ -38,8 +36,8 @@ export default function ProfileCard() {
-
-
비비
+
+
비비
여성 22세
관심분야: 뷰티, 패션 @@ -48,19 +46,30 @@ export default function ProfileCard() {
-
+
{/* content */} -
+
{/* SNS */}
-
-
- +
+
+ + +
-
www.instagram.com/vivi
-
@@ -156,7 +165,7 @@ function Section({ children: React.ReactNode; }) { return ( -
+
{title}
{right} diff --git a/src/routes/_main/chat/components/ChatList.tsx b/src/routes/_main/chat/ChatList.tsx similarity index 74% rename from src/routes/_main/chat/components/ChatList.tsx rename to src/routes/_main/chat/ChatList.tsx index 0294bd24..091ad2d2 100644 --- a/src/routes/_main/chat/components/ChatList.tsx +++ b/src/routes/_main/chat/ChatList.tsx @@ -1,7 +1,17 @@ -import { type ChatRoom } from "../types/ChatRoom"; -import { formatKoreanDateTime } from "../../../../utils/dateTime"; +import { formatKoreanDateTime } from "../../../utils/dateTime"; import { useNavigate } from "@tanstack/react-router"; +export type ChatRoom = { + id: string; + brandName: string; + lastMessage: string; + updatedAt: string; + unreadCount: number; + logoUrl: string; + type: "sent" | "received"; + isCollaborating: boolean; +}; + export function ChatList({ rooms }: { rooms: ChatRoom[] }) { return (
@@ -13,25 +23,14 @@ export function ChatList({ rooms }: { rooms: ChatRoom[] }) { } export function ChatListItem({ room }: { room: ChatRoom }) { - const statusLabel = - room.status === "matching" ? "매칭" : room.status === "reviewing" ? "검토 중" : "거절"; - - // 뱃지 톤: 매칭=보라, 검토중=연보라, 거절=그레이 - const statusClass = - room.status === "matching" - ? "bg-[#E6E6F3] text-[#6666E5]" - : room.status === "reviewing" - ? "bg-[#EBEEFB] text-[#A7B8FC]" - : "bg-[#F3F3F3] text-text-gray3"; const { dateText, timeText } = formatKoreanDateTime(room.updatedAt); - const navigate = useNavigate(); return (
- - {statusLabel} - + {room.isCollaborating && ( + + 협업 중 + + )}
{/* 2줄 미리보기 */} diff --git a/src/routes/_main/chat/chat-content.tsx b/src/routes/_main/chat/chat-content.tsx index ef066b5a..8470a4ff 100644 --- a/src/routes/_main/chat/chat-content.tsx +++ b/src/routes/_main/chat/chat-content.tsx @@ -1,58 +1,55 @@ import { useState, useMemo } from "react"; -import { type SortOption, SORT_LABEL } from "./types/SortOption"; +import { type SortOption, SORT_LABEL } from "./components/SortingSheet"; import { rooms } from "../../../data/chat-room"; import ChatListHeader from "./components/ChatListHeader"; import SortFilterSheet from "./components/SortingSheet"; -import ChatList from "./components/ChatList"; +import ChatList from "./ChatList"; import { EmptyChatState } from "./components/EmptyState"; import { useHideBottomTab } from "../../../hooks/useHideBottomTab"; function ChatPage() { const [activeTab, setActiveTab] = useState<"sent" | "received">("sent"); // 보낸 제안 / 받은 제안 탭 - const [isSortOpen, setIsSortOpen] = useState(false); // 정렬 바텀시트 - const [sort, setSort] = useState("latest"); // 현재 선택된 정렬 옵션 + const [isSortOpen, setIsSortOpen] = useState(false); // 정렬 바텀시트 + const [sort, setSort] = useState("latest"); // 최신순 / 협업중만 const [pendingSort, setPendingSort] = useState(sort); // 바텀시트에서 고른 값 // 바텀탭 숨기기 (바텀시트 열렸을 때) useHideBottomTab(isSortOpen); - // 받은제안/보낸제안 필터 + // 받은/보낸 필터 const filteredRooms = useMemo(() => { return rooms.filter((room) => room.type === activeTab); }, [activeTab]); - // 정렬 적용 + // 정렬 + (필요시) 협업중 필터 const sortedRooms = useMemo(() => { - - // 받은/보낸 필터링 let filtered = filteredRooms; - // latest가 아니면 status로 한 번 더 필터 - if (sort !== "latest") { - filtered = filteredRooms.filter((room) => room.status === sort); + // 협업중만 보기 + if (sort === "collaborating") { + filtered = filteredRooms.filter((room) => room.isCollaborating); } const copy = [...filtered]; - copy.sort( - (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime() - ); + copy.sort((a, b) => { + return new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(); + }); return copy; }, [filteredRooms, sort]); const openSortSheet = () => { - setPendingSort(sort); // 열 때 현재 적용값으로 + setPendingSort(sort); setIsSortOpen(true); }; const applySort = () => { - setSort(pendingSort); // 기준 적용 + setSort(pendingSort); setIsSortOpen(false); }; return (
-
- {sortedRooms.length === 0 ? ( - - ) : ( - - )} + {sortedRooms.length === 0 ? : }
void; sortOpen: boolean; + }) { + const [query, setQuery] = useState(""); + return ( -
- {/* 탭 */} -
- - +
- {/* 정렬 버튼 - 텍스트는 sortLabel */} - + {sortLabel} + + + + +
); } diff --git a/src/routes/_main/chat/components/SortingSheet.tsx b/src/routes/_main/chat/components/SortingSheet.tsx index bb40b187..f39460df 100644 --- a/src/routes/_main/chat/components/SortingSheet.tsx +++ b/src/routes/_main/chat/components/SortingSheet.tsx @@ -1,4 +1,10 @@ -import { type SortOption } from "../types/SortOption"; +// 정렬, 필터 옵션 (최신순/협업 중) +export type SortOption = "latest" | "collaborating"; + +export const SORT_LABEL: Record = { + latest: "최신순", + collaborating: "협업 중", +}; export function SortFilterSheet({ open, @@ -26,8 +32,8 @@ export function SortFilterSheet({ /> {/* 시트 */} -
-
+
+
정렬 필터
@@ -38,30 +44,19 @@ export function SortFilterSheet({ onClick={() => onChange("latest")} /> onChange("matching")} - /> - onChange("reviewing")} - /> - onChange("rejected")} + label="협업 중" + active={value === "collaborating"} + onClick={() => onChange("collaborating")} />
-
-
+
diff --git a/src/routes/_main/chat/types/ChatRoom.tsx b/src/routes/_main/chat/types/ChatRoom.tsx deleted file mode 100644 index a91aaf3b..00000000 --- a/src/routes/_main/chat/types/ChatRoom.tsx +++ /dev/null @@ -1,12 +0,0 @@ -export type ChatRoom = { - id: string; - brandName: string; - lastMessage: string; - updatedAt: string; - unreadCount: number; - status: RoomStatus; - logoUrl: string; - type: "sent" | "received"; -}; - -export type RoomStatus = "matching" | "reviewing" | "rejected"; \ No newline at end of file diff --git a/src/routes/_main/chat/types/SortOption.tsx b/src/routes/_main/chat/types/SortOption.tsx deleted file mode 100644 index e9639876..00000000 --- a/src/routes/_main/chat/types/SortOption.tsx +++ /dev/null @@ -1,9 +0,0 @@ -// 정렬, 필터 옵션 (최신순/매칭/검토중/거절) -export type SortOption = "latest" | "matching" | "reviewing" | "rejected"; - -export const SORT_LABEL: Record = { - latest: "최신순", - matching: "매칭", - reviewing: "검토중", - rejected: "거절", -}; \ No newline at end of file diff --git a/src/routes/rooms/chatting-room.tsx b/src/routes/rooms/chatting-room.tsx index 379070e8..94d9f4c3 100644 --- a/src/routes/rooms/chatting-room.tsx +++ b/src/routes/rooms/chatting-room.tsx @@ -1,11 +1,12 @@ import { useEffect, useMemo, useRef, useState } from "react"; -import ChatRoomHeader from "./components/ChatRoomHeader"; +import NavigationHeader from "../../components/common/NavigationHeader"; import { type ChatMessage } from "./components/Bubbles/TextMessageTypes"; import ChatComposer from "./components/ChatComposer"; import AttachmentSheet, { type AttachmentAction } from "./components/AttachmentSheet"; import useKeyboardOffset from "../../hooks/KeyboardOffset"; import MessageRenderer from "./components/MessageRender"; import { formatKoreanDateTime } from "../../utils/dateTime"; +import CollaborationSummaryBar from "./components/CollaborationBar"; type Props = { chatId: string; @@ -40,7 +41,7 @@ export default function ChattingRoom( {chatId} : Props ) { campaignName: "글로우 쿠션 신제품 론칭 리뷰", campaignContent: "안녕하세요 크리에이터 비비 입니다! 이번에 글로우에서 신제품 쿠션이 출시되어 리뷰를 진행하고자 합니다. 자연스러운 커버력과 촉촉한 사용감이 특징인 이번 제품은 봄철 메이크업에 딱 맞는 아이템입니다. 리뷰를 통해 많은 분들께 소개하고 싶습니다. 긍정적인 검토 부탁드립니다!", time: "26.01.22\n00:10", - status: "sent", + status: "failed", price: 500000, orderId: "ORD1234567890", }, @@ -65,7 +66,7 @@ export default function ChattingRoom( {chatId} : Props ) { ext: "png", time: "26.01.22\n10:11", avatarSize: 38, - avartarSrc: "/brand.png", + avatarSrc: "/brand.png", }, { id: "file1", @@ -89,24 +90,27 @@ export default function ChattingRoom( {chatId} : Props ) { }, [chatId]); const partnerName = "민주"; // TODO: API/route loader에서 받아오기 - const hashtags = "#청정자극 #저자극 #심플한 감성"; // TODO: 프로필/카드에서 받아오기 - const matchStatus: "MATCHED" | "REJECTED" | "REVIEWING" = "REVIEWING"; // TODO: 서버에서 받아오기 - const partnerAvatarUrl = "" -; // TODO: 프로필/카드에서 받아오기 + const partnerAvatarUrl = ""; // TODO: 프로필/카드에서 받아오기 + + const isCollaborating = messages.some((m) => m.type === "MATCHED_CAMPAIGN"); + // 임시 로직: MATCHED_CAMPAIGN 메시지가 있으면 협업중이라고 가정 + // 실제로는 chatRoom.isCollaborating + + // 협업 요약바에 넣을 데이터(임시: 매칭 캠페인 메시지에서 뽑음) + const matchedCampaignMessage = useMemo(() => { + return messages.find((m) => m.type === "MATCHED_CAMPAIGN"); + }, [messages]); // 대화 시작 여부 - const hasStartedChat = messages.some((m) => m.side === "me" || m.side === "other"); + //const hasStartedChat = messages.some((m) => m.side === "me" || m.side === "other"); // 전송 중 상태 //const [isSending, setIsSending] = useState(false); - const statusLabelMap = { - MATCHED: "매칭", - REJECTED: "거절", - REVIEWING: "검토중", - } as const; + const collabTitle = matchedCampaignMessage?.campaignName ?? ""; + const collabSubtitle = matchedCampaignMessage ? "일주일 챌린지" : ""; + const collabThumb = partnerAvatarUrl; // 콜라보 상품 이미지. 임시로 브랜드 프로필로 설정 - const subtitleClass = hasStartedChat ? "text-[#6666E5]" : "text-[#5B5D6B]"; - const subtitleText = hasStartedChat ? statusLabelMap[matchStatus] : hashtags; + const summaryBarHeight = isCollaborating ? 64 : 0; const listRef = useRef(null); const inputRef = useRef(null); @@ -147,6 +151,7 @@ export default function ChattingRoom( {chatId} : Props ) { const trimmed = text.trim(); if (!trimmed) return; + //일반 메시지 전송 setMessages((prev) => [ ...prev, { @@ -155,9 +160,7 @@ export default function ChattingRoom( {chatId} : Props ) { content: trimmed, time: `${dateText}\n${timeText}`, type: "TEXT", - status: "sent", // 수정필요 - campaignName: "", - campaignContent: "", + status: "sent", }, ]); setText(""); // 입력창 비우기 @@ -165,19 +168,35 @@ export default function ChattingRoom( {chatId} : Props ) { requestAnimationFrame(() => inputRef.current?.focus()); // 한 프레임 뒤 focus 복귀 }; + /*const handleDeleteMessage = (id: string) => { + setMessages((prev) => prev.filter((m) => m.id !== id)); + }; + + const handleRetryMessage = (id: string) => { + setMessages((prev) => prev.map((m) => (m.id === id ? { ...m, status: "sending" } : m))); + // TODO: API 재전송 후 성공/실패에 따라 status 갱신 + };*/ + return ( -
- + history.back()} /> + {isCollaborating && ( + + )} + {/* 메시지 영역 */}
@@ -218,4 +237,5 @@ export default function ChattingRoom( {chatId} : Props ) { />
); -} \ No newline at end of file +} + diff --git a/src/routes/rooms/components/AttachmentSheet.tsx b/src/routes/rooms/components/AttachmentSheet.tsx index 7cf9421f..7f090d60 100644 --- a/src/routes/rooms/components/AttachmentSheet.tsx +++ b/src/routes/rooms/components/AttachmentSheet.tsx @@ -57,7 +57,7 @@ export default function AttachmentSheet({ open, actions, onClose, onAction, heig {/* sheet */}
-
{a.label}
+
{a.label}
))}
diff --git a/src/routes/rooms/components/Bubbles/MatchingMessage.tsx b/src/routes/rooms/components/Bubbles/MatchingMessage.tsx index 76b6aa9f..4867b9de 100644 --- a/src/routes/rooms/components/Bubbles/MatchingMessage.tsx +++ b/src/routes/rooms/components/Bubbles/MatchingMessage.tsx @@ -1,13 +1,18 @@ import { type ChatMessage } from "./TextMessageTypes"; +import { useNavigate } from "@tanstack/react-router"; +import MessageStatus from "./MessageStatus"; type Props = { message: ChatMessage; }; +//onRetry: (id: string) => void; +//onDelete: (id: string) => void; -export default function MatchedCampaignMessage({ message }: Props) { +export default function MatchedCampaignMessage({ message, }: Props) { const timeText = message.time ?? ""; const avatarSize = 38; const avatarSrc = undefined; + const navigate = useNavigate(); return (
@@ -32,7 +37,7 @@ export default function MatchedCampaignMessage({ message }: Props) {
{/* bubble + time */} -
+
@@ -46,7 +51,7 @@ export default function MatchedCampaignMessage({ message }: Props) {
- {timeText ? ( -
- {timeText} -
- ) : null} + {}}//Todo: onRetry + onDelete={() => {}}// Todo: onDelete + />
diff --git a/src/routes/rooms/components/Bubbles/MessageStatus.tsx b/src/routes/rooms/components/Bubbles/MessageStatus.tsx new file mode 100644 index 00000000..8bb0fe8c --- /dev/null +++ b/src/routes/rooms/components/Bubbles/MessageStatus.tsx @@ -0,0 +1,83 @@ +import { type ChatMessage } from "./TextMessageTypes"; + +type Props = { + message: ChatMessage; + timeText: string; + onRetry: (messageId: string) => void; + onDelete: (messageId: string) => void; +}; + +function MessageStatus({ + onRetry, + onDelete, +}: { + onRetry: () => void; + onDelete: () => void; +}) { + return ( +
+ + +
+ + +
+ ); +} + +export default function MessageMeta({ message, timeText, onRetry, onDelete }: Props) { + if (message.status === "failed") { + return ( + onRetry(message.id)} + onDelete={() => onDelete(message.id)} + /> + ); + } + + if (message.status === "sent") { + return timeText ? ( +
+ {timeText} +
+ ) : null; + } + + // sending이면 아무것도 안 보임 + return null; +} diff --git a/src/routes/rooms/components/Bubbles/ProposalMessage.tsx b/src/routes/rooms/components/Bubbles/ProposalMessage.tsx index b175e74d..6d2b7832 100644 --- a/src/routes/rooms/components/Bubbles/ProposalMessage.tsx +++ b/src/routes/rooms/components/Bubbles/ProposalMessage.tsx @@ -1,4 +1,5 @@ import { type ChatMessage } from "./TextMessageTypes"; +import { useNavigate } from "@tanstack/react-router"; type Props = { message: ChatMessage; @@ -9,6 +10,7 @@ export default function ProposalMessage({ message }: Props) { const timeText = message.time ?? ""; const isLeft = message.side === "other" || message.side === "system"; const avatarSrc = undefined; + const navigate = useNavigate(); if (isMe) return (
@@ -36,7 +38,10 @@ export default function ProposalMessage({ message }: Props) {