From f487578ce323b52f1072a94fdc349a02c41c6866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Tue, 26 Aug 2025 01:11:45 +0900 Subject: [PATCH 01/14] =?UTF-8?q?chore:=20QA=EC=84=9C=EB=B2=84,=20?= =?UTF-8?q?=EC=9A=B4=EC=98=81=20=EC=84=9C=EB=B2=84=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=A0=84=EC=B2=B4=20=ED=97=88=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- next.config.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/next.config.ts b/next.config.ts index e1dcedae..e40cb1e2 100644 --- a/next.config.ts +++ b/next.config.ts @@ -10,15 +10,20 @@ const nextConfig: NextConfig = { hostname: 'img1.kakaocdn.net', pathname: '/**', }, + { + protocol: 'https', + hostname: 'lh3.googleusercontent.com', + pathname: '/**', // 구글 이미지 전체 허용 + }, { protocol: 'https', hostname: 'test-api.zeroone.it.kr', - pathname: '/profile-image/**', + pathname: '/**', }, { protocol: 'https', - hostname: 'lh3.googleusercontent.com', - pathname: '/**', // 구글 이미지 전체 허용 + hostname: 'www.zeroone.it.kr', + pathname: '/**', }, ], }, From 57880c2cba7de6869244836410db338de61d0fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Thu, 28 Aug 2025 21:56:24 +0900 Subject: [PATCH 02/14] =?UTF-8?q?chore:=20progress=20bar=20package=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + yarn.lock | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/package.json b/package.json index 4334a658..83f1931e 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@radix-ui/react-avatar": "^1.1.9", "@radix-ui/react-dialog": "^1.1.10", "@radix-ui/react-dropdown-menu": "^2.1.15", + "@radix-ui/react-progress": "^1.1.7", "@radix-ui/react-slot": "^1.2.2", "@radix-ui/react-switch": "^1.2.4", "@radix-ui/react-toggle": "^1.1.9", diff --git a/yarn.lock b/yarn.lock index 15d0327d..2f43b386 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2926,6 +2926,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-progress@npm:^1.1.7": + version: 1.1.7 + resolution: "@radix-ui/react-progress@npm:1.1.7" + dependencies: + "@radix-ui/react-context": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.1.3" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/bed5349682a75db02d362c07ac99fefddbbdc0152c4d5035719498223b9d490ebd834e2d9f64d498424048eb3da7eb7e55ba696e202cd0a048d6e319390e69d3 + languageName: node + linkType: hard + "@radix-ui/react-roving-focus@npm:1.1.10": version: 1.1.10 resolution: "@radix-ui/react-roving-focus@npm:1.1.10" @@ -10605,6 +10625,7 @@ __metadata: "@radix-ui/react-avatar": "npm:^1.1.9" "@radix-ui/react-dialog": "npm:^1.1.10" "@radix-ui/react-dropdown-menu": "npm:^2.1.15" + "@radix-ui/react-progress": "npm:^1.1.7" "@radix-ui/react-slot": "npm:^1.2.2" "@radix-ui/react-switch": "npm:^1.2.4" "@radix-ui/react-toggle": "npm:^1.1.9" From 81919647dc05204fce866bad746ae44bd33bb9bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Fri, 29 Aug 2025 21:48:29 +0900 Subject: [PATCH 03/14] =?UTF-8?q?feat:=20=EC=84=B1=EC=8B=A4=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=ED=83=80=EC=9E=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/api/types.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/entities/user/api/types.ts b/src/entities/user/api/types.ts index fbd0d905..cb5663ea 100644 --- a/src/entities/user/api/types.ts +++ b/src/entities/user/api/types.ts @@ -65,19 +65,26 @@ export interface MemberProfile { simpleIntroduction: string; mbti: string; interests: Interest[]; - hobbies: Hobby[]; + hobbies?: Hobby[]; birthDate: string; githubLink: SocialLink | undefined; blogOrSnsLink: SocialLink | undefined; tel: string; } +export interface SincerityTemp { + temperature: number; + levelId: number; + levelName: string; +} + export interface GetUserProfileResponse { memberId: number; autoMatching: boolean; studyApplied: boolean; memberInfo: MemberInfo; memberProfile: MemberProfile; + sincerityTemp: SincerityTemp; } export interface PatchAutoMatchingParams { From e3cf0594f9c4e5a37dd8ce41b2be3bba75456fda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:11:04 +0900 Subject: [PATCH 04/14] =?UTF-8?q?feat:=20=EC=98=A8=EB=8F=84=EB=B3=84=20?= =?UTF-8?q?=EC=BB=AC=EB=9F=AC,=20=EC=95=84=EC=9D=B4=EC=BD=98=20=ED=94=84?= =?UTF-8?q?=EB=A6=AC=EC=85=8B=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/config/sincerity-temp-presets.tsx | 65 ++++++++++++++++++++ src/shared/icons/temp_1.svg | 4 ++ src/shared/icons/temp_2.svg | 4 ++ src/shared/icons/temp_3.svg | 4 ++ src/shared/icons/temp_4.svg | 4 ++ 5 files changed, 81 insertions(+) create mode 100644 src/shared/config/sincerity-temp-presets.tsx create mode 100644 src/shared/icons/temp_1.svg create mode 100644 src/shared/icons/temp_2.svg create mode 100644 src/shared/icons/temp_3.svg create mode 100644 src/shared/icons/temp_4.svg diff --git a/src/shared/config/sincerity-temp-presets.tsx b/src/shared/config/sincerity-temp-presets.tsx new file mode 100644 index 00000000..994080a9 --- /dev/null +++ b/src/shared/config/sincerity-temp-presets.tsx @@ -0,0 +1,65 @@ +import TempType1 from '@/shared/icons/temp_1.svg'; +import TempType2 from '@/shared/icons/temp_2.svg'; +import TempType3 from '@/shared/icons/temp_3.svg'; +import TempType4 from '@/shared/icons/temp_4.svg'; + +export type SincerityType = 'type1' | 'type2' | 'type3' | 'type4'; + +export interface SincerityPreset { + indicatorClass: string; + textClass: string; + bgClass: string; + Icon: React.ComponentType>; + label?: string; +} + +export const SINCERITY_TEMP_PRESETS: Record = { + type1: { + // todo: Figma에 헥스코드로만 존재. 디자인 시스템 X. 현재 코드에서는 헥스값 인식을 하지 못하기 때문에 임의 컬러로 설정 + // 현재 기획 여쭤본 상태, 컬러값에 따라 global에 추가후 변경 가능성 O. + // indicatorClass: '#F5C400', + // textClass: '#FFD21F', + indicatorClass: 'text-yellow-500', + textClass: 'text-yellow-400', + bgClass: 'bg-yellow-50', + Icon: TempType1, + label: '노란불씨', + }, + type2: { + indicatorClass: 'text-orange-400', + textClass: 'text-orange-400', + bgClass: 'bg-orange-50', + Icon: TempType2, + label: '주황불꽃', + }, + type3: { + indicatorClass: 'text-rose-500', + textClass: 'text-rose-500', + bgClass: 'bg-rose-50', + Icon: TempType3, + label: '불꽃', + }, + type4: { + indicatorClass: 'text-indigo-500', + textClass: 'text-indigo-500', + bgClass: 'bg-indigo-50', + Icon: TempType4, + label: '푸른불꽃', + }, +} as const; + +const LEVEL_ID_TO_TYPE: Record = { + 5: 'type1', // 1단계 + 6: 'type2', // 2단계 + 7: 'type3', // 3단계 + 8: 'type4', // 4단계 +}; + +// 매핑 안되는 값이 들어왔을 경우 FALLBACK +const FALLBACK_TYPE: SincerityType = 'type1'; + +export function getSincerityPresetByLevelId(levelId: number): SincerityPreset { + const type = LEVEL_ID_TO_TYPE[levelId] ?? FALLBACK_TYPE; + + return SINCERITY_TEMP_PRESETS[type]; +} diff --git a/src/shared/icons/temp_1.svg b/src/shared/icons/temp_1.svg new file mode 100644 index 00000000..edbc9675 --- /dev/null +++ b/src/shared/icons/temp_1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/shared/icons/temp_2.svg b/src/shared/icons/temp_2.svg new file mode 100644 index 00000000..3bb87659 --- /dev/null +++ b/src/shared/icons/temp_2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/shared/icons/temp_3.svg b/src/shared/icons/temp_3.svg new file mode 100644 index 00000000..8ca85a33 --- /dev/null +++ b/src/shared/icons/temp_3.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/shared/icons/temp_4.svg b/src/shared/icons/temp_4.svg new file mode 100644 index 00000000..60119ca5 --- /dev/null +++ b/src/shared/icons/temp_4.svg @@ -0,0 +1,4 @@ + + + + From 5a948517aa71ed465e3eebb7aa14592c6b5c2360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:11:49 +0900 Subject: [PATCH 05/14] =?UTF-8?q?feat:=20=EB=A7=88=EC=9D=B4=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=ED=95=84=20=EC=B9=B4=EB=93=9C=EC=97=90=20=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/my-profile-card.tsx | 23 +++++++++++++++++++++-- src/widgets/home/sidebar.tsx | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/entities/user/ui/my-profile-card.tsx b/src/entities/user/ui/my-profile-card.tsx index 32ab753a..66b8bf4a 100644 --- a/src/entities/user/ui/my-profile-card.tsx +++ b/src/entities/user/ui/my-profile-card.tsx @@ -3,12 +3,15 @@ import Link from 'next/link'; import React, { useState } from 'react'; import { usePatchAutoMatchingMutation } from '@/entities/user/model/use-user-profile-query'; +import { getSincerityPresetByLevelId } from '@/shared/config/sincerity-temp-presets'; +import { cn } from '@/shared/shadcn/lib/utils'; import UserAvatar from '@/shared/ui/avatar'; import { ToggleSwitch } from '@/shared/ui/toggle'; import AccessTimeIcon from 'public/icons/access_time.svg'; import AssignmentIcon from 'public/icons/assignment.svg'; import CodeIcon from 'public/icons/code.svg'; import SettingIcon from 'public/icons/setting.svg'; +import { SincerityTemp } from '../api/types'; interface MyProfileCardProps { memberId: number; @@ -19,6 +22,7 @@ interface MyProfileCardProps { time?: string; techStacks?: string; studyApplied?: boolean; + sincerityTemp: SincerityTemp; } export default function MyProfileCard({ @@ -30,8 +34,10 @@ export default function MyProfileCard({ time, techStacks, studyApplied, + sincerityTemp, }: MyProfileCardProps) { const [enabled, setEnabled] = useState(matching); + const preset = getSincerityPresetByLevelId(sincerityTemp.levelId); const { mutate: patchAutoMatching, isPending } = usePatchAutoMatchingMutation(); @@ -63,8 +69,21 @@ export default function MyProfileCard({ -
-
{name?.trim() || '비회원'}님
+
+
+
+ {name?.trim() || '비회원'}님 +
+
+ {sincerityTemp.temperature.toFixed(1)} ℃ +
+
스터디 매칭 t.techStackName) .join(', ')} studyApplied={userProfile?.studyApplied ?? false} + sincerityTemp={userProfile.sincerityTemp} /> {userProfile.studyApplied ? ( From ab9eb3eaddf57f901e225f9fdc17118571820b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:15:53 +0900 Subject: [PATCH 06/14] =?UTF-8?q?style:=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/my-profile-card.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/entities/user/ui/my-profile-card.tsx b/src/entities/user/ui/my-profile-card.tsx index 66b8bf4a..a895ce0c 100644 --- a/src/entities/user/ui/my-profile-card.tsx +++ b/src/entities/user/ui/my-profile-card.tsx @@ -37,7 +37,7 @@ export default function MyProfileCard({ sincerityTemp, }: MyProfileCardProps) { const [enabled, setEnabled] = useState(matching); - const preset = getSincerityPresetByLevelId(sincerityTemp.levelId); + const temperPreset = getSincerityPresetByLevelId(sincerityTemp.levelId); const { mutate: patchAutoMatching, isPending } = usePatchAutoMatchingMutation(); @@ -77,8 +77,8 @@ export default function MyProfileCard({
{sincerityTemp.temperature.toFixed(1)} ℃ From 3c86056ca087432461c8e1e54a9b3a5f4d70c53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:37:52 +0900 Subject: [PATCH 07/14] =?UTF-8?q?fix:=20=EB=A8=B8=EC=A7=80=20=EC=BB=A8?= =?UTF-8?q?=ED=94=8C=EB=A6=AD=ED=8A=B8=20=EC=88=98=EC=A0=95=20->=20div=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/my-profile-card.tsx | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/entities/user/ui/my-profile-card.tsx b/src/entities/user/ui/my-profile-card.tsx index bd89efcf..13dfe550 100644 --- a/src/entities/user/ui/my-profile-card.tsx +++ b/src/entities/user/ui/my-profile-card.tsx @@ -105,19 +105,19 @@ export default function MyProfileCard({ />
-
-
- - {subject?.trim() || '없음'} -
-
- - {time?.trim() || '없음'} -
-
- - {techStacks?.trim() || '없음'} -
+
+
+
+ + {subject?.trim() || '없음'} +
+
+ + {time?.trim() || '없음'} +
+
+ + {techStacks?.trim() || '없음'}
From 4973b91848c551bfa6975bb178b7ae1479b7ce46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:50:36 +0900 Subject: [PATCH 08/14] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=ED=95=84=20=EB=AA=A8=EB=8B=AC=EC=97=90=20=EC=84=B1?= =?UTF-8?q?=EC=8B=A4=EC=98=A8=EB=8F=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/user-profile-modal.tsx | 62 +++++++++++++++------ 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/src/entities/user/ui/user-profile-modal.tsx b/src/entities/user/ui/user-profile-modal.tsx index f49fe6ba..ec41d0d7 100644 --- a/src/entities/user/ui/user-profile-modal.tsx +++ b/src/entities/user/ui/user-profile-modal.tsx @@ -9,6 +9,7 @@ import GithubIcon from '@/features/my-page/ui/icon/github-logo.svg'; import GlobeIcon from '@/features/my-page/ui/icon/globe-simple.svg'; import PhoneIcon from '@/features/my-page/ui/icon/phone.svg'; import { useUserPositiveKeywordsQuery } from '@/features/study/model/use-review-query'; +import { getSincerityPresetByLevelId } from '@/shared/config/sincerity-temp-presets'; import UserAvatar from '@/shared/ui/avatar'; import Badge from '@/shared/ui/badge'; import { Modal } from '@/shared/ui/modal'; @@ -30,6 +31,9 @@ export default function UserProfileModal({ if (isLoading || isError || !profile || !positiveKeywordsData) return null; const positiveKeywords = positiveKeywordsData?.keywords || []; + const temperPreset = getSincerityPresetByLevelId( + profile.sincerityTemp.levelId, + ); return ( @@ -68,33 +72,55 @@ export default function UserProfileModal({ ))}
-
- {profile.memberProfile.memberName} +
+
+ {profile.memberProfile.memberName} +
+ +
{profile.memberProfile.simpleIntroduction}
-
-
-
- + +
+
+ + {profile.memberProfile.birthDate ?? ''} -
-
- - {profile.memberProfile.tel ?? ''} -
+
-
-
- +
+ + {profile.memberProfile.githubLink?.url ?? ''} -
-
- + +
+
+ + + {profile.memberProfile.tel ?? ''} + +
+ +
+ + {profile.memberProfile.blogOrSnsLink?.url ?? ''} -
+
From c825f1da1005a59463c3466902113728dcef98e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 03:58:06 +0900 Subject: [PATCH 09/14] =?UTF-8?q?style:=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EA=B0=80=EB=A1=9C=20=EC=84=B8?= =?UTF-8?q?=EB=A1=9C=EA=B0=92=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/user-profile-modal.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/entities/user/ui/user-profile-modal.tsx b/src/entities/user/ui/user-profile-modal.tsx index ec41d0d7..e248ff18 100644 --- a/src/entities/user/ui/user-profile-modal.tsx +++ b/src/entities/user/ui/user-profile-modal.tsx @@ -97,27 +97,27 @@ export default function UserProfileModal({
- + {profile.memberProfile.birthDate ?? ''}
- + {profile.memberProfile.githubLink?.url ?? ''}
- + {profile.memberProfile.tel ?? ''}
- + {profile.memberProfile.blogOrSnsLink?.url ?? ''} From 9357e8d2962aef95fadd28388b87eb0260de020c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 04:13:21 +0900 Subject: [PATCH 10/14] =?UTF-8?q?fix:=20indicator=20=EC=83=89=EC=83=81=20b?= =?UTF-8?q?ackground=20=EC=A0=81=EC=9A=A9=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/config/sincerity-temp-presets.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shared/config/sincerity-temp-presets.tsx b/src/shared/config/sincerity-temp-presets.tsx index 994080a9..e78c10d2 100644 --- a/src/shared/config/sincerity-temp-presets.tsx +++ b/src/shared/config/sincerity-temp-presets.tsx @@ -19,28 +19,28 @@ export const SINCERITY_TEMP_PRESETS: Record = { // 현재 기획 여쭤본 상태, 컬러값에 따라 global에 추가후 변경 가능성 O. // indicatorClass: '#F5C400', // textClass: '#FFD21F', - indicatorClass: 'text-yellow-500', + indicatorClass: 'bg-yellow-300', textClass: 'text-yellow-400', bgClass: 'bg-yellow-50', Icon: TempType1, label: '노란불씨', }, type2: { - indicatorClass: 'text-orange-400', + indicatorClass: 'bg-orange-400', textClass: 'text-orange-400', bgClass: 'bg-orange-50', Icon: TempType2, label: '주황불꽃', }, type3: { - indicatorClass: 'text-rose-500', + indicatorClass: 'bg-rose-500', textClass: 'text-rose-500', bgClass: 'bg-rose-50', Icon: TempType3, label: '불꽃', }, type4: { - indicatorClass: 'text-indigo-500', + indicatorClass: 'bg-indigo-500', textClass: 'text-indigo-500', bgClass: 'bg-indigo-50', Icon: TempType4, From 60d732692832772d73273503648b56c5ad768520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 04:13:35 +0900 Subject: [PATCH 11/14] =?UTF-8?q?feat:=20=EC=84=B1=EC=8B=A4=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=EC=84=A4=EB=AA=85=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/help_outline.png | Bin 0 -> 552 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/help_outline.png diff --git a/public/images/help_outline.png b/public/images/help_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..204622735cd7b34f562a6a7096906deec803c993 GIT binary patch literal 552 zcmV+@0@wYCP)>)ut36<3&`nq)X4pmrFTXd}RNb-A>od|+?^c`C=l zM9%_3hXIU$Zt|cE;Cb3vfEuu<8A10u{wNPW^|VI7CX0k-bQp$aYV%v^1rax`n1GMN zj*04Lmkp`djH@u*b%V#26d5i62BmH365zz1mD1`2Xb_>%56tM)yVR1t7u>D%|0;;q z?!i&?6!@dP{puSa-tO&JMj!8!NLj!f)VWlTdL6%=^h2Vf#&ck9>?e(d%v`f4-M|cG ziYarcl8qpXaAfdFI*y1;aW_y!<`7q>I#r qKLB~qJZasDFDaUkz}D^kFYyH$jM!<93qmsh0000 Date: Sat, 30 Aug 2025 04:14:06 +0900 Subject: [PATCH 12/14] =?UTF-8?q?feat:=20progress=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/ui/progress/index.tsx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/shared/ui/progress/index.tsx diff --git a/src/shared/ui/progress/index.tsx b/src/shared/ui/progress/index.tsx new file mode 100644 index 00000000..fb9ca504 --- /dev/null +++ b/src/shared/ui/progress/index.tsx @@ -0,0 +1,29 @@ +'use client'; + +import * as RadixProgress from '@radix-ui/react-progress'; +import * as React from 'react'; + +interface ProgressProps { + value: number; + indicatorColor?: string; +} + +const Progress: React.FC = ({ + value, + indicatorColor = 'bg-white', +}) => { + return ( + + + + ); +}; + +export default Progress; From fc6c98fa7a8e86865101429269c79ce9b789de2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 04:14:16 +0900 Subject: [PATCH 13/14] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=84=B1=EC=8B=A4=EC=98=A8=EB=8F=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(my)/my-page/page.tsx | 6 ++- src/features/my-page/ui/profile.tsx | 77 ++++++++++++++++++++++------- 2 files changed, 64 insertions(+), 19 deletions(-) diff --git a/app/(my)/my-page/page.tsx b/app/(my)/my-page/page.tsx index d5b23f10..13ec9bfa 100644 --- a/app/(my)/my-page/page.tsx +++ b/app/(my)/my-page/page.tsx @@ -15,7 +15,11 @@ export default async function MyPage() { return (
- +
); diff --git a/src/features/my-page/ui/profile.tsx b/src/features/my-page/ui/profile.tsx index aa685de4..8b5eedc1 100644 --- a/src/features/my-page/ui/profile.tsx +++ b/src/features/my-page/ui/profile.tsx @@ -1,18 +1,29 @@ -import { MemberProfile } from '@/entities/user/api/types'; +import Image from 'next/image'; +import { MemberProfile, SincerityTemp } from '@/entities/user/api/types'; import CakeIcon from '@/features/my-page/ui/icon/cake.svg'; import GithubIcon from '@/features/my-page/ui/icon/github-logo.svg'; import GlobeIcon from '@/features/my-page/ui/icon/globe-simple.svg'; import PhoneIcon from '@/features/my-page/ui/icon/phone.svg'; import ProfileEditModal from '@/features/my-page/ui/profile-edit-modal'; +import { getSincerityPresetByLevelId } from '@/shared/config/sincerity-temp-presets'; +import { cn } from '@/shared/shadcn/lib/utils'; import UserAvatar from '@/shared/ui/avatar'; import Badge from '@/shared/ui/badge'; +import Progress from '@/shared/ui/progress'; interface ProfileProps { memberId: number; memberProfile: MemberProfile; + sincerityTemp: SincerityTemp; } -export default function Profile({ memberId, memberProfile }: ProfileProps) { +export default function Profile({ + memberId, + memberProfile, + sincerityTemp, +}: ProfileProps) { + const temperPreset = getSincerityPresetByLevelId(sincerityTemp.levelId); + return (
-
-
-
- +
+
+ + {memberProfile.birthDate ?? '생일을 입력해주세요!'} -
-
- + +
+
+ + + {memberProfile.githubLink?.url ?? '깃허브 링크를 입력해주세요!'} + +
+
+ + {memberProfile.tel ?? '번호를 입력해주세요!'} -
+
+
+ + + {memberProfile.blogOrSnsLink?.url ?? + '블로그 링크를 입력해주세요!'} + +
+
-
-
- - {memberProfile.githubLink?.url || '깃허브 링크를 입력해주세요!'} +
+
+
+ 성실 온도 + 성실온도 설명
-
- - {memberProfile.blogOrSnsLink?.url || - '블로그 링크를 입력해주세요!'} +
+ +
{sincerityTemp.temperature.toFixed(1)} ℃
+
From 3c944a8c3323cc403ba66e33d7479b989fb2165d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=A3=BC?= Date: Sat, 30 Aug 2025 04:19:01 +0900 Subject: [PATCH 14/14] =?UTF-8?q?style:=20=EC=A0=95=EB=A0=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/user/ui/user-profile-modal.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/entities/user/ui/user-profile-modal.tsx b/src/entities/user/ui/user-profile-modal.tsx index e248ff18..7bbc47d7 100644 --- a/src/entities/user/ui/user-profile-modal.tsx +++ b/src/entities/user/ui/user-profile-modal.tsx @@ -72,13 +72,13 @@ export default function UserProfileModal({ ))}
-
+
{profile.memberProfile.memberName}