- 회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 경우 - 비밀번호 변경을 안내해 드리고 있습니다. 회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다.회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 - 경우 비밀번호 변경을 안내해 드리고 있습니다.회원님의 개인정보 보호를 - 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 - 있습니다. -
- > - } + defaultOpen={false} + title='서비스 필수 이용 약관' + bodyText={`회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 있습니다. +동일한 설명이 반복되어 내용이 길어지면, Body 영역에 scroll이 적용됩니다.`} + confirmText='동의하고 계속하기' /> ), parameters: { docs: { description: { story: - "버튼을 클릭하면 바텀시트가 열리고, 하단에 footer 버튼이 렌더링됩니다.", + "Trigger 버튼을 클릭하면 BottomSheet가 열리고 Title/Body/Footer가 표시됩니다.", }, }, }, }; export const Opened: Story = { - render: (args, { viewMode }) => { + render: (_, { viewMode }) => { const forceClosedInDocs = viewMode === "docs"; + return (- 회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 경우 - 비밀번호 변경을 안내해 드리고 있습니다. -
- > - } + bodyText='회원님의 개인정보 보호를 위해 장기간 비밀번호를 유지 중인 경우 비밀번호 변경을 안내해 드리고 있습니다.' + confirmText='확인' /> ); }, - args: { - open: true, - }, parameters: { docs: { description: { story: - "Canvas에선 열린 상태로 시작되며, 하단에 버튼이 함께 표시됩니다.", + "Canvas에선 열린 상태로 시작되며, 닫기 버튼을 통해 닫을 수 있습니다.", }, }, }, diff --git a/src/components/ui/BottomSheet/BottomSheet.tsx b/src/components/ui/BottomSheet/BottomSheet.tsx index 59dcbe95..4e058e3d 100644 --- a/src/components/ui/BottomSheet/BottomSheet.tsx +++ b/src/components/ui/BottomSheet/BottomSheet.tsx @@ -1,38 +1,79 @@ -import { type ReactNode } from "react"; -import { type DialogProps,Drawer } from "vaul"; - -import * as styles from "./BottomSheet.css"; - -export type BottomSheetProps = { - title: string; - trigger?: ReactNode; - footer?: ReactNode; - content?: ReactNode; -} & DialogProps; - -export const BottomSheet = ({ - title, - trigger, - footer, - content, - ...props -}: BottomSheetProps) => { - return ( -여기에 컨텐츠가 들어갑니다.
+ *