From d7ff6f3e028ef77c6fbf99e3c6f9abe7ac430687 Mon Sep 17 00:00:00 2001 From: aha-hyeong Date: Wed, 10 Sep 2025 20:29:06 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20sprint11=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EB=B0=8F=20=EC=A0=95=EB=A6=AC=20(.gitignore=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 --- .gitignore | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..456ad7fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# dependencies +/node_modules +7-sprint-mission-fe/ +next-env.d.ts +*.log +.env + + + +# production +/.next +/out + +# misc +.DS_Store +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local From be4e4373bb38b0e4ac1da0187ce2be6ff1713a96 Mon Sep 17 00:00:00 2001 From: aha-hyeong Date: Wed, 10 Sep 2025 20:29:49 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20sprint11=20=ED=94=84=EB=A1=A0?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ConditionalLayout.tsx | 23 ++ components/Footer.module.css | 17 ++ components/Footer.tsx | 65 +++++ components/Header.module.css | 15 ++ components/Header.tsx | 21 ++ components/MainLogo.module.css | 21 ++ components/MainLogo.tsx | 30 +++ components/Pagination.module.css | 0 components/Pagination.tsx | 9 + public/Img_home_01.svg | 67 +++++ public/Img_home_02.svg | 23 ++ public/Img_home_03.svg | 53 ++++ public/Img_home_bottom.svg | 111 ++++++++ public/Img_home_top.svg | 78 ++++++ public/btn_visibility_off.svg | 10 + public/btn_visibility_on.svg | 3 + public/ic_facebook.svg | 3 + public/ic_google.svg | 10 + public/ic_instagram.svg | 3 + public/ic_kakao.svg | 12 + public/ic_twitter.svg | 3 + public/ic_youtube.svg | 3 + public/img_default.svg | 16 ++ public/panda_face.svg | 14 + src/app/globals.css | 14 + src/app/layout.tsx | 20 ++ src/app/login/layout.tsx | 5 + src/app/login/loginPage.module.css | 88 +++++++ src/app/login/page.tsx | 114 +++++++++ src/app/page.module.css | 50 ++++ src/app/page.tsx | 126 +++++++++ .../products/components/AllItemSection.tsx | 3 + .../products/components/BestItemSection.tsx | 3 + .../components/ProductCard.module.css | 0 src/app/products/components/ProductCard.tsx | 19 ++ src/app/products/page.tsx | 20 ++ src/app/products/products.module.css | 6 + src/app/signUp/layout.tsx | 5 + src/app/signUp/page.tsx | 162 ++++++++++++ src/app/signUp/signUp.module.css | 84 ++++++ src/constants/error.ts | 14 + src/constants/mockProducts.ts | 239 ++++++++++++++++++ src/constants/userData.ts | 15 ++ src/hooks/useAuthForm.ts | 78 ++++++ src/utils/validation.ts | 14 + tsconfig.json | 28 ++ types/Product.ts | 13 + 47 files changed, 1730 insertions(+) create mode 100644 components/ConditionalLayout.tsx create mode 100644 components/Footer.module.css create mode 100644 components/Footer.tsx create mode 100644 components/Header.module.css create mode 100644 components/Header.tsx create mode 100644 components/MainLogo.module.css create mode 100644 components/MainLogo.tsx create mode 100644 components/Pagination.module.css create mode 100644 components/Pagination.tsx create mode 100644 public/Img_home_01.svg create mode 100644 public/Img_home_02.svg create mode 100644 public/Img_home_03.svg create mode 100644 public/Img_home_bottom.svg create mode 100644 public/Img_home_top.svg create mode 100644 public/btn_visibility_off.svg create mode 100644 public/btn_visibility_on.svg create mode 100644 public/ic_facebook.svg create mode 100644 public/ic_google.svg create mode 100644 public/ic_instagram.svg create mode 100644 public/ic_kakao.svg create mode 100644 public/ic_twitter.svg create mode 100644 public/ic_youtube.svg create mode 100644 public/img_default.svg create mode 100644 public/panda_face.svg create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/login/layout.tsx create mode 100644 src/app/login/loginPage.module.css create mode 100644 src/app/login/page.tsx create mode 100644 src/app/page.module.css create mode 100644 src/app/page.tsx create mode 100644 src/app/products/components/AllItemSection.tsx create mode 100644 src/app/products/components/BestItemSection.tsx create mode 100644 src/app/products/components/ProductCard.module.css create mode 100644 src/app/products/components/ProductCard.tsx create mode 100644 src/app/products/page.tsx create mode 100644 src/app/products/products.module.css create mode 100644 src/app/signUp/layout.tsx create mode 100644 src/app/signUp/page.tsx create mode 100644 src/app/signUp/signUp.module.css create mode 100644 src/constants/error.ts create mode 100644 src/constants/mockProducts.ts create mode 100644 src/constants/userData.ts create mode 100644 src/hooks/useAuthForm.ts create mode 100644 src/utils/validation.ts create mode 100644 tsconfig.json create mode 100644 types/Product.ts diff --git a/components/ConditionalLayout.tsx b/components/ConditionalLayout.tsx new file mode 100644 index 00000000..dafb050a --- /dev/null +++ b/components/ConditionalLayout.tsx @@ -0,0 +1,23 @@ +"use client"; + +import { usePathname } from "next/navigation"; +import Header from "components/Header"; +import Footer from "components/Footer"; +import { ReactNode } from "react"; + +export default function ConditionalLayout({ children }: { children: ReactNode }) { + const pathname = usePathname(); + const isAuthPage = pathname === "/login" || pathname === "/signUp"; + + if (isAuthPage) { + return <>{children}; + } + + return ( + <> +
+ {children} +