From 7accbc6c82fd4c9d7bc06db9388c1e13c7ad8c29 Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 15:22:20 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=EB=A1=9C=EB=94=A9=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20ui=20(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/photographer/page.tsx | 18 +++++++++++++++++- src/components/Loading.tsx | 20 ++++++++++++++++++++ src/data/loading.gif | Bin 0 -> 26634 bytes 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/components/Loading.tsx create mode 100644 src/data/loading.gif diff --git a/src/app/photographer/page.tsx b/src/app/photographer/page.tsx index 0364224..cc5469d 100644 --- a/src/app/photographer/page.tsx +++ b/src/app/photographer/page.tsx @@ -1,17 +1,29 @@ 'use client'; -import React from 'react'; +import React, { useEffect, useState } from 'react'; import Image from 'next/image'; import Link from 'next/link'; import { useRouter, useSearchParams } from 'next/navigation'; import { photographers_mu } from '@/data/database'; import ArrowBack from '@/data/arrowLeft.svg'; +import Loading from '@/components/Loading'; const RecommendedPhotographers = () => { + const [isLoading, setIsLoading] = useState(true); const router = useRouter(); + + useEffect(() => { + const timer = setTimeout(() => { + setIsLoading(false); + }, 2500); // 2.5초 + + return () => clearTimeout(timer); + }, []); + const backFunction = () => { router.back(); }; + const searchParams = useSearchParams(); const type = searchParams.get('type'); const moods = searchParams.get('moods'); @@ -23,6 +35,10 @@ const RecommendedPhotographers = () => { .sort(() => Math.random() - 0.5) .slice(0, 3); + if (isLoading) { + return ; // 로딩 중일 때 로딩 컴포넌트 표시 + } + return (
diff --git a/src/components/Loading.tsx b/src/components/Loading.tsx new file mode 100644 index 0000000..dc02f14 --- /dev/null +++ b/src/components/Loading.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import Image from 'next/image'; +import LoadingGif from '@/data/loading.gif'; +const Loading = () => { + return ( +
+ Loading... +

작가님을 탐색 중이에요!

+

잠시만 기다려주세요!

+
+ ); +}; + +export default Loading; diff --git a/src/data/loading.gif b/src/data/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb8a2b6cad219cbeb528f04292a1d4bf6f8d0af2 GIT binary patch literal 26634 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 HkXHU53dZt& literal 0 HcmV?d00001 From 2435fe835339144a0e035529b357d76c0aa7e5b8 Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 15:54:13 +0900 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20mini=20size=20=EB=8C=80=EC=9D=91(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/select-type/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/select-type/page.tsx b/src/app/select-type/page.tsx index fd16ebd..edd369a 100644 --- a/src/app/select-type/page.tsx +++ b/src/app/select-type/page.tsx @@ -28,7 +28,7 @@ const SelectType = () => { }; return ( -
+
Back From 135ce5b20cba673a99482e6b1ae11b1938477e8b Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 17:06:21 +0900 Subject: [PATCH 3/7] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=ED=95=84=20hover?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/photographer/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/photographer/page.tsx b/src/app/photographer/page.tsx index cc5469d..ddbd695 100644 --- a/src/app/photographer/page.tsx +++ b/src/app/photographer/page.tsx @@ -58,7 +58,7 @@ const RecommendedPhotographers = () => { {selectedPhotographers.map((photographer) => (
From a5902f7271d8995a6aa04b387e5d6f881a6a9ab3 Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 17:06:34 +0900 Subject: [PATCH 4/7] =?UTF-8?q?fix:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EB=82=98=EC=97=B4=20=EB=B0=A9=EC=8B=9D=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/select-mood/page.tsx | 44 +++++++++++++------------------ src/components/MoodImageGroup.tsx | 44 +++++++++++++++++++++++++++++++ src/data/database.ts | 4 +++ 3 files changed, 67 insertions(+), 25 deletions(-) create mode 100644 src/components/MoodImageGroup.tsx diff --git a/src/app/select-mood/page.tsx b/src/app/select-mood/page.tsx index 6b25d21..f1a2760 100644 --- a/src/app/select-mood/page.tsx +++ b/src/app/select-mood/page.tsx @@ -4,9 +4,10 @@ import { useState } from 'react'; import Link from 'next/link'; import Image from 'next/image'; import { useRouter, useSearchParams } from 'next/navigation'; -import { moodImages_mu } from '@/data/database'; +import { group1, group2, group3 } from '@/data/database'; import ArrowBack from '@/data/arrowLeft.svg'; import IsChecked from '@/data/whiteCheck.svg'; +import MoodImageGroup from '@/components/MoodImageGroup'; const SelectMood = () => { const router = useRouter(); @@ -29,7 +30,7 @@ const SelectMood = () => { }; return ( -
+
Back @@ -48,29 +49,22 @@ const SelectMood = () => {

3장의 사진을 선택해주세요 (수정예정)

-
- {moodImages_mu.map((image) => ( -
toggleMood(image.id)} - > - {image.alt} - {selectedMoods.includes(image.id) && ( -
- {'checked'} -
- )} -
- ))} +
+ + +
diff --git a/src/components/MoodImageGroup.tsx b/src/components/MoodImageGroup.tsx new file mode 100644 index 0000000..97c8537 --- /dev/null +++ b/src/components/MoodImageGroup.tsx @@ -0,0 +1,44 @@ +import Image from 'next/image'; +import IsChecked from '@/data/whiteCheck.svg'; +import { MoodImage } from '@/types'; + +interface MoodImageGroupProps { + images: MoodImage[]; + selectedMoods: number[]; + toggleMood: (id: number) => void; +} + +const MoodImageGroup = ({ + images, + selectedMoods, + toggleMood, +}: MoodImageGroupProps) => { + return ( +
+ {images.map((image) => ( +
toggleMood(image.id)} + > + {image.alt} + {selectedMoods.includes(image.id) && ( +
+ {'checked'} +
+ )} +
+ ))} +
+ ); +}; + +export default MoodImageGroup; diff --git a/src/data/database.ts b/src/data/database.ts index 96ca4cf..270c8c0 100644 --- a/src/data/database.ts +++ b/src/data/database.ts @@ -150,3 +150,7 @@ export const moodImages_mu: MoodImage[] = [ { id: 11, src: image_1, alt: 'Mood 5' }, { id: 12, src: image_2, alt: 'Mood 6' }, ]; + +export const group1 = moodImages_mu.slice(0, 4); +export const group2 = moodImages_mu.slice(4, 8); +export const group3 = moodImages_mu.slice(8, 12); From 3f1f9661f44faf7e2878c20c9b66754ee09c42f9 Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 17:59:37 +0900 Subject: [PATCH 5/7] =?UTF-8?q?fix:=20=EB=B2=84=ED=8A=BC=20=ED=95=98?= =?UTF-8?q?=EB=8B=A8=20fixed=20=EC=B2=98=EB=A6=AC(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/photographer/page.tsx | 21 +++++++++------- src/app/request-custom/page.tsx | 35 +++++++++++++++----------- src/app/request-notification/page.tsx | 35 ++++++++++++++++++++++---- src/app/select-mood/page.tsx | 36 ++++++++++++++------------- src/app/select-type/page.tsx | 34 +++++++++++++------------ 5 files changed, 100 insertions(+), 61 deletions(-) diff --git a/src/app/photographer/page.tsx b/src/app/photographer/page.tsx index ddbd695..9ec64a3 100644 --- a/src/app/photographer/page.tsx +++ b/src/app/photographer/page.tsx @@ -40,7 +40,7 @@ const RecommendedPhotographers = () => { } return ( -
+
Back @@ -54,7 +54,7 @@ const RecommendedPhotographers = () => { 작가님이에요. 자세히 보기를 통해 작가님의 정보를 확인하고 그리던 사진을 촬영해요 -
+
{selectedPhotographers.map((photographer) => (
{
))}
-
- - 맞춤형 작가 요청하기 - + +
+
+ + 맞춤형 작가 요청하기 + +
); diff --git a/src/app/request-custom/page.tsx b/src/app/request-custom/page.tsx index 3062545..c5cb7ef 100644 --- a/src/app/request-custom/page.tsx +++ b/src/app/request-custom/page.tsx @@ -1,7 +1,6 @@ 'use client'; import { ChangeEvent, useState } from 'react'; -import Link from 'next/link'; import Image from 'next/image'; import ArrowBack from '@/data/arrowLeft.svg'; import { useRouter } from 'next/navigation'; @@ -13,16 +12,22 @@ const RequestCustom = () => { }; const [text, setText] = useState(''); + const [phoneNumber, setPhoneNumber] = useState(''); const handleTextChange = (e: ChangeEvent) => { setText(e.target.value); }; + const handlePhoneNumberChange = (e: ChangeEvent) => { + setPhoneNumber(e.target.value); + }; + const isOverLimit = text.length > 600; const isTextEntered = text.length > 0; + const isPhoneNumberEntered = phoneNumber.trim().length > 0; return ( -
+
Back @@ -44,6 +49,8 @@ const RequestCustom = () => { - - 요청하기 - +
+
+ +
); diff --git a/src/app/request-notification/page.tsx b/src/app/request-notification/page.tsx index 267dbfc..21d9f3b 100644 --- a/src/app/request-notification/page.tsx +++ b/src/app/request-notification/page.tsx @@ -1,19 +1,33 @@ 'use client'; -import { ChangeEvent, useState } from 'react'; +import { useState } from 'react'; import Link from 'next/link'; import Image from 'next/image'; import Close from '@/data/close.svg'; import Instagram from '@/data/instagram.svg'; +import { useRouter } from 'next/navigation'; const RequestNotification = () => { + const router = useRouter(); + const backFunction = () => { + router.back(); + }; + + const [phoneNumber, setPhoneNumber] = useState(''); + + const handlePhoneNumberChange = (e: React.ChangeEvent) => { + setPhoneNumber(e.target.value); + }; + + const isPhoneNumberEntered = phoneNumber.trim().length > 0; + return (
- +
Back
- +

칙스냅이 오픈되면, 알려드릴게요!

@@ -34,6 +48,8 @@ const RequestNotification = () => { - +
diff --git a/src/app/select-mood/page.tsx b/src/app/select-mood/page.tsx index f1a2760..19f89bc 100644 --- a/src/app/select-mood/page.tsx +++ b/src/app/select-mood/page.tsx @@ -30,7 +30,7 @@ const SelectMood = () => { }; return ( -
+
Back @@ -49,7 +49,7 @@ const SelectMood = () => {

3장의 사진을 선택해주세요 (수정예정)

-
+
{ />
-
- - 다음 - +
+
+ + 다음 + +
); diff --git a/src/app/select-type/page.tsx b/src/app/select-type/page.tsx index edd369a..8758654 100644 --- a/src/app/select-type/page.tsx +++ b/src/app/select-type/page.tsx @@ -28,7 +28,7 @@ const SelectType = () => { }; return ( -
+
Back @@ -89,21 +89,23 @@ const SelectType = () => {
))}
-
- 0 - ? `/select-mood?type=${selectedTypes.join(',')}` - : '#' - } - className={ - selectedTypes.length > 0 - ? 'btn-primary body-3 fixed bottom-[1rem] w-[calc(100%-2rem)] lg:w-full lg:absolute lg:bottom-[1rem] md:w-full md:absolute md:bottom-[1rem] sm:w-full sm:absolute sm:bottom-[1rem]' - : 'btn-default body-3 pointer-events-none fixed bottom-[1rem] w-[calc(100%-2rem)] lg:w-full lg:absolute lg:bottom-[1rem] md:w-full md:absolute md:bottom-[1rem] sm:w-full sm:absolute sm:bottom-[1rem]' - } - > - 다음 - +
+
+ 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' + } + > + 다음 + +
); From 677fcb5004c1b2f363ed6c8976760352d6944481 Mon Sep 17 00:00:00 2001 From: HIHJH <2170095@ewhain.net> Date: Thu, 22 Aug 2024 18:21:38 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=EB=A7=9E=EC=B6=A4=20=EC=9E=91?= =?UTF-8?q?=EA=B0=80=20=EC=9A=94=EC=B2=AD=20api=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/app/api/apis.ts | 22 +++++++++++ src/app/request-custom/page.tsx | 35 +++++++++++++++--- yarn.lock | 65 +++++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 src/app/api/apis.ts diff --git a/package.json b/package.json index ca9f96b..90e1608 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "lint": "next lint" }, "dependencies": { + "axios": "^1.7.4", "next": "14.1.2", "react": "^18", "react-dom": "^18", @@ -16,6 +17,7 @@ "react-range": "^1.10.0" }, "devDependencies": { + "@types/axios": "^0.14.0", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", diff --git a/src/app/api/apis.ts b/src/app/api/apis.ts new file mode 100644 index 0000000..93c114a --- /dev/null +++ b/src/app/api/apis.ts @@ -0,0 +1,22 @@ +import axios from 'axios'; + +interface SubmitFormData { + phone_number: string; + prefer_style: string; +} + +export const submitForm = async (data: SubmitFormData): Promise => { + try { + console.log(data); + const response = await axios.post( + 'https://api.chiksnap.site/recommend', + data, + ); + + if (response.status !== 200) { + throw new Error('전송 실패'); + } + } catch (error) { + throw new Error('실패: ' + error); + } +}; diff --git a/src/app/request-custom/page.tsx b/src/app/request-custom/page.tsx index c5cb7ef..f4c3109 100644 --- a/src/app/request-custom/page.tsx +++ b/src/app/request-custom/page.tsx @@ -4,6 +4,7 @@ import { ChangeEvent, useState } from 'react'; import Image from 'next/image'; import ArrowBack from '@/data/arrowLeft.svg'; import { useRouter } from 'next/navigation'; +import { submitForm } from '../api/apis'; const RequestCustom = () => { const router = useRouter(); @@ -13,6 +14,7 @@ const RequestCustom = () => { const [text, setText] = useState(''); const [phoneNumber, setPhoneNumber] = useState(''); + const [loading, setLoading] = useState(false); const handleTextChange = (e: ChangeEvent) => { setText(e.target.value); @@ -26,6 +28,26 @@ const RequestCustom = () => { const isTextEntered = text.length > 0; const isPhoneNumberEntered = phoneNumber.trim().length > 0; + const handleSubmit = async () => { + console.log(phoneNumber); + console.log(text); + if (!isPhoneNumberEntered) return; + + setLoading(true); + + try { + await submitForm({ phone_number: phoneNumber, prefer_style: text }); + + alert('요청이 성공적으로 전송되었습니다.'); + router.push('/'); + } catch (error) { + console.error('실패: ', error); + alert('요청 전송에 실패했습니다. 다시 시도해주세요.'); + } finally { + setLoading(false); + } + }; + return (
@@ -63,7 +85,7 @@ const RequestCustom = () => {