From abd50f4979c266eae73c62db45d1753b1832fbbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=ED=98=84=EC=A1=B0?= Date: Tue, 8 Oct 2024 09:20:44 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=ED=91=B8=ED=84=B0=20=EA=B0=9C=EC=9D=B8?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=EC=B2=98=EB=A6=AC=EB=B0=A9=EC=B9=A8,=20?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=95=BD=EA=B4=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/Footer/Modal.tsx | 31 ++++++ frontend/src/components/Footer/index.tsx | 129 ++++++++++++++++++++++- 2 files changed, 157 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/Footer/Modal.tsx diff --git a/frontend/src/components/Footer/Modal.tsx b/frontend/src/components/Footer/Modal.tsx new file mode 100644 index 0000000..3424e9a --- /dev/null +++ b/frontend/src/components/Footer/Modal.tsx @@ -0,0 +1,31 @@ +import { Dialog, DialogContent, DialogOverlay, DialogTitle, DialogClose } from '@radix-ui/react-dialog'; +import { X } from 'lucide-react'; + +interface ModalProps { + title: string; + content: React.ReactNode; + open: boolean; + onClose: () => void; +} + +export default function Modal({ title, content, open, onClose }: ModalProps) { + return ( + + + +
+ {title} + + + +
+
{content}
+
+
+ ); +} diff --git a/frontend/src/components/Footer/index.tsx b/frontend/src/components/Footer/index.tsx index 4459e8f..edf63d6 100644 --- a/frontend/src/components/Footer/index.tsx +++ b/frontend/src/components/Footer/index.tsx @@ -1,14 +1,18 @@ import * as React from 'react'; +import Modal from './Modal'; import { cn } from '@/lib/utils'; - export interface FooterProps extends React.HTMLAttributes {} export default function Footer({ className, ...props }: FooterProps) { + const [isTermsOpen, setIsTermsOpen] = React.useState(false); + const [isPrivacyOpen, setIsPrivacyOpen] = React.useState(false); + return ( ); }