From 7b413e36e0f036af0df148cd11510eca33bce74b Mon Sep 17 00:00:00 2001 From: Saebom <94830364+kwonsaebom@users.noreply.github.com> Date: Mon, 9 Feb 2026 17:42:45 +0900 Subject: [PATCH 01/10] =?UTF-8?q?README=20=ED=8B=80=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 94 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index e215bc4c..a8ab8865 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,84 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). +# 🎁 WishPool -## Getting Started +WishPool은 μ—¬λŸ¬ μ‚¬λžŒμ΄ μ œμ•ˆν•œ μ„ λ¬Ό μ€‘μ—μ„œ μƒμΌμžκ°€ 직접 선택할 수 μžˆλ„λ‘ λ•λŠ” **μ„ λ¬Ό 선택 κ³Όμ • μ€‘μ‹¬μ˜ νλ ˆμ΄μ…˜ μ„œλΉ„μŠ€**μž…λ‹ˆλ‹€. -First, run the development server: +μ„ λ¬Ό 결과보닀 **선물을 κ³ λ₯΄λŠ” κ³Όμ •μ˜ κ²½ν—˜**에 μ§‘μ€‘ν•˜μ—¬, μƒμΌμžμ™€ μ°Έμ—¬μž λͺ¨λ‘κ°€ λ§Œμ‘±ν•  수 μžˆλŠ” μ„ λ¬Ό μ€€λΉ„λ₯Ό λ•μŠ΅λ‹ˆλ‹€. -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` +--- -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +## πŸ”— 배포 링크 +- μ„œλΉ„μŠ€ URL: https://wishpool.store +- GitHub Repository: https://github.com/WishPool-dev -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. +--- -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. +## πŸ’‘ 기획 λ°°κ²½ -## Learn More +μ—¬λŸ¬ λͺ…이 ν•¨κ»˜ 생일 선물을 μ€€λΉ„ν• μˆ˜λ‘ μƒμΌμžμ˜ μ·¨ν–₯을 μ •ν™•νžˆ λ°˜μ˜ν•˜κΈ° μ–΄λ ΅κ³ , 선택 κ³Όμ •μ—μ„œ 의견이 λΆ„μ‚°λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. -To learn more about Next.js, take a look at the following resources: +WishPool은 μ„ λ¬Ό μ œμ•ˆ 과정을 열어두고 μ΅œμ’… 선택 κΆŒν•œμ„ μƒμΌμžμ—κ²Œ λ§‘κΉ€μœΌλ‘œμ¨, μ„ λ¬Ό μ€€λΉ„ κ³Όμ •μ˜ 뢀담을 쀄이고 μ„ λ¬Ό λ§Œμ‘±λ„λ₯Ό λ†’μ΄κ³ μž κΈ°νšλ˜μ—ˆμŠ΅λ‹ˆλ‹€. -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +--- -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! +## ✨ μ£Όμš” κΈ°λŠ₯ -## Deploy on Vercel +### πŸ“ μœ„μ‹œν’€ 생성 -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. +λŒ€ν‘œμžλŠ” μƒμΌμžμ˜ 생일과 μ„ λ¬Ό 수령 λ‚ μ§œλ₯Ό μ„ νƒν•˜μ—¬ μœ„μ‹œν’€μ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +μœ„μ‹œν’€ 생성이 μ™„λ£Œλ˜λ©΄ μ°Έμ—¬μžλ₯Ό μ΄ˆλŒ€ν•  수 μžˆλŠ” 링크가 λ°œκΈ‰λ˜λ©°, μΉ΄μΉ΄μ˜€ν†‘ 곡유 κΈ°λŠ₯을 톡해 κ°„νŽΈν•˜κ²Œ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€. + +--- + +### 🎁 μ„ λ¬Ό μ œμ•ˆ + +λŒ€ν‘œμžμ™€ μ°Έμ—¬μžλŠ” μƒμ„±λœ μœ„μ‹œν’€μ— μƒμΌμžμ—κ²Œ μ£Όκ³  싢은 선물을 자유둭게 μ œμ•ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€. + +각 선물은 **이미지, 링크, 이름** 정보λ₯Ό ν¬ν•¨ν•˜μ—¬ λ“±λ‘λ˜λ©°, μ—¬λŸ¬ 개의 선물을 μ œμ•ˆν•˜λŠ” 것도 κ°€λŠ₯ν•©λ‹ˆλ‹€. + +이λ₯Ό 톡해 μ°Έμ—¬μžλ“€μ˜ λ‹€μ–‘ν•œ 아이디어가 μžμ—°μŠ€λŸ½κ²Œ λͺ¨μ΄λ„둝 μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. + +--- + +### 🎯 μƒμΌμž μ„ λ¬Ό 선택 + +μƒμΌμžλŠ” μ°Έμ—¬μžλ“€μ΄ μ œμ•ˆν•œ μ„ λ¬Ό λͺ©λ‘μ„ ν™•μΈν•œ λ’€, μ›ν•˜μ§€ μ•ŠλŠ” 선물을 **λ“œλž˜κ·Έ μΈν„°λž™μ…˜μœΌλ‘œ 제거**ν•˜λ©° μ΅œμ’…μ μœΌλ‘œ λ°›κ³  싢은 μ„ λ¬Όλ§Œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. + +μ„ λ¬Ό 선택 과정을 λ‹¨μˆœν•œ 결정이 μ•„λ‹Œ, λΆ€λ‹΄ 없이 즐길 수 μžˆλŠ” ν•˜λ‚˜μ˜ κ²½ν—˜μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. + +--- + +### πŸ“£ 선택 κ²°κ³Ό 곡유 + +μƒμΌμžμ˜ 선택이 μ™„λ£Œλ˜λ©΄ λŒ€ν‘œμžμ˜ ν™ˆ ν™”λ©΄μ—μ„œ 선택 μ™„λ£Œ μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. + +μ„ νƒλœ μ„ λ¬Ό λͺ©λ‘μ€ μΉ΄μΉ΄μ˜€ν†‘ 곡유 λ²„νŠΌμ„ 톡해 μ°Έμ—¬μžλ“€κ³Ό κ°„νŽΈν•˜κ²Œ κ³΅μœ ν•  수 μžˆμ–΄, μ„ λ¬Ό μ€€λΉ„ 과정을 μžμ—°μŠ€λŸ½κ²Œ λ§ˆλ¬΄λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. + +--- + +## πŸ› οΈ 기술 μŠ€νƒ + +### Frontend +- Next.js +- React +- TypeScript +- TanStack Query +- Tailwind CSS + +### Tooling +- ESLint +- Prettier +- Husky + +--- + +## πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰 + +```text +src/ +β”œβ”€ api/ # API μš”μ²­ 및 TanStack Query hooks +β”œβ”€ components/ # 곡톡 UI μ»΄ν¬λ„ŒνŠΈ +β”œβ”€ pages/ # νŽ˜μ΄μ§€ λ‹¨μœ„ μ»΄ν¬λ„ŒνŠΈ +β”œβ”€ styles/ # μŠ€νƒ€μΌ 및 λ””μžμΈ 토큰 +β”œβ”€ types/ # 곡톡 νƒ€μž… μ •μ˜ +└─ utils/ # 곡톡 μœ ν‹Έ ν•¨μˆ˜ From e4c4cbe68efb1be1303b6d6d3c6e2b98c6c57911 Mon Sep 17 00:00:00 2001 From: sunkiteo-o Date: Sat, 14 Mar 2026 00:16:53 +0900 Subject: [PATCH 02/10] =?UTF-8?q?fix:=20=EB=B0=B0=EA=B2=BD=20=EC=83=89?= =?UTF-8?q?=EC=83=81=20=EC=9E=98=EB=A6=BC=20=ED=95=B4=EA=B2=B0=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/wishpool/(builder)/intro/layout.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/wishpool/(builder)/intro/layout.tsx b/src/app/wishpool/(builder)/intro/layout.tsx index 813f2420..26b2b595 100644 --- a/src/app/wishpool/(builder)/intro/layout.tsx +++ b/src/app/wishpool/(builder)/intro/layout.tsx @@ -6,7 +6,9 @@ const IntroLayout = ({ children }: { children: React.ReactNode }) => { return ( <> -
{children}
+
+ {children} +
); }; From b276240bc29b602d578fed1ec5c4aa7974416517 Mon Sep 17 00:00:00 2001 From: sunkiteo-o Date: Sat, 14 Mar 2026 00:17:38 +0900 Subject: [PATCH 03/10] =?UTF-8?q?fix:=20'=EC=84=A0=EB=AC=BC=20=EB=8D=94=20?= =?UTF-8?q?=EC=A0=9C=EC=95=88=ED=95=98=EA=B8=B0'=20=EB=A1=9C=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=88=98=EC=A0=95=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/wishpool/join/[id]/add/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/wishpool/join/[id]/add/page.tsx b/src/app/wishpool/join/[id]/add/page.tsx index 33b169df..2ea9ede3 100644 --- a/src/app/wishpool/join/[id]/add/page.tsx +++ b/src/app/wishpool/join/[id]/add/page.tsx @@ -119,7 +119,7 @@ const AddPage = () => { title="μ„ λ¬Ό μΆ”κ°€ λ²„νŠΌ μ•„μ΄μ½˜" className="text-text" /> - μ„ λ¬Ό 더 μ œμ•ˆ + μ„ λ¬Ό 더 μ œμ•ˆν•˜κΈ° Date: Sat, 14 Mar 2026 00:25:29 +0900 Subject: [PATCH 04/10] =?UTF-8?q?feat:=20vacant=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=B6=94=EA=B0=80=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/iconMap.ts | 2 + src/assets/icons/svg/icon_vacant.svg | 57 ++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 src/assets/icons/svg/icon_vacant.svg diff --git a/src/assets/icons/iconMap.ts b/src/assets/icons/iconMap.ts index 66747d9c..5d7b92c5 100644 --- a/src/assets/icons/iconMap.ts +++ b/src/assets/icons/iconMap.ts @@ -26,6 +26,7 @@ import StarIcon from '@/assets/icons/svg/icon_star.svg'; import SwipeIcon from '@/assets/icons/svg/icon_swipe.svg'; import TrashIcon from '@/assets/icons/svg/icon_trash.svg'; import UpIcon from '@/assets/icons/svg/icon_up.svg'; +import VacantIcon from '@/assets/icons/svg/icon_vacant.svg'; import WishIcon from '@/assets/icons/svg/icon_wish.svg'; export const iconMap = { @@ -56,6 +57,7 @@ export const iconMap = { ribbon: RibbonIcon, loading: LoadingIcon, delete: DeleteIcon, + vacant: VacantIcon, } as const; export type IconName = keyof typeof iconMap; diff --git a/src/assets/icons/svg/icon_vacant.svg b/src/assets/icons/svg/icon_vacant.svg new file mode 100644 index 00000000..fa80a2e7 --- /dev/null +++ b/src/assets/icons/svg/icon_vacant.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fc650da3abd9bda4bbb4cd7c6fcefda7b9376767 Mon Sep 17 00:00:00 2001 From: sunkiteo-o Date: Sat, 14 Mar 2026 00:26:47 +0900 Subject: [PATCH 05/10] =?UTF-8?q?feat:=20=ED=99=88=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B9=88=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20svg=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/home/ActiveEventSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/home/ActiveEventSection.tsx b/src/components/home/ActiveEventSection.tsx index baab22cc..7d511e76 100644 --- a/src/components/home/ActiveEventSection.tsx +++ b/src/components/home/ActiveEventSection.tsx @@ -68,8 +68,8 @@ const ActiveEventSection = ({ planType, wishpools }: activeEventProps) => { ) : ( <> -
- +
+

μ§€κΈˆ μ§„ν–‰λ˜κ³  μžˆλŠ” μ΄λ²€νŠΈκ°€ μ—†μ–΄μš”
From 991bb43586ce5154728a28baffa1edf49660af92 Mon Sep 17 00:00:00 2001 From: sunkiteo-o Date: Sat, 14 Mar 2026 00:37:57 +0900 Subject: [PATCH 06/10] =?UTF-8?q?fix:=20=EC=84=A0=ED=83=9D=ED=95=9C=20?= =?UTF-8?q?=EC=84=A0=EB=AC=BC=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EA=B0=84?= =?UTF-8?q?=EA=B2=A9=20=EC=88=98=EC=A0=95=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/pick/preview/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pick/preview/page.tsx b/src/app/pick/preview/page.tsx index e3e7b71f..bf3e044d 100644 --- a/src/app/pick/preview/page.tsx +++ b/src/app/pick/preview/page.tsx @@ -47,7 +47,7 @@ const PreviewPage = () => { <>

μ΅œμ’… 점검

μ΅œμ’… μ„ νƒν•œ μ„ λ¬Ό

-
+
{pickedItems.map(({ giftId, itemName, itemUrl, imageUrl }) => ( Date: Sat, 14 Mar 2026 00:39:38 +0900 Subject: [PATCH 07/10] =?UTF-8?q?fix:=20=EC=B5=9C=EC=A2=85=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=20=EC=84=A0=EB=AC=BC=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B0=84=EA=B2=A9=20=EC=88=98=EC=A0=95=20(#185)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/wishpool/(viewer)/[id]/final/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/wishpool/(viewer)/[id]/final/page.tsx b/src/app/wishpool/(viewer)/[id]/final/page.tsx index 4d2349ca..e8996cbe 100644 --- a/src/app/wishpool/(viewer)/[id]/final/page.tsx +++ b/src/app/wishpool/(viewer)/[id]/final/page.tsx @@ -34,7 +34,7 @@ const FinalPage = () => {

-
+
Date: Mon, 16 Mar 2026 19:30:35 +0900 Subject: [PATCH 08/10] =?UTF-8?q?fix:=20handleClose=20=EB=A5=BC=20handleLo?= =?UTF-8?q?goClick=20=EB=A1=9C=20=EB=B3=80=EC=88=98=EB=AA=85=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#187)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/layout/Header/HomeHeader.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/layout/Header/HomeHeader.tsx b/src/components/layout/Header/HomeHeader.tsx index e5082a03..b33b09d2 100644 --- a/src/components/layout/Header/HomeHeader.tsx +++ b/src/components/layout/Header/HomeHeader.tsx @@ -26,7 +26,7 @@ const HomeHeader = ({ hasMenu = false, bgColor }: HomeHeaderProps) => { const hasToken = useHasToken(); - const handleClose = () => { + const handleLogoClick = () => { if (hasToken) router.push(PATH.INTRO); router.push(PATH.HOME); }; @@ -35,7 +35,7 @@ const HomeHeader = ({ hasMenu = false, bgColor }: HomeHeaderProps) => { <> +