Skip to content

Commit ee8d451

Browse files
authored
Merge pull request #89 from YAPP-Github/feature/PRODUCT-55
feat: 마이페이지 UI 구현 (#43)
2 parents a1a75b9 + deaed52 commit ee8d451

File tree

31 files changed

+334
-18
lines changed

31 files changed

+334
-18
lines changed

public/images/store.png

2.04 KB
Loading

src/app/(auth)/login/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useRouter } from "next/navigation";
55

66
import { redirectToKakaoOAuthLoginPage } from "@/app/(auth)/_api/auth/auth.api";
77
import KakaoLogoIcon from "@/assets/kakao-logo.svg";
8-
import KoreanOrangeLogo from "@/assets/korean-orange-logo.svg";
8+
import LogoWordmarkIcon from "@/assets/logo-wordmark.svg";
99
import { Button } from "@/components/ui/Button";
1010
import { GNB } from "@/components/ui/GNB";
1111
import { TextButton } from "@/components/ui/TextButton";
@@ -37,7 +37,7 @@ export default function LoginPage() {
3737
}
3838
/>
3939
<div className={styles.logoWrapper}>
40-
<KoreanOrangeLogo className={styles.logoIcon} />
40+
<LogoWordmarkIcon className={styles.logoIcon} />
4141
<Image
4242
src='/images/login-house.png'
4343
alt='로그인 일러스트'

src/app/member/onboarding/_components/NicknameStep/NicknameStep.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useDebounce } from "react-simplikit";
66

77
import { useNicknameCheckMutation } from "@/app/member/_api/member.queries";
88
import { nicknameSchema } from "@/app/member/_schemas";
9-
import ClearIcon from "@/assets/circle-clear.svg";
9+
import CircleCloseIcon from "@/assets/circle-close.svg";
1010
import { Button } from "@/components/ui/Button";
1111
import { VStack } from "@/components/ui/Stack";
1212
import { TextField } from "@/components/ui/TextField";
@@ -108,7 +108,7 @@ export const NicknameStep = ({ nickname, onNext }: NicknameStepProps) => {
108108
helperText={errors.nickname?.message}
109109
rightAddon={
110110
nicknameValue && (
111-
<ClearIcon
111+
<CircleCloseIcon
112112
width={22}
113113
height={22}
114114
className={styles.icon}

src/app/member/onboarding/_components/PhoneNumberStep/PhoneNumberStep.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useForm } from "react-hook-form";
44
import { usePhoneNumberCheckMutation } from "@/app/member/_api/member.queries";
55
import { phoneNumberSchema } from "@/app/member/_schemas";
66
import { type PhoneNumberFormValues } from "@/app/member/_types/member.types";
7-
import ClearIcon from "@/assets/circle-clear.svg";
7+
import CircleCloseIcon from "@/assets/circle-close.svg";
88
import { Button } from "@/components/ui/Button";
99
import { VStack } from "@/components/ui/Stack";
1010
import { TextField } from "@/components/ui/TextField";
@@ -89,7 +89,7 @@ export const PhoneNumberStep = ({
8989
helperText={errors.phoneNumber?.message}
9090
rightAddon={
9191
phoneNumberValue && (
92-
<ClearIcon
92+
<CircleCloseIcon
9393
width={22}
9494
height={22}
9595
className={styles.icon}

src/app/member/onboarding/layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { useRouter } from "next/navigation";
44
import { type ReactNode } from "react";
55

6-
import LeftArrowIcon from "@/assets/left-arrow.svg";
6+
import ChevronLeftIcon from "@/assets/chevron-left.svg";
77
import { GNB } from "@/components/ui/GNB";
88

99
import * as styles from "./layout.css";
@@ -28,7 +28,7 @@ export default function OnboardingLayout({ children }: OnboardingLayoutProps) {
2828
aria-label='뒤로가기'
2929
className={styles.button}
3030
>
31-
<LeftArrowIcon width={20} height={20} />
31+
<ChevronLeftIcon width={20} height={20} />
3232
</button>
3333
}
3434
/>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { style } from "@vanilla-extract/css";
2+
3+
import { colors, semantic } from "@/styles";
4+
5+
export const wrapper = style({
6+
backgroundColor: colors.redOrange[90],
7+
padding: "1.4rem 2.4rem",
8+
});
9+
10+
export const linkWrapper = style({
11+
display: "flex",
12+
alignItems: "center",
13+
gap: "0.4rem",
14+
});
15+
16+
export const icon = style({
17+
color: semantic.icon.black,
18+
});
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"use client";
2+
3+
import Image from "next/image";
4+
import Link from "next/link";
5+
6+
import ChevronRightIcon from "@/assets/chevron-right.svg";
7+
import { Bleed } from "@/components/ui/Bleed";
8+
import { HStack, VStack } from "@/components/ui/Stack";
9+
import { Text } from "@/components/ui/Text";
10+
11+
import * as styles from "./Banner.css";
12+
13+
export const Banner = () => {
14+
return (
15+
<Bleed inline={20} className={styles.wrapper}>
16+
<HStack align='center' gap={8}>
17+
<Image
18+
src='/images/store.png'
19+
alt='가게 이미지'
20+
width={55}
21+
height={55}
22+
/>
23+
<VStack gap={4} justify='center'>
24+
<Text typo='body1Sb' color='neutral.10'>
25+
당신의 소중한 가게를 소개해주세요
26+
</Text>
27+
{/* TODO: [가게 등록하기] url로 변경 */}
28+
<Link href='/' className={styles.linkWrapper}>
29+
<Text typo='label2' color='neutral.10'>
30+
가게 등록하기
31+
</Text>
32+
<ChevronRightIcon width={16} height={16} className={styles.icon} />
33+
</Link>
34+
</VStack>
35+
</HStack>
36+
</Bleed>
37+
);
38+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { Banner } from "./Banner";
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { style } from "@vanilla-extract/css";
2+
3+
import { semantic, typography } from "@/styles";
4+
5+
export const wrapper = style({
6+
padding: "1.6rem 0",
7+
});
8+
9+
export const list = style({
10+
padding: "1.4rem 0",
11+
});
12+
13+
export const menuItem = style({
14+
...typography.body1Sb,
15+
color: semantic.text.normal,
16+
});
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use client";
2+
3+
import Link from "next/link";
4+
5+
import { VStack } from "@/components/ui/Stack";
6+
7+
import { MENU_LIST } from "../../_constants";
8+
import * as styles from "./MenuList.css";
9+
10+
export const MenuList = () => {
11+
return (
12+
<>
13+
<VStack as='ul' gap={8} className={styles.wrapper}>
14+
{MENU_LIST.map(menu => (
15+
<li key={menu.id} className={styles.list}>
16+
{menu.type === "link" ? (
17+
<Link href={menu.link} className={styles.menuItem}>
18+
{menu.label}
19+
</Link>
20+
) : (
21+
<button type='button' className={styles.menuItem}>
22+
{menu.label}
23+
</button>
24+
)}
25+
</li>
26+
))}
27+
</VStack>
28+
{/* TODO: 로그아웃시 나타날 모달 연결 */}
29+
</>
30+
);
31+
};

0 commit comments

Comments
 (0)