+
+
{snapTypes.map((type) => (
{
height={200}
className="mr-[0.25rem]"
/>
+
-
-
{type.title}
-
{type.description}
+
+
{type.title}
+
{type.description}
- {selectedTypes.includes(type.id) ? (
-
-
-
- ) : (
-
-
-
- )}
+
+
))}
-
-
- 0
- ? `/select-mood?type=${selectedTypes.join(',')}`
- : '#'
- }
- className={
- selectedTypes.length > 0
- ? 'btn-primary body-3 w-full lg:mx-4 md:mx-4 sm:mx-4'
- : 'btn-default body-3 pointer-events-none w-full lg:mx-4 md:mx-4 sm:mx-4'
- }
- >
- 다음
-
-
+
+
+ 0
+ ? `/select-mood?type=${selectedTypes.join(',')}`
+ : '#'
+ }
+ className={
+ selectedTypes.length > 0
+ ? 'btn-primary body-3'
+ : 'btn-default body-3 pointer-events-none'
+ }
+ >
+ 다음으로
+
);
diff --git a/src/components/ClipContainer.tsx b/src/components/ClipContainer.tsx
new file mode 100644
index 0000000..1fea526
--- /dev/null
+++ b/src/components/ClipContainer.tsx
@@ -0,0 +1,80 @@
+'use client';
+
+import Image from 'next/image';
+import Link from 'next/link';
+import React from 'react';
+import { usePathname, useRouter } from 'next/navigation';
+import Logo from '../data/logo.svg';
+import ArrowBack from '@/data/arrowLeft.svg';
+import GrayLogo from '../data/grayLogo.svg';
+
+const ClipContainer = ({ children }: any) => {
+ const path = usePathname();
+ const router = useRouter();
+
+ const headerHeight =
+ path === '/'
+ ? 'h-[0rem]'
+ : path === '/request-notification'
+ ? 'h-[3.5rem]'
+ : 'h-[7rem]';
+
+ return (
+
+ );
+};
+
+export default ClipContainer;
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
deleted file mode 100644
index 819138a..0000000
--- a/src/components/Header.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-'use client';
-
-import Image from 'next/image';
-import Link from 'next/link';
-import React, { useEffect, useState } from 'react';
-import { usePathname } from 'next/navigation';
-import Logo from '../data/logo.svg';
-import GrayLogo from '../data/grayLogo.svg';
-
-const Header = () => {
- const pathname = usePathname();
- const [isHomePage, setIsHomePage] = useState(pathname === '/');
- const [isNotificationPage, setIsNotificationPage] = useState(
- pathname === '/request-notification',
- );
-
- useEffect(() => {
- setIsHomePage(pathname === '/');
- setIsNotificationPage(pathname === '/request-notification');
- }, [pathname]);
-
- return (
-
-
-
-
-
-
- {!isNotificationPage && (
-
- )}
-
- );
-};
-
-export default Header;
diff --git a/src/components/PopupWindow.tsx b/src/components/PopupWindow.tsx
new file mode 100644
index 0000000..a904174
--- /dev/null
+++ b/src/components/PopupWindow.tsx
@@ -0,0 +1,31 @@
+import React from 'react';
+import Close from '@/data/close.svg';
+import Image from 'next/image';
+
+const PopupWindow = ({ isOpen, onClose, message }: any) => {
+ if (!isOpen) return null;
+
+ return (
+
+
+
+
+
+
+
{message.title}
+
+ {message.body}
+
+
+
+ {/*
*/}
+
+ );
+};
+
+export default PopupWindow;
diff --git a/src/data/database.ts b/src/data/database.ts
index 270c8c0..e633328 100644
--- a/src/data/database.ts
+++ b/src/data/database.ts
@@ -11,19 +11,19 @@ import image_4 from '@/data/4.png';
export const snapTypes: SnapType[] = [
{
id: 'personal',
- title: '개인 스냅',
+ title: '개인',
description: '화보, 프로필 사진 촬영',
image: image_11,
},
{
id: 'couple',
- title: '커플 / 우정 스냅',
+ title: '커플 / 우정',
description: '2인 이상 촬영',
image: image_12,
},
{
id: 'wedding',
- title: '결혼 스냅',
+ title: '결혼',
description: '웨딩, 본식 등 촬영',
image: image_13,
},
diff --git a/src/lib/svgs.tsx b/src/lib/svgs.tsx
new file mode 100644
index 0000000..d92220a
--- /dev/null
+++ b/src/lib/svgs.tsx
@@ -0,0 +1,24 @@
+export const LoadingIndicator = () => {
+ return (
+
+ );
+};
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
new file mode 100644
index 0000000..0dba1f8
--- /dev/null
+++ b/src/lib/utils.ts
@@ -0,0 +1,24 @@
+import { ChangeEvent, Dispatch, SetStateAction } from 'react';
+
+export const handlePhoneNumberChange = (
+ e: ChangeEvent
,
+ setValue: Dispatch>,
+) => {
+ const inputNumber = e.target.value.replace(/\D/g, '');
+
+ let formattedNumber = '';
+ if (inputNumber.length <= 3) {
+ formattedNumber = inputNumber;
+ } else if (inputNumber.length <= 7) {
+ formattedNumber = `${inputNumber.slice(0, 3)}-${inputNumber.slice(3)}`;
+ } else {
+ formattedNumber = `${inputNumber.slice(0, 3)}-${inputNumber.slice(
+ 3,
+ 7,
+ )}-${inputNumber.slice(7, 11)}`;
+ }
+
+ if (inputNumber.length <= 11) {
+ setValue(formattedNumber);
+ }
+};