From 6067e09789795437c9931f640139bede30841e0b Mon Sep 17 00:00:00 2001 From: Haeyeon Kim Date: Tue, 7 Apr 2026 18:24:56 +0900 Subject: [PATCH 1/7] Revise README for WishPooL service introduction Updated the README to reflect the new service name and added details about the WishPooL service, including features and links. --- README.md | 66 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index a8ab886..c8cb44d 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,56 @@ -# 🎁 WishPool +# 🎁 WishPooL: 마음이 λͺ¨μ—¬, λ„˜μ³ 흐λ₯΄λŠ” κ³³ +
-WishPool은 μ—¬λŸ¬ μ‚¬λžŒμ΄ μ œμ•ˆν•œ μ„ λ¬Ό μ€‘μ—μ„œ μƒμΌμžκ°€ 직접 선택할 수 μžˆλ„λ‘ λ•λŠ” **μ„ λ¬Ό 선택 κ³Όμ • μ€‘μ‹¬μ˜ νλ ˆμ΄μ…˜ μ„œλΉ„μŠ€**μž…λ‹ˆλ‹€. +--- + +## 🎁 WishPooL μ„œλΉ„μŠ€ μ†Œκ°œ -μ„ λ¬Ό 결과보닀 **선물을 κ³ λ₯΄λŠ” κ³Όμ •μ˜ κ²½ν—˜**에 μ§‘μ€‘ν•˜μ—¬, μƒμΌμžμ™€ μ°Έμ—¬μž λͺ¨λ‘κ°€ λ§Œμ‘±ν•  수 μžˆλŠ” μ„ λ¬Ό μ€€λΉ„λ₯Ό λ•μŠ΅λ‹ˆλ‹€. +μΉœκ΅¬λ“€κ³Ό ν•¨κ»˜ λ§Œλ“œλŠ” μœ„μ‹œλ¦¬μŠ€νŠΈλ‘œ, **선물을 μ€€λΉ„ν•˜λŠ” 과정을 νŽΈλ¦¬ν•˜κ³  즐거운 κ²½ν—˜**으둜 λ§Œλ“€μ–΄μ£ΌλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.
+**μƒμΌμžμ˜ μ·¨ν–₯에 λ§žλŠ” μ„ λ¬Ό**을 κ³ λ₯΄λŠ” 과정에 μ§‘μ€‘ν•˜μ—¬, μƒμΌμžμ™€ μ°Έμ—¬μž λͺ¨λ‘κ°€ λ§Œμ‘±ν•  수 μžˆλŠ” μ„ λ¬Ό μ€€λΉ„ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€. --- ## πŸ”— 배포 링크 -- μ„œλΉ„μŠ€ URL: https://wishpool.store -- GitHub Repository: https://github.com/WishPool-dev +| | | +|---|---| +| 🌐 WishpooL μ„œλΉ„μŠ€ | [WishpoooL](https://wishpool.store) | +| **Frontend** Repository | [WishPool-FE](https://github.com/WishPool-dev/WishPool-FE) | +| **Backend** Repository | [WishPool-BE](https://github.com/WishPool-dev/WishPool-BE) | --- -## πŸ’‘ 기획 λ°°κ²½ - -μ—¬λŸ¬ λͺ…이 ν•¨κ»˜ 생일 선물을 μ€€λΉ„ν• μˆ˜λ‘ μƒμΌμžμ˜ μ·¨ν–₯을 μ •ν™•νžˆ λ°˜μ˜ν•˜κΈ° μ–΄λ ΅κ³ , 선택 κ³Όμ •μ—μ„œ 의견이 λΆ„μ‚°λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. - -WishPool은 μ„ λ¬Ό μ œμ•ˆ 과정을 열어두고 μ΅œμ’… 선택 κΆŒν•œμ„ μƒμΌμžμ—κ²Œ λ§‘κΉ€μœΌλ‘œμ¨, μ„ λ¬Ό μ€€λΉ„ κ³Όμ •μ˜ 뢀담을 쀄이고 μ„ λ¬Ό λ§Œμ‘±λ„λ₯Ό λ†’μ΄κ³ μž κΈ°νšλ˜μ—ˆμŠ΅λ‹ˆλ‹€. - ---- ## ✨ μ£Όμš” κΈ°λŠ₯ -### πŸ“ μœ„μ‹œν’€ 생성 +### μœ„μ‹œν’€ 생성 +ν•œ μ‚¬λžŒμ΄ λŒ€ν‘œλ‘œ μœ„μ‹œν’€μ„ μƒμ„±ν•©λ‹ˆλ‹€. +
선물을 ν•¨κ»˜ μ€€λΉ„ν•  μ‚¬λžŒλ“€μ—κ²Œ μΉ΄μΉ΄μ˜€ν†‘ μ΄ˆλŒ€ 링크λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€. -λŒ€ν‘œμžλŠ” μƒμΌμžμ˜ 생일과 μ„ λ¬Ό 수령 λ‚ μ§œλ₯Ό μ„ νƒν•˜μ—¬ μœ„μ‹œν’€μ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. - -μœ„μ‹œν’€ 생성이 μ™„λ£Œλ˜λ©΄ μ°Έμ—¬μžλ₯Ό μ΄ˆλŒ€ν•  수 μžˆλŠ” 링크가 λ°œκΈ‰λ˜λ©°, μΉ΄μΉ΄μ˜€ν†‘ 곡유 κΈ°λŠ₯을 톡해 κ°„νŽΈν•˜κ²Œ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€. +
+ + +
+ --- -### 🎁 μ„ λ¬Ό μ œμ•ˆ - -λŒ€ν‘œμžμ™€ μ°Έμ—¬μžλŠ” μƒμ„±λœ μœ„μ‹œν’€μ— μƒμΌμžμ—κ²Œ μ£Όκ³  싢은 선물을 자유둭게 μ œμ•ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€. - -각 선물은 **이미지, 링크, 이름** 정보λ₯Ό ν¬ν•¨ν•˜μ—¬ λ“±λ‘λ˜λ©°, μ—¬λŸ¬ 개의 선물을 μ œμ•ˆν•˜λŠ” 것도 κ°€λŠ₯ν•©λ‹ˆλ‹€. - -이λ₯Ό 톡해 μ°Έμ—¬μžλ“€μ˜ λ‹€μ–‘ν•œ 아이디어가 μžμ—°μŠ€λŸ½κ²Œ λͺ¨μ΄λ„둝 μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. +### μ„ λ¬Ό μ œμ•ˆ +μœ„μ‹œν’€μ—μ„œλŠ” μƒμΌμžμ—κ²Œ μ£Όκ³  싢은 선물을 자유둭게 μ œμ•ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.
+μƒν’ˆ 이미지, 링크, 이름 정보λ₯Ό ν¬ν•¨ν•˜μ—¬ μ—¬λŸ¬ 개의 선물을 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. +
+ + +
--- ### 🎯 μƒμΌμž μ„ λ¬Ό 선택 -μƒμΌμžλŠ” μ°Έμ—¬μžλ“€μ΄ μ œμ•ˆν•œ μ„ λ¬Ό λͺ©λ‘μ„ ν™•μΈν•œ λ’€, μ›ν•˜μ§€ μ•ŠλŠ” 선물을 **λ“œλž˜κ·Έ μΈν„°λž™μ…˜μœΌλ‘œ 제거**ν•˜λ©° μ΅œμ’…μ μœΌλ‘œ λ°›κ³  싢은 μ„ λ¬Όλ§Œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. - -μ„ λ¬Ό 선택 과정을 λ‹¨μˆœν•œ 결정이 μ•„λ‹Œ, λΆ€λ‹΄ 없이 즐길 수 μžˆλŠ” ν•˜λ‚˜μ˜ κ²½ν—˜μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. - ---- - -### πŸ“£ 선택 κ²°κ³Ό 곡유 - -μƒμΌμžμ˜ 선택이 μ™„λ£Œλ˜λ©΄ λŒ€ν‘œμžμ˜ ν™ˆ ν™”λ©΄μ—μ„œ 선택 μ™„λ£Œ μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. - -μ„ νƒλœ μ„ λ¬Ό λͺ©λ‘μ€ μΉ΄μΉ΄μ˜€ν†‘ 곡유 λ²„νŠΌμ„ 톡해 μ°Έμ—¬μžλ“€κ³Ό κ°„νŽΈν•˜κ²Œ κ³΅μœ ν•  수 μžˆμ–΄, μ„ λ¬Ό μ€€λΉ„ 과정을 μžμ—°μŠ€λŸ½κ²Œ λ§ˆλ¬΄λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. +μƒμΌμžλŠ” μΉœκ΅¬λ“€μ΄ μ œμ•ˆν•œ μ„ λ¬Ό 쀑 μ·¨ν–₯에 λ§žμ§€ μ•ŠλŠ” 선물을 λ“œλž˜κ·Έλ‘œ μ œκ±°ν•˜λ©° λΆ€λ‹΄ 없이 μ›ν•˜λŠ” 선물을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. +
+ + +
--- From 63d44ce83daf1f78bbe4241346f621cd53f4222d Mon Sep 17 00:00:00 2001 From: sunkite Date: Wed, 22 Apr 2026 16:21:33 +0900 Subject: [PATCH 2/7] =?UTF-8?q?refactor:=20=EC=8B=9C=EC=9E=91=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=EB=B2=84=ED=8A=BC=EB=A7=8C=20client=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=EB=A1=9C=20=EB=B6=84=EB=A6=AC=20(#1?= =?UTF-8?q?99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/intro/page.tsx | 19 ++----------------- src/components/common/Button/StartButton.tsx | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 src/components/common/Button/StartButton.tsx diff --git a/src/app/intro/page.tsx b/src/app/intro/page.tsx index e5c663a..82702b2 100644 --- a/src/app/intro/page.tsx +++ b/src/app/intro/page.tsx @@ -1,24 +1,9 @@ -'use client'; - import Image from 'next/image'; -import { useRouter } from 'next/navigation'; - import Onboarding1Image from '@/assets/images/onboarding-1.jpg'; -import Button from '@/components/common/Button'; -import { PATH } from '@/constants/common/path'; import { ONBOARDING_CONTENT } from '@/constants/intro/onBoardingContent'; +import StartButton from '@/components/common/Button/StartButton'; const OnBoardingPage = () => { - const router = useRouter(); - - const handleStart = () => { - const token = localStorage.getItem('accessToken'); - if (!token) { - router.push(PATH.LOGIN); - return; - } - router.push(PATH.HOME); - }; return (
@@ -65,7 +50,7 @@ const OnBoardingPage = () => { ))}
- +
diff --git a/src/components/common/Button/StartButton.tsx b/src/components/common/Button/StartButton.tsx new file mode 100644 index 0000000..dd80fcb --- /dev/null +++ b/src/components/common/Button/StartButton.tsx @@ -0,0 +1,16 @@ +'use client'; + +import { useRouter } from 'next/navigation'; +import Button from '@/components/common/Button'; +import { PATH } from '@/constants/common/path'; + +export default function StartButton() { + const router = useRouter(); + + const handleStart = () => { + const token = localStorage.getItem('accessToken'); + router.push(token ? PATH.HOME : PATH.LOGIN); + }; + + return ; +} \ No newline at end of file From 8a2477754a8d8c7101333d6675f8f32c8c10f95f Mon Sep 17 00:00:00 2001 From: sunkite Date: Wed, 22 Apr 2026 16:22:03 +0900 Subject: [PATCH 3/7] =?UTF-8?q?refactor:=20priority=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0=20=20(#199)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/intro/page.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/intro/page.tsx b/src/app/intro/page.tsx index 82702b2..96a50f5 100644 --- a/src/app/intro/page.tsx +++ b/src/app/intro/page.tsx @@ -37,7 +37,6 @@ const OnBoardingPage = () => { src={section.imageSrc} alt={section.imageAlt} fill - priority sizes="100vw" className="object-cover" /> From a629bf15df7ec332176f495033ea12b1261e142b Mon Sep 17 00:00:00 2001 From: sunkite Date: Wed, 22 Apr 2026 20:23:33 +0900 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20fetchPriority=EC=99=80=20=EB=B0=98?= =?UTF-8?q?=EC=9D=91=ED=98=95=20sizes=EB=A5=BC=20=ED=99=9C=EC=9A=A9?= =?UTF-8?q?=ED=95=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=A1=9C=EB=94=A9=20?= =?UTF-8?q?=EC=B5=9C=EC=A0=81=ED=99=94=20(#199)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/intro/page.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/intro/page.tsx b/src/app/intro/page.tsx index 96a50f5..ed65c0f 100644 --- a/src/app/intro/page.tsx +++ b/src/app/intro/page.tsx @@ -24,7 +24,8 @@ const OnBoardingPage = () => { alt="μ˜¨λ³΄λ”© - μœ„μ‹œν’€ 이미지" fill priority - sizes="100vw" + fetchPriority='high' + sizes="(max-width: 430px) 100vw, 430px" className="object-cover" />
@@ -37,7 +38,7 @@ const OnBoardingPage = () => { src={section.imageSrc} alt={section.imageAlt} fill - sizes="100vw" + sizes="(max-width: 430px) 100vw, 430px" className="object-cover" /> From 810ac088b7d109cbabac7385ad6bab55884d2f9d Mon Sep 17 00:00:00 2001 From: sunkite Date: Wed, 22 Apr 2026 20:32:31 +0900 Subject: [PATCH 5/7] =?UTF-8?q?refactor:=20suite=20=ED=8F=B0=ED=8A=B8=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20weight=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0(#199)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/font.ts | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/styles/font.ts b/src/styles/font.ts index 87fb04a..a7909bf 100644 --- a/src/styles/font.ts +++ b/src/styles/font.ts @@ -2,16 +2,6 @@ import localFont from 'next/font/local'; export const suite = localFont({ src: [ - { - path: '../../public/fonts/suite/SUITE-Light.woff2', - weight: '300', - style: 'normal', - }, - { - path: '../../public/fonts/suite/SUITE-Regular.woff2', - weight: '400', - style: 'normal', - }, { path: '../../public/fonts/suite/SUITE-Medium.woff2', weight: '500', @@ -27,16 +17,6 @@ export const suite = localFont({ weight: '700', style: 'normal', }, - { - path: '../../public/fonts/suite/SUITE-ExtraBold.woff2', - weight: '800', - style: 'normal', - }, - { - path: '../../public/fonts/suite/SUITE-Heavy.woff2', - weight: '900', - style: 'normal', - }, ], variable: '--font-suite', display: 'swap', From 25fb6045395a7af9eda7bc7c9a6b81360568da6d Mon Sep 17 00:00:00 2001 From: sunkite Date: Wed, 22 Apr 2026 20:51:09 +0900 Subject: [PATCH 6/7] =?UTF-8?q?fix:=20prettier=20=EB=B0=98=EC=98=81=20(#19?= =?UTF-8?q?9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/intro/page.tsx | 5 +++-- src/components/common/Button/StartButton.tsx | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/intro/page.tsx b/src/app/intro/page.tsx index ed65c0f..66b9d4b 100644 --- a/src/app/intro/page.tsx +++ b/src/app/intro/page.tsx @@ -1,7 +1,8 @@ import Image from 'next/image'; + import Onboarding1Image from '@/assets/images/onboarding-1.jpg'; -import { ONBOARDING_CONTENT } from '@/constants/intro/onBoardingContent'; import StartButton from '@/components/common/Button/StartButton'; +import { ONBOARDING_CONTENT } from '@/constants/intro/onBoardingContent'; const OnBoardingPage = () => { return ( @@ -24,7 +25,7 @@ const OnBoardingPage = () => { alt="μ˜¨λ³΄λ”© - μœ„μ‹œν’€ 이미지" fill priority - fetchPriority='high' + fetchPriority="high" sizes="(max-width: 430px) 100vw, 430px" className="object-cover" /> diff --git a/src/components/common/Button/StartButton.tsx b/src/components/common/Button/StartButton.tsx index dd80fcb..7c120a6 100644 --- a/src/components/common/Button/StartButton.tsx +++ b/src/components/common/Button/StartButton.tsx @@ -1,6 +1,7 @@ 'use client'; import { useRouter } from 'next/navigation'; + import Button from '@/components/common/Button'; import { PATH } from '@/constants/common/path'; @@ -13,4 +14,4 @@ export default function StartButton() { }; return ; -} \ No newline at end of file +} From 81019902f6a94281c43f3f0a8236c605b9c568f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B4=84?= Date: Thu, 23 Apr 2026 17:19:16 +0900 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20=EC=82=AC=EC=A7=84=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EC=97=86=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0(#0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/wishpool/join/[id]/info/page.tsx | 44 +++++++++++++++--------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/app/wishpool/join/[id]/info/page.tsx b/src/app/wishpool/join/[id]/info/page.tsx index efa81f0..d3c32eb 100644 --- a/src/app/wishpool/join/[id]/info/page.tsx +++ b/src/app/wishpool/join/[id]/info/page.tsx @@ -18,29 +18,39 @@ const InfoPage = () => { const router = useRouter(); const wishpoolId = useGetWishpoolId(); const param = useSearchParams(); - const shareidentifier = param.get('shareIdentifier') ?? ''; - const { data: wishpoolData } = useGetWishpoolGuestInfo( - wishpoolId, - shareidentifier, - ); - const { data: wishpoolImage, isPending } = useGetWishpoolImage( - wishpoolData?.imageKey ?? '', - ); + const shareIdentifier = param.get('shareIdentifier') ?? ''; + + const guestQuery = useGetWishpoolGuestInfo(wishpoolId, shareIdentifier); + const wishpoolData = guestQuery.data; + + const imageQuery = useGetWishpoolImage(wishpoolData?.imageKey ?? ''); + const wishpoolImage = imageQuery.data; + const displayImg = wishpoolImage?.key || WishpoolCardImage; - if (!wishpoolData) return ; - if (isPending) return ; + if (!wishpoolId || !shareIdentifier) { + return
잘λͺ»λœ μ ‘κ·Όμž…λ‹ˆλ‹€.
; + } + + if (guestQuery.isPending) { + return ; + } + + if (guestQuery.isError || !wishpoolData) { + return
μ΄ˆλŒ€ 정보λ₯Ό λΆˆλŸ¬μ˜€μ§€ λͺ»ν–ˆμ–΄μš”.
; + } return ( <>

- {wishpoolData?.owner}λ‹˜μ΄ 보낸
+ {wishpoolData.owner}λ‹˜μ΄ 보낸
μœ„μ‹œν’€ μ΄ˆλŒ€μž₯이 λ„μ°©ν–ˆμ–΄μš”!
- {wishpoolData?.celebrant} + {wishpoolData.celebrant} λ‹˜μ˜ 선물을 ν•¨κ»˜ κ³ λ―Όν•΄ λ³ΌκΉŒμš”?

+
{ height={75} className="absolute -top-5 left-1/2 -translate-x-1/2 -translate-y-1/2" /> +
@@ -61,17 +72,18 @@ const InfoPage = () => { alt="μœ„μ‹œν’€ λŒ€ν‘œ 이미지" />
+
μ†Œκ°œ

- {wishpoolData?.description} + {wishpoolData.description}

- μ°Έμ—¬ 마감일: {getSlashDateFmt(wishpoolData?.endDate)} κΉŒμ§€ + μ°Έμ—¬ 마감일: {getSlashDateFmt(wishpoolData.endDate)} κΉŒμ§€