diff --git a/src/app/(user)/mypage/page.tsx b/src/app/(user)/mypage/page.tsx index bb80fe5c..69cae375 100644 --- a/src/app/(user)/mypage/page.tsx +++ b/src/app/(user)/mypage/page.tsx @@ -1,5 +1,5 @@ 'use client'; -import { ProfileInfo, ProfileSetting } from '@/components/pages/profile'; +import { MyPageInfo, MyPageSetting } from '@/components/pages/user/mypage'; import { useGetUser } from '@/hooks/use-user'; const MyPage = () => { @@ -9,9 +9,9 @@ const MyPage = () => { const { data: user } = useGetUser({ userId }); if (!user) return null; return ( -
- - +
+ +
); }; diff --git a/src/app/(user)/profile/[userId]/page.tsx b/src/app/(user)/profile/[userId]/page.tsx index 2184aeaa..5370bdd7 100644 --- a/src/app/(user)/profile/[userId]/page.tsx +++ b/src/app/(user)/profile/[userId]/page.tsx @@ -2,7 +2,7 @@ import { use } from 'react'; -import { ProfileInfo } from '@/components/pages/profile'; +import { ProfileInfo } from '@/components/pages/user/profile'; import { useGetUser } from '@/hooks/use-user'; interface Props { @@ -17,11 +17,7 @@ const ProfilePage = ({ params }: Props) => { if (!user) return null; - return ( -
- -
- ); + return ; }; export default ProfilePage; diff --git a/src/components/pages/profile/profile-setting/index.tsx b/src/components/pages/profile/profile-setting/index.tsx deleted file mode 100644 index a647b0b4..00000000 --- a/src/components/pages/profile/profile-setting/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -'use client'; -import { useState } from 'react'; - -import { User } from '@/types/service/user'; - -import { ProfileActionButton, ProfileToggleButton } from './profile-setting-button'; - -interface Props { - user: User; -} - -export const ProfileSetting = ({ user }: Props) => { - console.log(user); - // useState 로직은 추후 삭제 예정 - const [isOn, setIsOn] = useState(false); - - return ( -
- setIsOn((prev) => !prev)}> - 알림 받기 - - console.log('로그아웃')}>로그아웃 - console.log('회원탈퇴')}>회원탈퇴 -
- ); -}; diff --git a/src/components/pages/user/mypage/index.ts b/src/components/pages/user/mypage/index.ts new file mode 100644 index 00000000..b6bc570b --- /dev/null +++ b/src/components/pages/user/mypage/index.ts @@ -0,0 +1,2 @@ +export { MyPageInfo } from './mypage-info'; +export { MyPageSetting } from './mypage-setting'; diff --git a/src/components/pages/profile/profile-info/index.tsx b/src/components/pages/user/mypage/mypage-info/index.tsx similarity index 65% rename from src/components/pages/profile/profile-info/index.tsx rename to src/components/pages/user/mypage/mypage-info/index.tsx index 71ee7f6c..b7c13dd6 100644 --- a/src/components/pages/profile/profile-info/index.tsx +++ b/src/components/pages/user/mypage/mypage-info/index.tsx @@ -2,16 +2,18 @@ import { Button, useModal } from '@/components/ui'; import { User } from '@/types/service/user'; -import { ProfileCard } from '../profile-card'; -import { ProfileDescription } from '../profile-description'; -import { ProfileEditModal } from '../profile-edit-modal'; -import { ProfileFollowsBadge } from '../profile-follows-badge'; +import { + ProfileCard, + ProfileDescription, + ProfileEditModal, + ProfileFollowsBadge, +} from '../../profile'; interface Props { user: User; } -export const ProfileInfo = ({ user }: Props) => { +export const MyPageInfo = ({ user }: Props) => { const { open } = useModal(); const handleButtonClick = () => { diff --git a/src/components/pages/profile/profile-setting/profile-setting-button/index.tsx b/src/components/pages/user/mypage/mypage-setting-button/index.tsx similarity index 89% rename from src/components/pages/profile/profile-setting/profile-setting-button/index.tsx rename to src/components/pages/user/mypage/mypage-setting-button/index.tsx index 1ee7e96f..214666d1 100644 --- a/src/components/pages/profile/profile-setting/profile-setting-button/index.tsx +++ b/src/components/pages/user/mypage/mypage-setting-button/index.tsx @@ -9,7 +9,7 @@ import { cn } from '@/lib/utils'; interface ToggleButtonProps extends Omit { value?: boolean; } -export const ProfileToggleButton = ({ children, value = false, ...props }: ToggleButtonProps) => { +export const MyPageToggleButton = ({ children, value = false, ...props }: ToggleButtonProps) => { return ( ; }; diff --git a/src/components/pages/user/mypage/mypage-setting/index.tsx b/src/components/pages/user/mypage/mypage-setting/index.tsx new file mode 100644 index 00000000..6e461537 --- /dev/null +++ b/src/components/pages/user/mypage/mypage-setting/index.tsx @@ -0,0 +1,26 @@ +'use client'; +import { useState } from 'react'; + +import { User } from '@/types/service/user'; + +import { MyPageActionButton, MyPageToggleButton } from '../mypage-setting-button'; + +interface Props { + user: User; +} + +export const MyPageSetting = ({ user }: Props) => { + console.log(user); + // useState 로직은 추후 삭제 예정 + const [isOn, setIsOn] = useState(false); + + return ( +
+ setIsOn((prev) => !prev)}> + 알림 받기 + + console.log('로그아웃')}>로그아웃 + console.log('회원탈퇴')}>회원탈퇴 +
+ ); +}; diff --git a/src/components/pages/profile/index.ts b/src/components/pages/user/profile/index.ts similarity index 86% rename from src/components/pages/profile/index.ts rename to src/components/pages/user/profile/index.ts index 820de248..af2d2801 100644 --- a/src/components/pages/profile/index.ts +++ b/src/components/pages/user/profile/index.ts @@ -4,4 +4,3 @@ export { ProfileDescriptionBadge } from './profile-description-badge'; export { ProfileEditModal } from './profile-edit-modal'; export { ProfileFollowsBadge } from './profile-follows-badge'; export { ProfileInfo } from './profile-info'; -export { ProfileSetting } from './profile-setting'; diff --git a/src/components/pages/profile/profile-card/index.tsx b/src/components/pages/user/profile/profile-card/index.tsx similarity index 100% rename from src/components/pages/profile/profile-card/index.tsx rename to src/components/pages/user/profile/profile-card/index.tsx diff --git a/src/components/pages/profile/profile-description-badge/index.tsx b/src/components/pages/user/profile/profile-description-badge/index.tsx similarity index 100% rename from src/components/pages/profile/profile-description-badge/index.tsx rename to src/components/pages/user/profile/profile-description-badge/index.tsx diff --git a/src/components/pages/profile/profile-description/index.tsx b/src/components/pages/user/profile/profile-description/index.tsx similarity index 100% rename from src/components/pages/profile/profile-description/index.tsx rename to src/components/pages/user/profile/profile-description/index.tsx diff --git a/src/components/pages/profile/profile-edit-fields/image-field/index.tsx b/src/components/pages/user/profile/profile-edit-fields/image-field/index.tsx similarity index 100% rename from src/components/pages/profile/profile-edit-fields/image-field/index.tsx rename to src/components/pages/user/profile/profile-edit-fields/image-field/index.tsx diff --git a/src/components/pages/profile/profile-edit-fields/mbti-field/index.tsx b/src/components/pages/user/profile/profile-edit-fields/mbti-field/index.tsx similarity index 100% rename from src/components/pages/profile/profile-edit-fields/mbti-field/index.tsx rename to src/components/pages/user/profile/profile-edit-fields/mbti-field/index.tsx diff --git a/src/components/pages/profile/profile-edit-fields/message-field/index.tsx b/src/components/pages/user/profile/profile-edit-fields/message-field/index.tsx similarity index 100% rename from src/components/pages/profile/profile-edit-fields/message-field/index.tsx rename to src/components/pages/user/profile/profile-edit-fields/message-field/index.tsx diff --git a/src/components/pages/profile/profile-edit-fields/nickname-field/index.tsx b/src/components/pages/user/profile/profile-edit-fields/nickname-field/index.tsx similarity index 100% rename from src/components/pages/profile/profile-edit-fields/nickname-field/index.tsx rename to src/components/pages/user/profile/profile-edit-fields/nickname-field/index.tsx diff --git a/src/components/pages/profile/profile-edit-modal/index.tsx b/src/components/pages/user/profile/profile-edit-modal/index.tsx similarity index 100% rename from src/components/pages/profile/profile-edit-modal/index.tsx rename to src/components/pages/user/profile/profile-edit-modal/index.tsx diff --git a/src/components/pages/profile/profile-follows-badge/index.tsx b/src/components/pages/user/profile/profile-follows-badge/index.tsx similarity index 100% rename from src/components/pages/profile/profile-follows-badge/index.tsx rename to src/components/pages/user/profile/profile-follows-badge/index.tsx diff --git a/src/components/pages/user/profile/profile-info/index.tsx b/src/components/pages/user/profile/profile-info/index.tsx new file mode 100644 index 00000000..bdfa1e62 --- /dev/null +++ b/src/components/pages/user/profile/profile-info/index.tsx @@ -0,0 +1,29 @@ +'use client'; +import { Button } from '@/components/ui'; +import { User } from '@/types/service/user'; + +import { ProfileCard } from '../profile-card'; +import { ProfileDescription } from '../profile-description'; +import { ProfileFollowsBadge } from '../profile-follows-badge'; + +interface Props { + user: User; +} + +export const ProfileInfo = ({ user }: Props) => { + const handleFollowClick = () => {}; + + return ( +
+ + + {!user.isFollowing && } + {user.isFollowing && ( + + )} + +
+ ); +}; diff --git a/src/mock/service/user/users-mock.ts b/src/mock/service/user/users-mock.ts index c9bdcb04..90c5f181 100644 --- a/src/mock/service/user/users-mock.ts +++ b/src/mock/service/user/users-mock.ts @@ -15,6 +15,7 @@ export const mockUserItems: User[] = [ createdAt: '2025-12-07T17:00:00+09:00', groupJoinedCnt: 5, groupCreatedCnt: 3, + isFollowing: true, }, { userId: 2, @@ -30,6 +31,7 @@ export const mockUserItems: User[] = [ createdAt: '2025-08-03T17:00:00+09:00', groupJoinedCnt: 5, groupCreatedCnt: 3, + isFollowing: true, }, { userId: 3, @@ -45,5 +47,6 @@ export const mockUserItems: User[] = [ createdAt: '2025-11-03T17:00:00+09:00', groupJoinedCnt: 2, groupCreatedCnt: 1, + isFollowing: false, }, ]; diff --git a/src/types/service/user.ts b/src/types/service/user.ts index 3fcff71f..15f8e783 100644 --- a/src/types/service/user.ts +++ b/src/types/service/user.ts @@ -11,6 +11,7 @@ export interface User { groupCreatedCnt: number; isNotificationEnabled: boolean; createdAt: string; + isFollowing: boolean; } export interface GetUserPayload {