Skip to content

Commit 73269e8

Browse files
committed
feat: 홈 이동 안내 모달 스토리북 추가
1 parent 0c07250 commit 73269e8

File tree

4 files changed

+86
-2
lines changed

4 files changed

+86
-2
lines changed

.storybook/preview-head.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div id="modal"></div>

src/components/HomeNavigateConfirmModal/HomeNavigateConfirmModal.module.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
justify-content: center;
2424
gap: 0.375rem;
2525
margin-top: 0.75rem;
26+
width: 100%;
27+
cursor: pointer;
2628

2729
& > svg > path {
2830
fill: rgba(0, 0, 0, 0.15);
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import { useState } from "react";
2+
3+
import classNames from "classnames";
4+
5+
import styles from "@/components/HomeNavigateConfirmModal/HomeNavigateConfirmModal.module.scss";
6+
import Button from "@/components/ui/Button/Button";
7+
import Icon from "@/components/ui/Icon/Icon";
8+
import Modal from "@/components/ui/Modal/Modal";
9+
import Text from "@/components/ui/Text/Text";
10+
11+
import { useOverlay } from "@/hooks/common/useOverlay";
12+
13+
import type { Meta, StoryObj, StoryFn } from "@storybook/react";
14+
15+
interface HomeNavigateConfirmModalProps {
16+
isOpen: boolean;
17+
handleClose: () => void;
18+
}
19+
20+
const HomeNavigateConfirmModalStory = ({ isOpen, handleClose }: HomeNavigateConfirmModalProps) => {
21+
const [isShowButtonChecked, setIsShowButtonChecked] = useState(false);
22+
23+
const handleShowButtonClick = () => {
24+
setIsShowButtonChecked((prev) => !prev);
25+
};
26+
return (
27+
<Modal isOpen={isOpen}>
28+
<div className={styles.Modal}>
29+
<Text variant="titleSm" color="primary" align="center" as="h2">
30+
홈으로 가시겠어요?
31+
</Text>
32+
<Text variant="bodyM" color="secondary" align="center" as="p">
33+
복사하지 않은 리뷰는 삭제돼요.
34+
</Text>
35+
<div className={styles.ButtonWrapper}>
36+
<Button text="아니요" variant="tertiary" onClick={handleClose} />
37+
<Button text="네" variant="primary" onClick={handleClose} />
38+
</div>
39+
<button
40+
className={classNames(styles.ShowButtonWrapper, {
41+
[styles.isChecked]: isShowButtonChecked,
42+
})}
43+
onClick={handleShowButtonClick}
44+
>
45+
<Icon name="checkCircle" />
46+
<Text variant="bodyXsm" color={isShowButtonChecked ? "primary" : "tertiary"}>
47+
다시 안볼래요
48+
</Text>
49+
</button>
50+
</div>
51+
</Modal>
52+
);
53+
};
54+
55+
const meta: Meta<typeof HomeNavigateConfirmModalStory> = {
56+
title: "Example/HomeNavigateConfirmModal",
57+
component: HomeNavigateConfirmModalStory,
58+
parameters: {
59+
layout: "centered",
60+
},
61+
tags: ["!autodocs"],
62+
};
63+
64+
export default meta;
65+
66+
const ModalTemplate = () => {
67+
const { isOpen, handleOpen, handleClose } = useOverlay();
68+
69+
return (
70+
<>
71+
<Button text="open modal" onClick={handleOpen} />
72+
<HomeNavigateConfirmModalStory isOpen={isOpen} handleClose={handleClose} />
73+
</>
74+
);
75+
};
76+
77+
const Template: StoryFn<typeof ModalTemplate> = ModalTemplate;
78+
79+
export const ModalStory: StoryObj<HomeNavigateConfirmModalProps> = {
80+
render: Template,
81+
};

src/components/HomeNavigateConfirmModal/HomeNavigateConfirmModal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ const HomeNavigateConfirmModal = ({ isOpen, handleClose }: HomeNavigateConfirmMo
4242
<Button text="아니요" variant="tertiary" onClick={handleClose} />
4343
<Button text="네" variant="primary" onClick={handleNavigateHome} />
4444
</div>
45-
<div
45+
<button
4646
className={classNames(styles.ShowButtonWrapper, {
4747
[styles.isChecked]: isShowButtonChecked,
4848
})}
@@ -52,7 +52,7 @@ const HomeNavigateConfirmModal = ({ isOpen, handleClose }: HomeNavigateConfirmMo
5252
<Text variant="bodyXsm" color={isShowButtonChecked ? "primary" : "tertiary"}>
5353
다시 안볼래요
5454
</Text>
55-
</div>
55+
</button>
5656
</div>
5757
</Modal>
5858
);

0 commit comments

Comments
 (0)