diff --git a/index.html b/index.html index d23fac4..e127e93 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,7 @@
+ diff --git a/src/App.tsx b/src/App.tsx index b778365..8a9ad27 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,7 @@ import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import Layout from './pages/Layout'; import LandingPage from '@/pages/landing/index'; import SignUpPage from './pages/sign-up'; +import { ModalProvider } from './contexts/ModalContext'; function App() { const queryClient = new QueryClient(); @@ -12,17 +13,19 @@ function App() { - - {/* 네비바 포함안됨 */} - } /> - } /> + + + {/* 네비바 포함안됨 */} + } /> + } /> - {/* 네비바 포함함 */} - }> - {/* } /> + {/* 네비바 포함함 */} + }> + {/* } /> } /> */} - - + + + ); diff --git a/src/assets/icon/agreeLinkIcon.svg b/src/assets/icon/agreeLinkIcon.svg new file mode 100644 index 0000000..615e390 --- /dev/null +++ b/src/assets/icon/agreeLinkIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/commons/Button.tsx b/src/components/commons/Button.tsx index ce4f6d0..8e3b6e5 100644 --- a/src/components/commons/Button.tsx +++ b/src/components/commons/Button.tsx @@ -20,10 +20,10 @@ const Button = ({ // variantStyle 조건부 설정 if (variant === 'primary') { variantStyle = - 'bg-primary rounded-[10px] font-semibold text-[16px] p-3 text-neutral'; + 'bg-primary h-[50px] rounded-common font-semibold text-button text-neutral'; } else if (variant === 'secondary') { variantStyle = - 'bg-transparent rounded-[10px] font-semibold text-[16px] p-3 text-white'; + 'bg-transparent h-[50px] rounded-common font-semibold text-button text-textLightGray'; } else if (variant === 'icon') { variantStyle = 'bg-transparent'; } diff --git a/src/components/commons/Checkbox.tsx b/src/components/commons/Checkbox.tsx new file mode 100644 index 0000000..50b99dc --- /dev/null +++ b/src/components/commons/Checkbox.tsx @@ -0,0 +1,66 @@ +import { Controller, Control, FieldValues, Path } from 'react-hook-form'; + +interface BaseCheckboxProps { + label?: string; +} + +interface ControlledCheckboxProps + extends BaseCheckboxProps { + control: Control; + name: Path; + onChange?: never; + checked?: never; +} + +interface UncontrolledCheckboxProps extends BaseCheckboxProps { + control?: never; + name?: never; + onChange: (checked: boolean) => void; + checked: boolean; +} + +type CheckboxProps = + | ControlledCheckboxProps + | UncontrolledCheckboxProps; + +function Checkbox(props: CheckboxProps) { + const CheckboxContent = ({ + checked, + onChange, + }: { + checked: boolean; + onChange: (value: boolean) => void; + }) => ( +