From f78f9a24cbb5e10ae7224c09be43609dc8b45d04 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 6 Sep 2023 15:17:28 +0900 Subject: [PATCH 01/63] =?UTF-8?q?[=20chore=20]=20=EB=AA=A8=EB=93=A0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B6=80=EB=AA=A8=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=EB=A5=BC=20Layout=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/mypage/index.tsx | 1 + components/mypage/letters/[id].tsx | 1 + components/mypage/links/index.tsx | 1 - constant/siteList.ts | 2 +- pages/mypage/editWishes/index.tsx | 7 ++++++- pages/mypage/index.tsx | 5 +++-- pages/mypage/letters/[id].tsx | 5 +++-- pages/mypage/letters/[id]/[cakeId].tsx | 5 +++-- pages/mypage/links/[id].tsx | 5 +++-- pages/mypage/links/index.tsx | 5 +++-- pages/wishes/index.tsx | 7 ++++++- pages/wishes/share/index.tsx | 5 +++-- styles/GlobalStyle.tsx | 5 +++-- 13 files changed, 36 insertions(+), 18 deletions(-) diff --git a/components/mypage/index.tsx b/components/mypage/index.tsx index 93d5dbfc..c5817c3d 100644 --- a/components/mypage/index.tsx +++ b/components/mypage/index.tsx @@ -14,6 +14,7 @@ import { CakeProfileImg } from '@/public/assets/images'; import { useEffect, useState } from 'react'; import useInitEditWishesInfo from '@/hooks/mypage/useInitEditWishesInfo'; import { deleteUserInfo } from '@/api/mypage/mypageAPI'; +import Layout from '../common/layout'; export default function MyPageContainer() { const { isOpen, handleToggle } = useModal(); diff --git a/components/mypage/letters/[id].tsx b/components/mypage/letters/[id].tsx index 776fb87c..64b3b79a 100644 --- a/components/mypage/letters/[id].tsx +++ b/components/mypage/letters/[id].tsx @@ -10,6 +10,7 @@ import { ArrowLeftIc, ArrowRightIc } from '@/public/assets/icons'; import { useRouter } from 'next/router'; import { useGetCakesLetters } from '@/hooks/queries/letters/useGetCakeLetters'; import { CAKE_LIST } from '@/constant/cakeList'; +import Layout from '@/components/common/layout'; export default function LettersContainer() { const [wishId, setWishId] = useState(''); diff --git a/components/mypage/links/index.tsx b/components/mypage/links/index.tsx index 9295f3ea..5f9eb3cf 100644 --- a/components/mypage/links/index.tsx +++ b/components/mypage/links/index.tsx @@ -58,7 +58,6 @@ export default function LinksMainContainer() { {noWishes ? : } - ); } diff --git a/constant/siteList.ts b/constant/siteList.ts index 2d785d58..ede78c04 100644 --- a/constant/siteList.ts +++ b/constant/siteList.ts @@ -3,7 +3,7 @@ import { SiteDataType } from '@/types/siteDataType'; export const SITE_LIST = { TWENTY_NINE: { - NAME: 'naverShopping', + NAME: 'twentynine', LINK: 'https://www.29cm.co.kr/', LOGO: TwentynineLogoImg, IMAGE_TAG: 'ewptmlp5', diff --git a/pages/mypage/editWishes/index.tsx b/pages/mypage/editWishes/index.tsx index 899b3deb..05a8379c 100644 --- a/pages/mypage/editWishes/index.tsx +++ b/pages/mypage/editWishes/index.tsx @@ -1,5 +1,10 @@ +import Layout from '@/components/common/layout'; import EditWishesContainer from '@/components/mypage/EditWishes'; export default function EditWishespage() { - return ; + return ( + + + + ); } diff --git a/pages/mypage/index.tsx b/pages/mypage/index.tsx index 06cb3178..c19e1f77 100644 --- a/pages/mypage/index.tsx +++ b/pages/mypage/index.tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import MyPageContainer from '@/components/mypage'; export default function MyPage() { return ( - <> + - + ); } diff --git a/pages/mypage/letters/[id].tsx b/pages/mypage/letters/[id].tsx index b9f01a34..488de1a0 100644 --- a/pages/mypage/letters/[id].tsx +++ b/pages/mypage/letters/[id].tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import LettersMainContainer from '@/components/mypage/letters/lettersMain'; export default function LettersMainPage() { return ( - <> + - + ); } diff --git a/pages/mypage/letters/[id]/[cakeId].tsx b/pages/mypage/letters/[id]/[cakeId].tsx index 63100ee2..eb5593df 100644 --- a/pages/mypage/letters/[id]/[cakeId].tsx +++ b/pages/mypage/letters/[id]/[cakeId].tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import LettersContainer from '@/components/mypage/letters/[id]'; export default function LettersPage() { return ( - <> + - + ); } diff --git a/pages/mypage/links/[id].tsx b/pages/mypage/links/[id].tsx index a753fd23..41f35c90 100644 --- a/pages/mypage/links/[id].tsx +++ b/pages/mypage/links/[id].tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import LinksContainer from '@/components/mypage/links/[id]'; export default function LinksPage() { return ( - <> + - + ); } diff --git a/pages/mypage/links/index.tsx b/pages/mypage/links/index.tsx index 8a6d6f20..77155d5f 100644 --- a/pages/mypage/links/index.tsx +++ b/pages/mypage/links/index.tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import LinksMainContainer from '@/components/mypage/links'; export default function LinksMainPage() { return ( - <> + - + ); } diff --git a/pages/wishes/index.tsx b/pages/wishes/index.tsx index 97347944..6292698c 100644 --- a/pages/wishes/index.tsx +++ b/pages/wishes/index.tsx @@ -1,5 +1,10 @@ +import Layout from '@/components/common/layout'; import WishesFormContainer from '@/components/wishes/wishesForm'; export default function WishesFormPage() { - return ; + return ( + + + + ); } diff --git a/pages/wishes/share/index.tsx b/pages/wishes/share/index.tsx index 55435d9a..96a2c26b 100644 --- a/pages/wishes/share/index.tsx +++ b/pages/wishes/share/index.tsx @@ -1,9 +1,10 @@ +import Layout from '@/components/common/layout'; import ShareContainer from '@/components/wishes/share'; export default function SharePage() { return ( - <> + - + ); } diff --git a/styles/GlobalStyle.tsx b/styles/GlobalStyle.tsx index 23dadbde..75b678f1 100644 --- a/styles/GlobalStyle.tsx +++ b/styles/GlobalStyle.tsx @@ -36,10 +36,12 @@ const GlobalStyle = createGlobalStyle` text-decoration: none; color: inherit; } - input, button { + textarea, input, button { outline: none; border: none; background-color: transparent; + color:inherit; + font : inherit } button { cursor: pointer; @@ -47,7 +49,6 @@ const GlobalStyle = createGlobalStyle` } input { appearance: none; - &:focus { outline: none; } From 6ea68795c8ea1a5e7c58c11f660218250faaa300 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 6 Sep 2023 19:31:03 +0900 Subject: [PATCH 02/63] =?UTF-8?q?[=20fix=20]=2015,34,36,40=EB=B2=88=20QA?= =?UTF-8?q?=20=EB=B2=84=ED=8A=BC=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/layout.tsx | 4 +- components/wishes/wishesForm/BankInfo.tsx | 56 ++++---- components/wishes/wishesForm/Preview.tsx | 78 +++++----- components/wishes/wishesForm/WisehsStep2.tsx | 106 +++++++------- components/wishes/wishesForm/WishesStep1.tsx | 141 ++++++++++--------- components/wishes/wishesForm/index.tsx | 55 ++++---- styles/GlobalStyle.tsx | 7 + 7 files changed, 245 insertions(+), 202 deletions(-) diff --git a/components/common/layout.tsx b/components/common/layout.tsx index 57189b35..941c3dba 100644 --- a/components/common/layout.tsx +++ b/components/common/layout.tsx @@ -31,6 +31,8 @@ const Styled = { Container: styled.div` width: 37.5rem; - padding: 2.2rem; + height: 100svh; + + padding: 2.2rem 2.2rem 0 2.2rem; `, }; diff --git a/components/wishes/wishesForm/BankInfo.tsx b/components/wishes/wishesForm/BankInfo.tsx index 2976d4ef..7acf1a5b 100644 --- a/components/wishes/wishesForm/BankInfo.tsx +++ b/components/wishes/wishesForm/BankInfo.tsx @@ -53,27 +53,28 @@ export default function BankInfo() { }, [phone]); return ( - <> - {titleText} - - - - - +
+ {titleText} + - - {phone && isAlertState && 올바른 연락처를 입력해주세요} + + + + + {phone && isAlertState && 올바른 연락처를 입력해주세요} +
완료 - + ); } const Styled = { + Container: styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100%; + `, + InputTitle: styled.p` ${theme.fonts.body16}; color: ${theme.colors.main_blue}; `, ButtonWrapper: styled.div` - position: absolute; - bottom: 4.6rem; - display: flex; justify-content: space-between; - width: 33.5rem; + width: 100%; + + margin-bottom: 4.6rem; `, }; diff --git a/components/wishes/wishesForm/Preview.tsx b/components/wishes/wishesForm/Preview.tsx index da22e6ce..30da0b6b 100644 --- a/components/wishes/wishesForm/Preview.tsx +++ b/components/wishes/wishesForm/Preview.tsx @@ -47,38 +47,40 @@ export default function Preview(props: PreviewProps) { }, [isAgreed]); return ( - <> - - {convertDateToString(wishesData.startDate)}~{convertDateToString(wishesData.endDate)} - - - - - - 선물이미지 미리보기 - - - - 가격 : {convertMoneyText(String(wishesData.price))} - - - - - - - - - - - - - - + +
+ + {convertDateToString(wishesData.startDate)}~{convertDateToString(wishesData.endDate)} + + + + + + 선물이미지 미리보기 + + + + 가격 : {convertMoneyText(String(wishesData.price))} + + + + + + + + + + + + + + +
링크 생성하기 - +
); } const Styled = { + Container: styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100%; + `, + Period: styled.p` ${theme.fonts.body16}; color: ${theme.colors.main_blue}; @@ -117,6 +127,6 @@ const Styled = { `, ButtonWrapper: styled.div` - margin-top: 1.5rem; + padding-bottom: 4.6rem; `, }; diff --git a/components/wishes/wishesForm/WisehsStep2.tsx b/components/wishes/wishesForm/WisehsStep2.tsx index 6c97e1b3..aa2f2e55 100644 --- a/components/wishes/wishesForm/WisehsStep2.tsx +++ b/components/wishes/wishesForm/WisehsStep2.tsx @@ -62,51 +62,53 @@ export default function WishesStep2(props: WishesStep2Props) { }; return ( - <> - - - - - - - - - - - {/* 시작일 */} - - - - - {/* 종료일 */} - - - - - + +
+ + + + + + + + + + + {/* 시작일 */} + + + + + {/* 종료일 */} + + + + + +
소원링크 생성 완료! - +
); } const Styled = { + Container: styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100%; + `, + CalendarWrapper: styled.div` display: flex; justify-content: space-between; `, + ButtonWrapper: styled.div` - position: absolute; - bottom: 4.6rem; + margin-bottom: 4.6rem; `, }; diff --git a/components/wishes/wishesForm/WishesStep1.tsx b/components/wishes/wishesForm/WishesStep1.tsx index f36420ad..314b9173 100644 --- a/components/wishes/wishesForm/WishesStep1.tsx +++ b/components/wishes/wishesForm/WishesStep1.tsx @@ -74,71 +74,73 @@ export default function WishesStep1(props: WishesStep1Props) { }; return ( - <> - - {isLinkLoadType ? ( - - - - ) : ( - <> - - - {preSignedImageURL ? ( - - ) : ( - - ※ 등록 가능한 사진파일
• 파일용량 : 10MB 이하 - - 업로드 아이콘 - -
- )} - -
- {imageFile && !validation.checkImageFileSize(imageFile.size) && ( - 사진은 10MB 이하로 업로드해주세요! - )} -
- - - +
+ + {isLinkLoadType ? ( + + - - )} - - - - + ) : ( + <> + + + {preSignedImageURL ? ( + + ) : ( + + ※ 등록 가능한 사진파일
• 파일용량 : 10MB 이하 + + 업로드 아이콘 + +
+ )} + +
+ {imageFile && !validation.checkImageFileSize(imageFile.size) && ( + 사진은 10MB 이하로 업로드해주세요! + )} +
+ + + + + + )} + + + + +
다음 - + ); } const Styled = { + Container: styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100%; + `, + UploadImageBox: styled.div` display: flex; justify-content: center; @@ -174,7 +184,6 @@ const Styled = { `, ButtonWrapper: styled.div` - position: absolute; - bottom: 4.6rem; + margin-bottom: 4.6rem; `, }; diff --git a/components/wishes/wishesForm/index.tsx b/components/wishes/wishesForm/index.tsx index e0a249b9..4e5cea83 100644 --- a/components/wishes/wishesForm/index.tsx +++ b/components/wishes/wishesForm/index.tsx @@ -20,39 +20,36 @@ export default function WishesFormContainer() { return ( - <> - {/* Header */} - - 뒤로가기 - - - {/* Title */} - - 선물 이미지 - { - { - 1: 소원링크 생성하기, - 2: 소원링크 생성하기, - 3: 소원링크 화면 미리보기, - 4: 계좌번호 및 연락처 입력하기, - }[stepIndex] - } - - + {/* Header */} + + 뒤로가기 + + {/* Title */} + + 선물 이미지 { { - 1: , - 2: , - 3: , - 4: , + 1: 소원링크 생성하기, + 2: 소원링크 생성하기, + 3: 소원링크 화면 미리보기, + 4: 계좌번호 및 연락처 입력하기, }[stepIndex] } - + + + { + { + 1: , + 2: , + 3: , + 4: , + }[stepIndex] + } ); } diff --git a/styles/GlobalStyle.tsx b/styles/GlobalStyle.tsx index 75b678f1..2e5cde6c 100644 --- a/styles/GlobalStyle.tsx +++ b/styles/GlobalStyle.tsx @@ -12,6 +12,9 @@ const GlobalStyle = createGlobalStyle` transition: ${createTransitionQuery()}; -webkit-tap-highlight-color:rgba(0,0,0,0); // 아이폰 버튼 클릭 깜박임 해제 + } + :root { + --vh: 100%; } html { @@ -28,6 +31,10 @@ const GlobalStyle = createGlobalStyle` background-color: ${theme.colors.background}; } + body{ + overflow: scroll; + } + ul, li { padding-left: 0rem; list-style: none; From 16544210360490cc6a0c29a9b35aeb7685fd8bdc Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 6 Sep 2023 19:47:28 +0900 Subject: [PATCH 03/63] =?UTF-8?q?[=20fix=20]=2024,25,26=20=EA=B3=84?= =?UTF-8?q?=EC=A2=8C,=EC=97=B0=EB=9D=BD=EC=B2=98=20=EC=88=AB=EC=9E=90?= =?UTF-8?q?=EB=A7=8C=20=EC=9E=85=EB=A0=A5=ED=98=95=EC=8B=9D=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/BankInput.tsx | 10 +++++++--- validation/input.ts | 5 ++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/components/common/modal/BankInput.tsx b/components/common/modal/BankInput.tsx index 5a92c5c1..98190d00 100644 --- a/components/common/modal/BankInput.tsx +++ b/components/common/modal/BankInput.tsx @@ -6,6 +6,7 @@ import styled from 'styled-components'; import { validation } from '@/validation/input'; import AlertTextBox from '../alertTextBox'; import { ChangeEvent } from 'react'; +import { ALERT_ACCOUNT_LENGTH } from '@/constant/alertMessage'; interface BankInputProps { name: string; @@ -37,12 +38,15 @@ export default function BankInput(props: BankInputProps) { { + e.target.value = e.target.value.replace(/[^0-9]/g, ''); + handleChangeAccount(e); + }} value={account || ''} /> - {validation.isIncludeHyphen(account) && ( - 계좌번호는 (-)없이 입력해주세요 + {validation.checkAccountLength(account) && ( + {ALERT_ACCOUNT_LENGTH} )} {isOpen && ( diff --git a/validation/input.ts b/validation/input.ts index 56724a13..6a6df8e2 100644 --- a/validation/input.ts +++ b/validation/input.ts @@ -28,7 +28,10 @@ export const validation = { }, checkImageFileSize(size: number) { - console.log(size); return size < IMAGE_FILE_SIZE; }, + + checkAccountLength(input: string) { + if (input) return input.length < 10 || input.length > 14; + }, }; From 02ac0a2169682409edfd1f58d77717bbdac1bdcf Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 6 Sep 2023 20:00:59 +0900 Subject: [PATCH 04/63] =?UTF-8?q?[=20fix=20]=20=ED=91=B8=ED=84=B0=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98,=20=EB=B2=84=ED=8A=BC=20=EC=9C=84=EC=B9=98?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/footer.tsx | 1 - components/login/index.tsx | 20 ++++++-------------- pages/index.tsx | 8 +++----- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/components/common/footer.tsx b/components/common/footer.tsx index 63526e9a..6065d13b 100644 --- a/components/common/footer.tsx +++ b/components/common/footer.tsx @@ -47,7 +47,6 @@ const Styled = { width: 37.5rem; background-color: ${theme.colors.main_blue}; padding: 2.9rem 2.2rem; - margin: 8.12rem 0 0 0; `, HorizontalLine: styled.div` diff --git a/components/login/index.tsx b/components/login/index.tsx index 7b447146..61f0932e 100644 --- a/components/login/index.tsx +++ b/components/login/index.tsx @@ -5,7 +5,6 @@ import { KakaoLoginIc } from '@/public/assets/icons'; import BasicBox from '../common/box/BasicBox'; import Button from '../common/button/button'; import MainView from '../common/mainView'; -import Footer from '../common/footer'; export default function LoginContainer() { const KAKAO_AUTH_URL = `https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${process.env.NEXT_PUBLIC_KAKAO_RESTAPI_KEY}&redirect_uri=${process.env.NEXT_PUBLIC_KAKAO_REDIRECT_URI}`; @@ -16,14 +15,12 @@ export default function LoginContainer() { - - - - - + + + ); } @@ -35,11 +32,6 @@ const Styled = { align-items: center; `, - ButtonWrapper: styled.div` - position: fixed; - top: 60rem; -`, - KakaoLoginIcon: styled((props) => ( 카카오로그인아이콘 ))` diff --git a/pages/index.tsx b/pages/index.tsx index 5b4c0658..0244fdd1 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -3,10 +3,8 @@ import LoginContainer from '@/components/login'; export default function LoginPage() { return ( - <> - - - - + + + ); } From a4f8e3ece9c5580e34911d0c730b4a464e0bbd7c Mon Sep 17 00:00:00 2001 From: nkavay Date: Wed, 6 Sep 2023 20:16:42 +0900 Subject: [PATCH 05/63] =?UTF-8?q?[fix]=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/mypage/links/[id].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mypage/links/[id].tsx b/components/mypage/links/[id].tsx index 963000cd..02e7db64 100644 --- a/components/mypage/links/[id].tsx +++ b/components/mypage/links/[id].tsx @@ -37,7 +37,7 @@ export default function LinksContainer() { - 케이크 + 케이크 모인 케이크 보러가기 {'>'} 총 {wishData?.price}원 From e84fe23de75481b42536b4cf5a96e73d0ff673aa Mon Sep 17 00:00:00 2001 From: nkavay Date: Wed, 6 Sep 2023 20:25:20 +0900 Subject: [PATCH 06/63] =?UTF-8?q?[fix]=20mypage=20=ED=8F=B0=ED=8A=B8=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/mypage/index.tsx | 2 +- components/mypage/itemBox.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/mypage/index.tsx b/components/mypage/index.tsx index 586c331f..63b1c93c 100644 --- a/components/mypage/index.tsx +++ b/components/mypage/index.tsx @@ -124,7 +124,7 @@ const Styled = { `, TextContainer: styled.button` - ${theme.fonts.button16_2}; + ${theme.fonts.button18}; color: ${theme.colors.main_blue}; text-decoration: underline; `, diff --git a/components/mypage/itemBox.tsx b/components/mypage/itemBox.tsx index 83d3fe6c..4f31f770 100644 --- a/components/mypage/itemBox.tsx +++ b/components/mypage/itemBox.tsx @@ -32,7 +32,7 @@ const Styled = { padding: 0rem 1.5rem; border-radius: 1rem; margin: 0 0 1rem; - ${theme.fonts.button16_2}; + ${theme.fonts.button18}; background-color: ${(props) => props.backgroundColor || theme.colors.pastel_blue}; color: ${(props) => props.color || theme.colors.main_blue}; `, From da728bc645a167b7a27fabbcaa8a47b789c831be Mon Sep 17 00:00:00 2001 From: nkavay Date: Wed, 6 Sep 2023 23:10:06 +0900 Subject: [PATCH 07/63] =?UTF-8?q?[fix]=20=ED=8E=80=EB=94=A9=EA=B8=B0?= =?UTF-8?q?=EA=B0=84=EC=9D=B4=20=EC=95=84=EB=8B=90=20=EC=8B=9C=20=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=20=EB=B0=8F=20=ED=8E=80=EB=94=A9=EC=9D=B4=20=EB=B6=88?= =?UTF-8?q?=EA=B0=80=ED=95=98=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/[id].tsx | 5 +++++ components/wishes/share/index.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/wishes/[id].tsx b/components/wishes/[id].tsx index d5204a59..e9d6543e 100644 --- a/components/wishes/[id].tsx +++ b/components/wishes/[id].tsx @@ -18,6 +18,11 @@ export default function WishesContainer() { }, [router.isReady]); const { data } = useQuery('wished', async () => getWishesData(Number(wishesId)), { + onError: (error: any) => { + console.error("에러 발생:", error); + alert("해당 소원의 펀딩이 아직 가능하지 않습니다. 펀딩 기간을 확인해주세요."); + router.back(); + }, enabled: wishesId !== '', }); diff --git a/components/wishes/share/index.tsx b/components/wishes/share/index.tsx index b89f7752..068312b9 100644 --- a/components/wishes/share/index.tsx +++ b/components/wishes/share/index.tsx @@ -26,7 +26,7 @@ export default function ShareContainer() { useEffect(() => { setNicknameState(loginUserInfo.nickName); - setStatus('while') + setStatus(wishStatus); }, [loginUserInfo, wishStatus]); From 4b2cb0ff398e253c1e852ae8b618769c11064a27 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Thu, 7 Sep 2023 22:25:50 +0900 Subject: [PATCH 08/63] =?UTF-8?q?[=20style=20]=20=EC=A0=84=EC=97=AD=20?= =?UTF-8?q?=EC=8A=A4=ED=83=80=EC=9D=BC=20=EC=9E=AC=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/layout.tsx | 2 +- components/common/modal/BankModal.tsx | 2 +- components/login/index.tsx | 16 ++++++++++++---- components/main/index.tsx | 11 ++++++++++- components/wishes/wishesForm/WisehsStep2.tsx | 2 +- components/wishes/wishesForm/WishesStep1.tsx | 2 +- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/components/common/layout.tsx b/components/common/layout.tsx index 941c3dba..8864639f 100644 --- a/components/common/layout.tsx +++ b/components/common/layout.tsx @@ -31,7 +31,7 @@ const Styled = { Container: styled.div` width: 37.5rem; - height: 100svh; + height: 100%; padding: 2.2rem 2.2rem 0 2.2rem; `, diff --git a/components/common/modal/BankModal.tsx b/components/common/modal/BankModal.tsx index 9c2a53e9..a24f55ef 100644 --- a/components/common/modal/BankModal.tsx +++ b/components/common/modal/BankModal.tsx @@ -49,7 +49,7 @@ const Styled = { `, BankContainer: styled.div` - height: 93%; + height: 91.4%; overflow: auto; ::-webkit-scrollbar { display: none; diff --git a/components/login/index.tsx b/components/login/index.tsx index 61f0932e..3ed36d33 100644 --- a/components/login/index.tsx +++ b/components/login/index.tsx @@ -15,12 +15,16 @@ export default function LoginContainer() { - - - + + ); } @@ -32,6 +36,10 @@ const Styled = { align-items: center; `, + ButtonWrapper: styled.div` + margin-bottom: 10.4rem; + `, + KakaoLoginIcon: styled((props) => ( 카카오로그인아이콘 ))` diff --git a/components/main/index.tsx b/components/main/index.tsx index 02912b84..f085441f 100644 --- a/components/main/index.tsx +++ b/components/main/index.tsx @@ -5,6 +5,7 @@ import useGetProgressData from '@/hooks/queries/main/useGetProgressData'; import { useEffect, useState } from 'react'; import { useSetRecoilState } from 'recoil'; import { LoginUserInfo } from '@/recoil/auth/loginUserInfo'; +import styled from 'styled-components'; export default function MainContainer() { const [status, setStatus] = useState('none'); @@ -35,7 +36,15 @@ export default function MainContainer() { price={progressData ? progressData.price : 0} /> - + ); From bbff0d8ca7b44eeb1bf85ae34376664dd3065a0e Mon Sep 17 00:00:00 2001 From: nkavay Date: Sun, 10 Sep 2023 23:07:07 +0900 Subject: [PATCH 14/63] =?UTF-8?q?[fix]=20console.log=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=A7=80=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hooks/queries/login/useAuthKakao.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/hooks/queries/login/useAuthKakao.ts b/hooks/queries/login/useAuthKakao.ts index e49d9e09..cefd2069 100644 --- a/hooks/queries/login/useAuthKakao.ts +++ b/hooks/queries/login/useAuthKakao.ts @@ -40,7 +40,6 @@ export default function useAuthKakao() { useEffect(() => { if (authCode) { - console.log('useEffect', authCode); kakaoLoginMutate(); } }, [authCode, kakaoLoginMutate]); From 8e99980b8c36a042652f6e4afee528a186e8c466 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 11 Sep 2023 18:27:36 +0900 Subject: [PATCH 15/63] =?UTF-8?q?[=20fix=20]=2022=EB=B2=88=20=ED=8F=B0?= =?UTF-8?q?=ED=8A=B8=20=EA=B0=84=EA=B2=A9=20=EB=B0=8F=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/input/inputContainer.tsx | 4 +-- components/wishes/wishesForm/BankInfo.tsx | 40 ++++++++++------------ components/wishes/wishesForm/itemLink.tsx | 3 -- styles/GlobalStyle.tsx | 27 +++++++++++++++ styles/theme.ts | 4 +-- utils/common/getDate.ts | 2 +- 6 files changed, 50 insertions(+), 30 deletions(-) diff --git a/components/common/input/inputContainer.tsx b/components/common/input/inputContainer.tsx index 96d4eecc..37d7e5ca 100644 --- a/components/common/input/inputContainer.tsx +++ b/components/common/input/inputContainer.tsx @@ -22,10 +22,10 @@ const Styled = { margin-bottom: 2.4rem; `, - InputTitle: styled.p` + InputTitle: styled.h4` ${theme.fonts.body16}; color: ${theme.colors.main_blue}; - margin-bottom: 2rem; + margin-bottom: 1.2rem; `, }; diff --git a/components/wishes/wishesForm/BankInfo.tsx b/components/wishes/wishesForm/BankInfo.tsx index 7acf1a5b..e5a6aabb 100644 --- a/components/wishes/wishesForm/BankInfo.tsx +++ b/components/wishes/wishesForm/BankInfo.tsx @@ -55,25 +55,26 @@ export default function BankInfo() { return (
- {titleText} - - - - + - - {phone && isAlertState && 올바른 연락처를 입력해주세요} + + + + + {phone && isAlertState && 올바른 연락처를 입력해주세요} +
@@ -102,11 +103,6 @@ const Styled = { height: 100%; `, - InputTitle: styled.p` - ${theme.fonts.body16}; - color: ${theme.colors.main_blue}; - `, - ButtonWrapper: styled.div` display: flex; justify-content: space-between; diff --git a/components/wishes/wishesForm/itemLink.tsx b/components/wishes/wishesForm/itemLink.tsx index 0d54ec37..0ca8877a 100644 --- a/components/wishes/wishesForm/itemLink.tsx +++ b/components/wishes/wishesForm/itemLink.tsx @@ -47,9 +47,6 @@ export default function ItemLink(props: ItemLinkProps) { const imageData = extractImageSrc(data?.imageTag?.data?.data); const priceData = extractPrice(data?.priceTag?.data?.data, linkURL); - console.log(imageData); - console.log(priceData); - if (imageData && priceData) { changeImageURL(imageData); changePrice(priceData); diff --git a/styles/GlobalStyle.tsx b/styles/GlobalStyle.tsx index 2e5cde6c..1a586042 100644 --- a/styles/GlobalStyle.tsx +++ b/styles/GlobalStyle.tsx @@ -5,6 +5,33 @@ import theme from './theme'; const GlobalStyle = createGlobalStyle` ${reset} +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + * { box-sizing: border-box; -moz-box-sizing:border-box !important; /* Firefox */ diff --git a/styles/theme.ts b/styles/theme.ts index 8bb63ce3..41a49b65 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -32,7 +32,7 @@ function FONT({ family, weight, size, lineHeight, letterSpacing }: Font): string font-weight: ${weight}; font-size: ${size}rem; line-height: ${lineHeight}; - ${letterSpacing && `letter-spacing: -0.0${letterSpacing}rem;`} + ${letterSpacing && `letter-spacing: -${letterSpacing}rem;`} `; } @@ -42,7 +42,7 @@ const fonts = { headline24_100: FONT({ family: true, weight: 400, size: 2.4, lineHeight: '100%' }), headline24_130: FONT({ family: true, weight: 400, size: 2.4, lineHeight: '130%' }), headline30: FONT({ family: true, weight: 400, size: 3, lineHeight: '100%' }), - body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '3rem' }), + body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '150%', letterSpacing: 0.05 }), body14: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%' }), body12: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '2.2rem' }), button16: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '3rem' }), diff --git a/utils/common/getDate.ts b/utils/common/getDate.ts index ed45491e..366f4221 100644 --- a/utils/common/getDate.ts +++ b/utils/common/getDate.ts @@ -9,5 +9,5 @@ export const convertDateToString = (date: Date) => { const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); - return `${year}-${month}-${day}`; + return `${year}.${month}.${day}`; }; From c8a7e2ff040767a5651ee7e8564cdd00870bd005 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 11 Sep 2023 18:30:44 +0900 Subject: [PATCH 16/63] =?UTF-8?q?[=20fix=20]=2023=EB=B2=88=20-=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=8F=20=ED=8F=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/wishesForm/BankInfo.tsx | 3 +-- styles/theme.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/components/wishes/wishesForm/BankInfo.tsx b/components/wishes/wishesForm/BankInfo.tsx index e5a6aabb..2e3913a8 100644 --- a/components/wishes/wishesForm/BankInfo.tsx +++ b/components/wishes/wishesForm/BankInfo.tsx @@ -71,9 +71,8 @@ export default function BankInfo() { handleChangeValue={handleChangePhone} value={phone} /> + {phone && isAlertState && 올바른 연락처를 입력해주세요}
- - {phone && isAlertState && 올바른 연락처를 입력해주세요}
diff --git a/styles/theme.ts b/styles/theme.ts index 41a49b65..24f68e23 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -44,7 +44,7 @@ const fonts = { headline30: FONT({ family: true, weight: 400, size: 3, lineHeight: '100%' }), body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '150%', letterSpacing: 0.05 }), body14: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%' }), - body12: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '2.2rem' }), + body12: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '140%' }), button16: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '3rem' }), button18: FONT({ family: true, weight: 400, size: 1.8, lineHeight: '3rem' }), button16_2: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '2rem' }), From 0f45ace49afd69041d232ca22c834fc9306e5136 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Tue, 12 Sep 2023 12:45:16 +0900 Subject: [PATCH 17/63] =?UTF-8?q?[=20fix=20]=2037=EB=B2=88=20-=20=EC=88=98?= =?UTF-8?q?=EC=88=98=EB=A3=8C=20=EB=8F=99=EC=9D=98=EB=A5=BC=20=EB=88=84?= =?UTF-8?q?=EB=A5=B4=EB=A9=B4=20=EB=B0=94=EB=A1=9C=20=EC=86=8C=EC=9B=90?= =?UTF-8?q?=EB=A7=81=ED=81=AC=EA=B0=80=20=EC=83=9D=EC=84=B1=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EB=B0=A9=ED=96=A5=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/wishesForm/Preview.tsx | 21 +++++++++------------ hooks/queries/wishes/useCreateWishesLink.ts | 8 ++++++++ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/components/wishes/wishesForm/Preview.tsx b/components/wishes/wishesForm/Preview.tsx index 6f89e8c1..ffdc047b 100644 --- a/components/wishes/wishesForm/Preview.tsx +++ b/components/wishes/wishesForm/Preview.tsx @@ -21,25 +21,22 @@ interface PreviewProps { export default function Preview(props: PreviewProps) { const { handleNextStep } = props; - const { wishesData, postWishesData } = useCreateWishesLink(); + const { wishesData, postWishesData, isSuccess } = useCreateWishesLink(); const { isOpen, handleToggle } = useModal(); const [isAgreed, setIsAgreed] = useState(false); + useEffect(() => { + isAgreed && createLink(); + }, [isAgreed]); + const changeIsAgreed = (isChecked: boolean) => { - setTimeout(() => { - setIsAgreed(isChecked); - }, 300); + setIsAgreed(isChecked); }; const createLink = () => { - if (isAgreed) { - postWishesData(); - // return isSuccess && handleNextStep(); - return handleNextStep(); - } else { - return handleToggle(); - } + postWishesData(); + return isSuccess && handleNextStep(); }; useEffect(() => { @@ -89,7 +86,7 @@ export default function Preview(props: PreviewProps) { font={theme.fonts.button16} borderColor={'transparent'} > - + diff --git a/hooks/queries/wishes/useCreateWishesLink.ts b/hooks/queries/wishes/useCreateWishesLink.ts index 4556f84e..31760d53 100644 --- a/hooks/queries/wishes/useCreateWishesLink.ts +++ b/hooks/queries/wishes/useCreateWishesLink.ts @@ -1,12 +1,14 @@ import { createWishesLink } from '@/api/wishes/wishesAPI'; import { LoginUserInfo } from '@/recoil/auth/loginUserInfo'; import { WishesData } from '@/recoil/formPage/wishesData'; +import { useRouter } from 'next/router'; import { useMutation } from 'react-query'; import { useRecoilValue, useSetRecoilState } from 'recoil'; export function useCreateWishesLink() { const wishesData = useRecoilValue(WishesData); const setLoginUserInfo = useSetRecoilState(LoginUserInfo); + const router = useRouter(); const { mutate: postWishesData, isSuccess } = useMutation(() => createWishesLink(wishesData), { onSuccess: (data) => { @@ -15,6 +17,12 @@ export function useCreateWishesLink() { wishesId: data.data.data, })); }, + onError: (data) => { + if (data?.response?.data?.message === '이미 진행 중인 소원 링크가 있습니다.') { + alert('이미 진행 중인 소원 링크가 있습니다.'); + router.replace('/main'); + } + }, }); return { wishesData, postWishesData, isSuccess }; From 300a57c6dcbcdb7cc9cdea20fd59ca4d9121b4be Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Tue, 12 Sep 2023 23:21:17 +0900 Subject: [PATCH 18/63] =?UTF-8?q?[=20style=20]=20textStroke=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/theme.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/styles/theme.ts b/styles/theme.ts index 24f68e23..d324c0fa 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -24,15 +24,22 @@ interface Font { size: number; lineHeight: string; letterSpacing?: number; + textStroke?: number; } -function FONT({ family, weight, size, lineHeight, letterSpacing }: Font): string { +function FONT({ family, weight, size, lineHeight, letterSpacing, textStroke }: Font): string { return ` font-family: ${family ? 'bitbit' : 'Galmuri11'}; font-weight: ${weight}; font-size: ${size}rem; line-height: ${lineHeight}; - ${letterSpacing && `letter-spacing: -${letterSpacing}rem;`} + ${ + letterSpacing && + `letter-spacing: -${letterSpacing}rem; + ${textStroke && `-webkit-text-stroke: ${textStroke}rem`} + ` + } + `; } @@ -44,7 +51,7 @@ const fonts = { headline30: FONT({ family: true, weight: 400, size: 3, lineHeight: '100%' }), body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '150%', letterSpacing: 0.05 }), body14: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%' }), - body12: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '140%' }), + body12: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%', textStroke: 0.01 }), button16: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '3rem' }), button18: FONT({ family: true, weight: 400, size: 1.8, lineHeight: '3rem' }), button16_2: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '2rem' }), From 88dceb6a57c07b1939bdf43c137cfdf3326ec553 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Tue, 12 Sep 2023 23:43:14 +0900 Subject: [PATCH 19/63] =?UTF-8?q?[=20feat=20]=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=9C=A0=ED=9A=A8=20=EC=83=81=ED=83=9C=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/common/axios.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/api/common/axios.ts b/api/common/axios.ts index f1634d74..357266c6 100644 --- a/api/common/axios.ts +++ b/api/common/axios.ts @@ -1,6 +1,38 @@ +import PATH from '@/constant/path'; import axios from 'axios'; //서버통신 함수 export const client = axios.create({ baseURL: process.env.NEXT_PUBLIC_BASE_URL, }); + +client.interceptors.request.use(function (config: any) { + const token = localStorage.getItem('accessToken'); + + if (!token) { + config.headers['accessToken'] = null; + return config; + } + + if (config.headers && token) { + config.headers['Authorization'] = `Bearer ${token}`; + return config; + } + return config; +}); + +client.interceptors.response.use( + function (response) { + return response; + }, + async function (error) { + console.log(error); + + if (error.response && error.response.status === 401) { + if (error.response.data.message === '유효하지 않은 토큰입니다.') { + alert('로그인 상태를 확인해주세요!'); + window.location.replace('/'); + } + } + }, +); From 6bd25f8bccdaaa332f7d6b48c2604eb65062fca6 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 00:43:20 +0900 Subject: [PATCH 20/63] =?UTF-8?q?[=20fix=20]=20=EA=B3=84=EC=A2=8C=EB=B2=88?= =?UTF-8?q?=ED=98=B8=EA=B9=8C=EC=A7=80=20=EC=9E=85=EB=A0=A5=ED=95=98?= =?UTF-8?q?=EA=B3=A0=20=EC=86=8C=EC=9B=90=20=EC=83=9D=EC=84=B1=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/wishesForm/BankInfo.tsx | 5 ++++- components/wishes/wishesForm/Preview.tsx | 16 ++++------------ hooks/queries/wishes/useCreateWishesLink.ts | 10 +--------- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/components/wishes/wishesForm/BankInfo.tsx b/components/wishes/wishesForm/BankInfo.tsx index 2e3913a8..baa2e8e3 100644 --- a/components/wishes/wishesForm/BankInfo.tsx +++ b/components/wishes/wishesForm/BankInfo.tsx @@ -5,6 +5,7 @@ import Button from '@/components/common/button/button'; import InputBox from '@/components/common/input/inputBox'; import InputContainer from '@/components/common/input/inputContainer'; import BankInput from '@/components/common/modal/BankInput'; +import { useCreateWishesLink } from '@/hooks/queries/wishes/useCreateWishesLink'; import useGetUserAccount from '@/hooks/queries/wishes/useGetUserAccount'; import theme from '@/styles/theme'; import { validation } from '@/validation/input'; @@ -27,6 +28,7 @@ export default function BankInfo() { } = useGetUserAccount(); const [isAlertState, setIsAlertState] = useState(false); + const { postWishesData } = useCreateWishesLink(); const titleText = apiStatus ? '저번에 진행한 펀딩 정보를 가져왔어요.확인 후 변동 사항이 있다면 수정해주세요.' @@ -41,6 +43,7 @@ export default function BankInfo() { const uploadAccount = () => { if (name !== '' && bankName !== '' && account !== '' && !validation.isIncludeHyphen(account)) { + postWishesData(); mutate(); } else { alert('계좌정보를 확인 해 주세요!'); @@ -99,7 +102,7 @@ const Styled = { flex-direction: column; justify-content: space-between; - height: 100%; + height: 100svh; `, ButtonWrapper: styled.div` diff --git a/components/wishes/wishesForm/Preview.tsx b/components/wishes/wishesForm/Preview.tsx index ffdc047b..1a0c3d08 100644 --- a/components/wishes/wishesForm/Preview.tsx +++ b/components/wishes/wishesForm/Preview.tsx @@ -12,8 +12,9 @@ import TermsModal from '@/components/common/modal/TermsModal'; import useModal from '@/hooks/common/useModal'; import { convertMoneyText } from '@/utils/common/convertMoneyText'; import PresentBox from '@/components/common/box/PresentBox'; -import { useCreateWishesLink } from '@/hooks/queries/wishes/useCreateWishesLink'; import { convertDateToString } from '@/utils/common/getDate'; +import { useRecoilValue } from 'recoil'; +import { WishesData } from '@/recoil/formPage/wishesData'; interface PreviewProps { handleNextStep: () => void; @@ -21,28 +22,19 @@ interface PreviewProps { export default function Preview(props: PreviewProps) { const { handleNextStep } = props; - const { wishesData, postWishesData, isSuccess } = useCreateWishesLink(); + const wishesData = useRecoilValue(WishesData); const { isOpen, handleToggle } = useModal(); const [isAgreed, setIsAgreed] = useState(false); useEffect(() => { - isAgreed && createLink(); + isAgreed && handleNextStep(); }, [isAgreed]); const changeIsAgreed = (isChecked: boolean) => { setIsAgreed(isChecked); }; - const createLink = () => { - postWishesData(); - return isSuccess && handleNextStep(); - }; - - useEffect(() => { - isAgreed && handleToggle(); - }, [isAgreed]); - return (
diff --git a/hooks/queries/wishes/useCreateWishesLink.ts b/hooks/queries/wishes/useCreateWishesLink.ts index 31760d53..ed9caf3d 100644 --- a/hooks/queries/wishes/useCreateWishesLink.ts +++ b/hooks/queries/wishes/useCreateWishesLink.ts @@ -1,14 +1,12 @@ import { createWishesLink } from '@/api/wishes/wishesAPI'; import { LoginUserInfo } from '@/recoil/auth/loginUserInfo'; import { WishesData } from '@/recoil/formPage/wishesData'; -import { useRouter } from 'next/router'; import { useMutation } from 'react-query'; import { useRecoilValue, useSetRecoilState } from 'recoil'; export function useCreateWishesLink() { const wishesData = useRecoilValue(WishesData); const setLoginUserInfo = useSetRecoilState(LoginUserInfo); - const router = useRouter(); const { mutate: postWishesData, isSuccess } = useMutation(() => createWishesLink(wishesData), { onSuccess: (data) => { @@ -17,13 +15,7 @@ export function useCreateWishesLink() { wishesId: data.data.data, })); }, - onError: (data) => { - if (data?.response?.data?.message === '이미 진행 중인 소원 링크가 있습니다.') { - alert('이미 진행 중인 소원 링크가 있습니다.'); - router.replace('/main'); - } - }, }); - return { wishesData, postWishesData, isSuccess }; + return { postWishesData }; } From cd4becafecd098b76d7d44bdf2a082c0b9184461 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 00:43:36 +0900 Subject: [PATCH 21/63] =?UTF-8?q?[=20feat=20]=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/common/axios.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/common/axios.ts b/api/common/axios.ts index 357266c6..3b1b9249 100644 --- a/api/common/axios.ts +++ b/api/common/axios.ts @@ -26,12 +26,16 @@ client.interceptors.response.use( return response; }, async function (error) { - console.log(error); - - if (error.response && error.response.status === 401) { + if (error.response) { if (error.response.data.message === '유효하지 않은 토큰입니다.') { alert('로그인 상태를 확인해주세요!'); window.location.replace('/'); + } else if (error.response.data.message === '유효하지 않은 소원 링크입니다.') { + alert(error.response.data.message); + window.location.replace('/'); + } else if (error.response?.data?.message === '이미 진행 중인 소원 링크가 있습니다.') { + alert('이미 진행 중인 소원 링크가 있습니다.'); + window.location.replace('/main'); } } }, From df790947d7c20d0aab34c9bd1f34208d992bb225 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 01:22:22 +0900 Subject: [PATCH 22/63] =?UTF-8?q?[=20fix=20]=20=EC=9E=85=EB=A0=A5=EC=97=90?= =?UTF-8?q?=20=EB=8C=80=ED=95=9C=20=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/wishes/wishesAPI.ts | 1 - components/mypage/EditWishes/index.tsx | 53 ++++++++++++++++++---- hooks/queries/mypage/useEditWishesInfo.tsx | 1 + 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/api/wishes/wishesAPI.ts b/api/wishes/wishesAPI.ts index 3a1ee23b..39dd60dd 100644 --- a/api/wishes/wishesAPI.ts +++ b/api/wishes/wishesAPI.ts @@ -18,7 +18,6 @@ export const createWishesLink = async (wishesData: WishesDataType) => { initial: wishesData.initial, startDate: wishesData.startDate, endDate: wishesData.endDate, - phone: wishesData.phone, }, { headers: { diff --git a/components/mypage/EditWishes/index.tsx b/components/mypage/EditWishes/index.tsx index 83351e84..0e6049c7 100644 --- a/components/mypage/EditWishes/index.tsx +++ b/components/mypage/EditWishes/index.tsx @@ -20,6 +20,10 @@ import { CalendarGreyIc, CalendarIc, ImageUploadIc } from '@/public/assets/icons import theme from '@/styles/theme'; import Image from 'next/image'; import styled from 'styled-components'; +import { useEffect, useState } from 'react'; +import { validation } from '@/validation/input'; +import AlertTextBox from '@/components/common/alertTextBox'; +import { convertMoneyText } from '@/utils/common/convertMoneyText'; export default function EditWishesContainer() { const { @@ -50,6 +54,15 @@ export default function EditWishesContainer() { initial: initial.initial, }); + const [isAlertState, setIsAlertState] = useState(false); + + useEffect(() => { + validation.isIncludeHyphen(phone.phone) ? setIsAlertState(true) : setIsAlertState(false); + validation.isCorrectPhoneNumber(phone.phone) ? setIsAlertState(false) : setIsAlertState(true); + }, [phone]); + + console.log(selfInputPrice.selfInputPrice); + return ( <> {/* HEADER */} @@ -103,7 +116,11 @@ export default function EditWishesContainer() { @@ -171,7 +188,12 @@ export default function EditWishesContainer() { - + + {phone.phone && isAlertState && 올바른 연락처를 입력해주세요} @@ -183,14 +205,16 @@ export default function EditWishesContainer() { /> - - - + + + + + ); } @@ -234,4 +258,13 @@ const Styled = { FileInput: styled.input` display: none; `, + + ButtonWrapper: styled.div` + display: flex; + justify-content: space-between; + + width: 100%; + + margin-bottom: 4.6rem; + `, }; diff --git a/hooks/queries/mypage/useEditWishesInfo.tsx b/hooks/queries/mypage/useEditWishesInfo.tsx index 6674019a..6f45cff3 100644 --- a/hooks/queries/mypage/useEditWishesInfo.tsx +++ b/hooks/queries/mypage/useEditWishesInfo.tsx @@ -7,6 +7,7 @@ export default function useEditWishesInfo(editWishesInfoData: EditWishesInfoData const router = useRouter(); const { mutate: editWishesData } = useMutation(() => editWishesInfo(editWishesInfoData), { onSuccess: () => { + alert('수정성공'); router.back(); }, }); From 2ece1182c539c1f2850260ad3c90abc5e7fa6762 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 01:55:31 +0900 Subject: [PATCH 23/63] =?UTF-8?q?[=20fix=20]=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EA=B0=80?= =?UTF-8?q?=EA=B2=A9=EC=9E=85=EB=A0=A5=20=EC=8B=9C=20=EA=B8=80=EC=9E=90?= =?UTF-8?q?=EC=A0=9C=ED=95=9C=20=EC=88=AB=EC=9E=90=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/input/inputBox.tsx | 20 +++++++++-- components/mypage/EditWishes/index.tsx | 38 +++++++++++++++++--- components/wishes/wishesForm/WishesStep1.tsx | 6 +++- 3 files changed, 55 insertions(+), 9 deletions(-) diff --git a/components/common/input/inputBox.tsx b/components/common/input/inputBox.tsx index 2ef5afcf..60b111be 100644 --- a/components/common/input/inputBox.tsx +++ b/components/common/input/inputBox.tsx @@ -11,14 +11,23 @@ interface InputBoxProps { handleChangeValue?: ChangeEventHandler; handleBlur?: FocusEventHandler; value?: string | number; + isPriceText?: boolean; limitLength?: number; dropDown?: boolean; readOnly?: boolean; } export default function InputBox(props: InputBoxProps) { - const { placeholder, handleChangeValue, handleBlur, value, limitLength, dropDown, readOnly } = - props; + const { + placeholder, + handleChangeValue, + handleBlur, + value, + isPriceText, + limitLength, + dropDown, + readOnly, + } = props; return ( @@ -30,7 +39,12 @@ export default function InputBox(props: InputBoxProps) { readOnly={readOnly ? true : false} /> {limitLength && value !== undefined && ( - + )} {dropDown && 열기} diff --git a/components/mypage/EditWishes/index.tsx b/components/mypage/EditWishes/index.tsx index 0e6049c7..6210e7a1 100644 --- a/components/mypage/EditWishes/index.tsx +++ b/components/mypage/EditWishes/index.tsx @@ -55,14 +55,32 @@ export default function EditWishesContainer() { }); const [isAlertState, setIsAlertState] = useState(false); + const [isAbleModify, setIsAbleModify] = useState(true); + + useEffect(() => { + checkValue() ? setIsAbleModify(true) : setIsAbleModify(false); + }, [itemLink, image, initial, title, bankInfo, phone, selfInputPrice]); + + const checkValue = () => { + return ( + (itemLink.imageURL.length !== 0 || image.preSignedImageURL.length !== 0) && + initial.initial.length !== 0 && + title.title.length !== 0 && + bankInfo.account.length !== 0 && + bankInfo.bankName.length !== 0 && + bankInfo.name.length !== 0 && + phone.phone.length !== 0 && + !isAlertState && + !validation.checkAccountLength(bankInfo.account) && + (itemLink.price !== 0 || selfInputPrice.selfInputPrice.length !== 0) + ); + }; useEffect(() => { validation.isIncludeHyphen(phone.phone) ? setIsAlertState(true) : setIsAlertState(false); validation.isCorrectPhoneNumber(phone.phone) ? setIsAlertState(false) : setIsAlertState(true); }, [phone]); - console.log(selfInputPrice.selfInputPrice); - return ( <> {/* HEADER */} @@ -115,7 +133,11 @@ export default function EditWishesContainer() { { + e.target.value = e.target.value.replaceAll(',', ''); + selfInputPrice.handleChangeSelfInputPrice(e); + }} + isPriceText value={ selfInputPrice.selfInputPrice ? `${convertMoneyText(selfInputPrice.selfInputPrice.toString())}` @@ -207,12 +229,18 @@ export default function EditWishesContainer() { - + diff --git a/components/wishes/wishesForm/WishesStep1.tsx b/components/wishes/wishesForm/WishesStep1.tsx index 2013f227..71347bcc 100644 --- a/components/wishes/wishesForm/WishesStep1.tsx +++ b/components/wishes/wishesForm/WishesStep1.tsx @@ -124,7 +124,11 @@ export default function WishesStep1(props: WishesStep1Props) { { + e.target.value = e.target.value.replaceAll(',', ''); + handleChangeSelfInputPrice(e); + }} value={selfInputPrice ? `${convertMoneyText(selfInputPrice)}` : ''} limitLength={LIMIT_TEXT[15]} /> From fc69f85dfc78bf1035ed4b9bc05fdd22eb88af44 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 02:00:06 +0900 Subject: [PATCH 24/63] =?UTF-8?q?[=20fix=20]=2043=EB=B2=88=20-=20=EB=82=A0?= =?UTF-8?q?=EC=A7=9C=20=EC=84=A0=ED=83=9D=20=EC=98=A4=EB=A5=98=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/CustomDatePicker.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/common/modal/CustomDatePicker.tsx b/components/common/modal/CustomDatePicker.tsx index 59a33079..f9ee7eaa 100644 --- a/components/common/modal/CustomDatePicker.tsx +++ b/components/common/modal/CustomDatePicker.tsx @@ -22,7 +22,9 @@ export default function CustomDatePicker(props: CustomDatePickerProps) { ); const handleDateChange = (date: Date) => { - if (date && isBefore(date, new Date())) { + const today = new Date(); + const yesterday = new Date(today.setDate(today.getDate() - 1)); + if (date && isBefore(date, yesterday)) { // 선택한 날짜가 현재 날짜보다 예전인 경우 alert('선택하신 날짜는 현재 날짜보다 이전입니다. 유효한 날짜를 선택해주세요.'); return; From baf5680baa81a17bfa812101bdf9a98c360e1caf Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 02:53:18 +0900 Subject: [PATCH 25/63] =?UTF-8?q?[=20fix=20]=20=EC=BC=80=EC=9D=B4=ED=81=AC?= =?UTF-8?q?=20=EA=B2=B0=EC=A0=9C=EA=B4=80=EB=A0=A8=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0=20=EB=B0=8F=20=EC=BD=98=EC=86=94=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cakes/cakesAPI.ts | 12 +-- api/common/axios.ts | 7 +- api/wishes/wishesAPI.ts | 3 - components/cakes/index.tsx | 101 ++++++++++++---------- components/login/index.tsx | 1 - components/wishes/[id].tsx | 6 +- components/wishes/wishesForm/BankInfo.tsx | 2 +- hooks/queries/cakes/useRequestPayReady.ts | 4 +- hooks/queries/login/useAuthKakao.ts | 1 - pages/cakes/approve/index.tsx | 21 +++-- pages/wishes/[id].tsx | 2 +- utils/common/extractItem.ts | 1 - 12 files changed, 89 insertions(+), 72 deletions(-) diff --git a/api/cakes/cakesAPI.ts b/api/cakes/cakesAPI.ts index 9c448cdf..9c9d241b 100644 --- a/api/cakes/cakesAPI.ts +++ b/api/cakes/cakesAPI.ts @@ -2,7 +2,8 @@ import PATH from '../../constant/path'; import { client } from '../common/axios'; import { CakesDataType } from '@/types/cakes/cakesDataType'; -export const getWishesData = async (wishesNumber: number) => { +export const getWishesData = async () => { + const wishesNumber = window.location.pathname.replace('/cakes/', ''); const data = await client.get( `${PATH.API}/${PATH.V1}/${PATH.PUBLIC}/${PATH.WISHES}/${wishesNumber}`, ); @@ -30,7 +31,7 @@ export const requestPayApprove = async (cakesData: CakesDataType | undefined) => return data.data.data; }; -export const requestPayReady = async (userId: string, cakeNumber: number) => { +export const requestPayReady = async (wishId: number, cakeNumber: number) => { return await client.post( `${PATH.API}/${PATH.V1}/${PATH.PUBLIC}/${PATH.PAY}/${PATH.READY}`, { @@ -39,10 +40,9 @@ export const requestPayReady = async (userId: string, cakeNumber: number) => { cake: cakeNumber, taxFreeAmount: '200', vatAmount: '1', - approvalUrl: 'http://localhost:8080/cakes/approve', - // approvalUrl: 'https://sunmulzu.store/cakes/approve', - cancelUrl: 'https://sunmulzu.store/cakes', - failUrl: 'https://sunmulzu.store/cakes', + approvalUrl: `${process.env.NEXT_PUBLIC_KAKAOPAY_REDIRECT_URI}`, + cancelUrl: `https://sunmulzu.store/${wishId}`, + failUrl: `https://sunmulzu.store/${wishId}`, }, { headers: {}, diff --git a/api/common/axios.ts b/api/common/axios.ts index 3b1b9249..4de45f6f 100644 --- a/api/common/axios.ts +++ b/api/common/axios.ts @@ -33,8 +33,11 @@ client.interceptors.response.use( } else if (error.response.data.message === '유효하지 않은 소원 링크입니다.') { alert(error.response.data.message); window.location.replace('/'); - } else if (error.response?.data?.message === '이미 진행 중인 소원 링크가 있습니다.') { - alert('이미 진행 중인 소원 링크가 있습니다.'); + } else if ( + error.response?.data?.message === '이미 진행 중인 소원 링크가 있습니다.' || + error.response?.data?.message === '주간이 끝난 소원 링크입니다.' + ) { + alert(error.response?.data?.message); window.location.replace('/main'); } } diff --git a/api/wishes/wishesAPI.ts b/api/wishes/wishesAPI.ts index 39dd60dd..fa117875 100644 --- a/api/wishes/wishesAPI.ts +++ b/api/wishes/wishesAPI.ts @@ -78,9 +78,6 @@ export const getItemInfo = async (link: string, siteData: SiteDataType | undefin }, }, )); - - console.log(imageTag, priceTag); - return { imageTag, priceTag }; }; diff --git a/components/cakes/index.tsx b/components/cakes/index.tsx index 3ae81b80..f1ed5460 100644 --- a/components/cakes/index.tsx +++ b/components/cakes/index.tsx @@ -26,7 +26,7 @@ export default function CakesContainer() { const [cakesData, setCakesData] = useRecoilState(CakesData); const router = useRouter(); - const { data, mutate, isSuccess } = useRequestPayReady(giverName, selectedCake.cakeNumber); + const { data, mutate, isSuccess } = useRequestPayReady(cakesData.wishId, selectedCake.cakeNumber); useEffect(() => { if (!router.isReady) return; @@ -45,7 +45,6 @@ export default function CakesContainer() { ...prevData, tid: tid, })); - router.replace(nextLink); } }, [isSuccess]); @@ -54,9 +53,7 @@ export default function CakesContainer() { resetCakesData(); }, []); - const { data: wishesData } = useQuery('wished', async () => getWishesData(cakesData.wishId), { - enabled: cakesData.wishId !== 0, - }); + const { data: wishesData } = useQuery('wished', getWishesData); const saveReocilData = () => { setCakesData((prevData) => ({ @@ -75,53 +72,69 @@ export default function CakesContainer() { }; return ( - <> - - - {wishesData?.title} - - {/* API 데이터 */} - - - - - - +
+ + + {wishesData?.title} + + {/* API 데이터 */} + + + + + + + + + - - - - - - - - - - 케이크 보내기 - - + + + + +
+ + + + 케이크 보내기 + + + ); } const Styled = { + Container: styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 100svh; + `, + Title: styled.h1` ${theme.fonts.headline24_100}; color: ${theme.colors.main_blue}; margin: 2.4rem 0 3rem; `, + + ButtonWrapper: styled.div` + padding-bottom: 4.6rem; + `, }; diff --git a/components/login/index.tsx b/components/login/index.tsx index 392e1fee..ba92254c 100644 --- a/components/login/index.tsx +++ b/components/login/index.tsx @@ -3,7 +3,6 @@ import Image from 'next/image'; import theme from '@/styles/theme'; import { KakaoLoginIc } from '@/public/assets/icons'; import BasicBox from '../common/box/BasicBox'; -import Button from '../common/button/button'; import MainView from '../common/mainView'; export default function LoginContainer() { diff --git a/components/wishes/[id].tsx b/components/wishes/[id].tsx index d5204a59..d8b13356 100644 --- a/components/wishes/[id].tsx +++ b/components/wishes/[id].tsx @@ -17,9 +17,7 @@ export default function WishesContainer() { setWishesId(router.query.id); }, [router.isReady]); - const { data } = useQuery('wished', async () => getWishesData(Number(wishesId)), { - enabled: wishesId !== '', - }); + const { data } = useQuery('wished', getWishesData); const handleMoveToCakes = () => { router.push(`/cakes/${wishesId}`); @@ -62,5 +60,7 @@ const Styled = { justify-content: space-between; height: 11rem; + + margin-bottom: 4.6rem; `, }; diff --git a/components/wishes/wishesForm/BankInfo.tsx b/components/wishes/wishesForm/BankInfo.tsx index baa2e8e3..e63981a2 100644 --- a/components/wishes/wishesForm/BankInfo.tsx +++ b/components/wishes/wishesForm/BankInfo.tsx @@ -82,7 +82,7 @@ export default function BankInfo() { - requestPayReady(userId, cakeNumber), + requestPayReady(wishId, cakeNumber), ); return { data, mutate, isSuccess }; diff --git a/hooks/queries/login/useAuthKakao.ts b/hooks/queries/login/useAuthKakao.ts index e49d9e09..cefd2069 100644 --- a/hooks/queries/login/useAuthKakao.ts +++ b/hooks/queries/login/useAuthKakao.ts @@ -40,7 +40,6 @@ export default function useAuthKakao() { useEffect(() => { if (authCode) { - console.log('useEffect', authCode); kakaoLoginMutate(); } }, [authCode, kakaoLoginMutate]); diff --git a/pages/cakes/approve/index.tsx b/pages/cakes/approve/index.tsx index d4c7d58f..a0eb6755 100644 --- a/pages/cakes/approve/index.tsx +++ b/pages/cakes/approve/index.tsx @@ -36,13 +36,15 @@ export default function ApprovePage() { - - 당신도 받고 싶은 선물이 있나요? - + + + 당신도 받고 싶은 선물이 있나요? + + ); @@ -54,4 +56,9 @@ const Styled = { flex-direction: column; align-items: center; `, + + ButtonWrapper: styled.div` + width: 100%; + margin-bottom: 4.6rem; + `, }; diff --git a/pages/wishes/[id].tsx b/pages/wishes/[id].tsx index 4ff9fbe2..f372b849 100644 --- a/pages/wishes/[id].tsx +++ b/pages/wishes/[id].tsx @@ -3,7 +3,7 @@ import WishesContainer from '@/components/wishes/[id]'; export default function WishesPage() { return ( - + ); diff --git a/utils/common/extractItem.ts b/utils/common/extractItem.ts index a882d36c..3a1220a3 100644 --- a/utils/common/extractItem.ts +++ b/utils/common/extractItem.ts @@ -7,7 +7,6 @@ export const extractImageSrc = (imageLink: string) => { }; export const extractPrice = (totalPrice: string, linkURL: string) => { - console.log(totalPrice); if (linkURL.includes('29cm')) { const html = document.createElement('span'); html.innerHTML = totalPrice; From b580ff5470717093eaff0c0e5e47def5c3827c0e Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 02:55:31 +0900 Subject: [PATCH 26/63] =?UTF-8?q?[=20chore=20]=20not=20used=20=EA=B2=BD?= =?UTF-8?q?=EA=B3=A0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/layout.tsx | 1 - components/main/cake.tsx | 2 +- components/mypage/index.tsx | 2 +- components/mypage/letters/[id].tsx | 3 +-- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/components/common/layout.tsx b/components/common/layout.tsx index 8864639f..5e8b0df0 100644 --- a/components/common/layout.tsx +++ b/components/common/layout.tsx @@ -1,4 +1,3 @@ -import theme from '@/styles/theme'; import styled from 'styled-components'; import Footer from './footer'; diff --git a/components/main/cake.tsx b/components/main/cake.tsx index 910496b1..0dc5793f 100644 --- a/components/main/cake.tsx +++ b/components/main/cake.tsx @@ -1,4 +1,4 @@ -import styled, { css } from 'styled-components'; +import styled from 'styled-components'; import theme from '@/styles/theme'; import router from 'next/router'; import Image from 'next/image'; diff --git a/components/mypage/index.tsx b/components/mypage/index.tsx index 586c331f..6878edc0 100644 --- a/components/mypage/index.tsx +++ b/components/mypage/index.tsx @@ -14,7 +14,7 @@ import { MypageCakeImg } from '@/public/assets/images'; import { useEffect, useState } from 'react'; import useInitEditWishesInfo from '@/hooks/mypage/useInitEditWishesInfo'; import { deleteUserInfo } from '@/api/mypage/mypageAPI'; -import Layout from '../common/layout'; + export default function MyPageContainer() { const { isOpen, handleToggle } = useModal(); diff --git a/components/mypage/letters/[id].tsx b/components/mypage/letters/[id].tsx index 175dc3c2..f1ff4acc 100644 --- a/components/mypage/letters/[id].tsx +++ b/components/mypage/letters/[id].tsx @@ -1,7 +1,6 @@ import theme from '@/styles/theme'; import styled from 'styled-components'; import InputHeader from '@/components/common/inputHeader'; -import BackBtn from '@/components/common/button/backBtn'; import CakeListButton from './cakeListButton'; import Image from 'next/image'; import { BorderImg } from '@/public/assets/images'; @@ -10,7 +9,7 @@ import { ArrowLeftIc, ArrowRightIc, BackBtnIc } from '@/public/assets/icons'; import { useRouter } from 'next/router'; import { useGetCakesLetters } from '@/hooks/queries/letters/useGetCakeLetters'; import { CAKE_LIST } from '@/constant/cakeList'; -import Layout from '@/components/common/layout'; + export default function LettersContainer() { const [wishId, setWishId] = useState(''); From 89a70f5fdf2f76c2dc3394e30faf3a4517cef777 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 03:14:04 +0900 Subject: [PATCH 27/63] =?UTF-8?q?[=20chore=20]=20=EC=B6=A9=EB=8F=8C?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cakes/cakesAPI.ts | 4 ++- components/wishes/[id].tsx | 18 ++++++------ components/wishes/share/index.tsx | 48 +++++++++++++++++-------------- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/api/cakes/cakesAPI.ts b/api/cakes/cakesAPI.ts index 9c9d241b..2805ec2f 100644 --- a/api/cakes/cakesAPI.ts +++ b/api/cakes/cakesAPI.ts @@ -3,7 +3,9 @@ import { client } from '../common/axios'; import { CakesDataType } from '@/types/cakes/cakesDataType'; export const getWishesData = async () => { - const wishesNumber = window.location.pathname.replace('/cakes/', ''); + const pathname = window.location.pathname.replace('/cakes/', ''); + const wishesNumber = pathname.replace('/wishes/', ''); + const data = await client.get( `${PATH.API}/${PATH.V1}/${PATH.PUBLIC}/${PATH.WISHES}/${wishesNumber}`, ); diff --git a/components/wishes/[id].tsx b/components/wishes/[id].tsx index 4085ae6e..c81914b5 100644 --- a/components/wishes/[id].tsx +++ b/components/wishes/[id].tsx @@ -17,18 +17,16 @@ export default function WishesContainer() { setWishesId(router.query.id); }, [router.isReady]); - const { data } = useQuery('wished', getWishesData); - + // const { data } = useQuery('wished', async () => getWishesData(Number(wishesId)), { + // onError: (error: any) => { + // console.error("에러 발생:", error); + // alert("해당 소원의 펀딩이 아직 가능하지 않습니다. 펀딩 기간을 확인해주세요."); + // router.back(); + // }, + // enabled: wishesId !== '', + // }); const handleMoveToCakes = () => { router.push(`/cakes/${wishesId}`); diff --git a/components/wishes/share/index.tsx b/components/wishes/share/index.tsx index 068312b9..a208ae6f 100644 --- a/components/wishes/share/index.tsx +++ b/components/wishes/share/index.tsx @@ -21,7 +21,7 @@ export default function ShareContainer() { const [status, setStatus] = useState('none'); const { progressData, wishStatus } = useGetProgressData(); - const [nickName, setNicknameState] = useState(""); + const [nickName, setNicknameState] = useState(''); const loginUserInfo = useRecoilValue(LoginUserInfo); useEffect(() => { @@ -29,7 +29,6 @@ export default function ShareContainer() { setStatus(wishStatus); }, [loginUserInfo, wishStatus]); - const handleModalClick = () => { setShowModal(!showModal); }; @@ -38,7 +37,6 @@ export default function ShareContainer() { router.push('/main'); }; - return ( <>
@@ -54,7 +52,9 @@ export default function ShareContainer() { {status === 'while' ? ( 선물주들에게 생일 축하 받으러 가볼까요? ) : ( - {progressData ? progressData.dayCount : '?'}일 뒤부터 링크를 공유할 수 있어요 + + {progressData ? progressData.dayCount : '?'}일 뒤부터 링크를 공유할 수 있어요 + )} @@ -64,23 +64,25 @@ export default function ShareContainer() { {showModal && } - {status === 'while' ? ( - - 링크 공유하기 - - ) : ( - - 홈화면으로 이동하기 - - )} + + {status === 'while' ? ( + + 링크 공유하기 + + ) : ( + + 홈화면으로 이동하기 + + )} + ); } @@ -114,4 +116,8 @@ const Styled = { ${theme.fonts.body16}; color: ${theme.colors.main_blue}; `, + + ButtonWrapper: styled.div` + margin-bottom: 10.4rem; + `, }; From 8f3dc9351f1b5a96de183b12cfc2aa8b5ee75d0d Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 03:27:59 +0900 Subject: [PATCH 28/63] =?UTF-8?q?[=20fix=20]=20=EA=B2=B0=EC=A0=9C=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/cakes/cakesAPI.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/cakes/cakesAPI.ts b/api/cakes/cakesAPI.ts index 2805ec2f..aa85129a 100644 --- a/api/cakes/cakesAPI.ts +++ b/api/cakes/cakesAPI.ts @@ -43,8 +43,8 @@ export const requestPayReady = async (wishId: number, cakeNumber: number) => { taxFreeAmount: '200', vatAmount: '1', approvalUrl: `${process.env.NEXT_PUBLIC_KAKAOPAY_REDIRECT_URI}`, - cancelUrl: `https://sunmulzu.store/${wishId}`, - failUrl: `https://sunmulzu.store/${wishId}`, + cancelUrl: `https://sunmulzu.store/cakes/${wishId}`, + failUrl: `https://sunmulzu.store/cakes/${wishId}`, }, { headers: {}, From a11eb3f6c1fd5d373776a548da4850b63f18bf3d Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 15:44:18 +0900 Subject: [PATCH 29/63] =?UTF-8?q?[=20style=20]=20=ED=91=B8=ED=84=B0=20?= =?UTF-8?q?=ED=81=AC=EA=B8=B0=20100%=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/footer.tsx | 2 +- components/login/index.tsx | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/common/footer.tsx b/components/common/footer.tsx index 6065d13b..bad6d01f 100644 --- a/components/common/footer.tsx +++ b/components/common/footer.tsx @@ -44,7 +44,7 @@ export default function Footer() { const Styled = { Container: styled.footer` - width: 37.5rem; + width: 100%; background-color: ${theme.colors.main_blue}; padding: 2.9rem 2.2rem; `, diff --git a/components/login/index.tsx b/components/login/index.tsx index ba92254c..abfcaa5a 100644 --- a/components/login/index.tsx +++ b/components/login/index.tsx @@ -52,6 +52,8 @@ const Styled = { align-items: center; width: 100%; + + cursor: pointer; `, KakaoLoginIcon: styled((props) => ( From 1866abde1af711c5ddd7662af48f7f772ba095e7 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 16:43:48 +0900 Subject: [PATCH 30/63] =?UTF-8?q?[=20fix=20]=20=EC=88=98=EC=A0=95=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/mypage/mypageAPI.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api/mypage/mypageAPI.ts b/api/mypage/mypageAPI.ts index cdb51253..ce121fe7 100644 --- a/api/mypage/mypageAPI.ts +++ b/api/mypage/mypageAPI.ts @@ -20,10 +20,9 @@ export const editWishesInfo = async (editWishesInfoData: EditWishesInfoDataType) const data = await client.put( `${PATH.API}/${PATH.V1}/${PATH.WISHES}/${PATH.PROGRESS}`, - { editWishesInfoData }, + editWishesInfoData, { headers: { - 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}`, }, }, From e65a523a763f9d9bcdb4e1bf3eadfae004707c98 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 16:46:50 +0900 Subject: [PATCH 31/63] =?UTF-8?q?[=20style=20]=20=EC=A7=84=ED=96=89?= =?UTF-8?q?=EC=A4=91=EC=9D=B8=20=EC=86=8C=EC=9B=90=20=EC=8B=9C=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EC=A0=9C=ED=95=9C=20=EC=8A=A4=ED=83=80=EC=9D=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/input/inputBox.tsx | 7 +++-- components/common/input/textareaBox.tsx | 8 +++--- components/mypage/EditWishes/index.tsx | 33 ++++++++++++++--------- components/wishes/wishesForm/itemLink.tsx | 5 +++- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/components/common/input/inputBox.tsx b/components/common/input/inputBox.tsx index 60b111be..e8ff50db 100644 --- a/components/common/input/inputBox.tsx +++ b/components/common/input/inputBox.tsx @@ -11,6 +11,7 @@ interface InputBoxProps { handleChangeValue?: ChangeEventHandler; handleBlur?: FocusEventHandler; value?: string | number; + color?: string; isPriceText?: boolean; limitLength?: number; dropDown?: boolean; @@ -23,6 +24,7 @@ export default function InputBox(props: InputBoxProps) { handleChangeValue, handleBlur, value, + color, isPriceText, limitLength, dropDown, @@ -35,6 +37,7 @@ export default function InputBox(props: InputBoxProps) { placeholder={placeholder} onChange={handleChangeValue} value={value} + color={color} onBlur={handleBlur} readOnly={readOnly ? true : false} /> @@ -65,9 +68,9 @@ const Styled = { border-radius: 1rem; `, - Input: styled.input` + Input: styled.input<{ color: string | undefined }>` ${theme.fonts.body12}; - color: ${theme.colors.dark_blue}; + color: ${(props) => (props.color ? props.color : theme.colors.dark_blue)}; width: 100%; `, diff --git a/components/common/input/textareaBox.tsx b/components/common/input/textareaBox.tsx index 19100e74..55341b30 100644 --- a/components/common/input/textareaBox.tsx +++ b/components/common/input/textareaBox.tsx @@ -8,19 +8,21 @@ interface TextareaBoxProps { placeholder?: string; handleChangeValue?: ChangeEventHandler; value?: string | number; + color?: string; limitLength?: number; readOnly?: boolean; children?: ReactNode; } export default function TextareaBox(props: TextareaBoxProps) { - const { placeholder, handleChangeValue, value, limitLength, readOnly, children } = props; + const { placeholder, handleChangeValue, value, color, limitLength, readOnly, children } = props; return ( @@ -53,12 +55,12 @@ const Styled = { justify-content: space-between; `, - Textarea: styled.textarea` + Textarea: styled.textarea<{ color: string | undefined }>` width: 100%; height: 10.5rem; ${theme.fonts.body12}; - color: ${theme.colors.dark_blue}; + color: ${(props) => (props.color ? props.color : theme.colors.dark_blue)}; background-color: ${theme.colors.pastel_blue}; resize: none; diff --git a/components/mypage/EditWishes/index.tsx b/components/mypage/EditWishes/index.tsx index 6210e7a1..af86bb51 100644 --- a/components/mypage/EditWishes/index.tsx +++ b/components/mypage/EditWishes/index.tsx @@ -106,27 +106,26 @@ export default function EditWishesContainer() { changeImageURL={itemLink.changeImageURL} price={itemLink.price} changePrice={itemLink.changePrice} + readOnly /> ) : ( <> - {image.preSignedImageURL ? ( - + {wishesStatus === WISHES_STATUS.BEFORE ? ( + <> + + + ) : ( - - - 업로드 아이콘 - - + )} - @@ -138,11 +137,13 @@ export default function EditWishesContainer() { selfInputPrice.handleChangeSelfInputPrice(e); }} isPriceText + color={theme.colors.gray2} value={ selfInputPrice.selfInputPrice ? `${convertMoneyText(selfInputPrice.selfInputPrice.toString())}` : '' } + readOnly={wishesStatus !== WISHES_STATUS.BEFORE} limitLength={LIMIT_TEXT[15]} /> @@ -154,7 +155,9 @@ export default function EditWishesContainer() { placeholder="ex. 애플워치 -> ㅇㅍㅇㅊ" handleChangeValue={initial.handleChangeInitial} value={initial.initial} + color={theme.colors.gray2} limitLength={LIMIT_TEXT[15]} + readOnly={wishesStatus !== WISHES_STATUS.BEFORE} /> @@ -163,7 +166,9 @@ export default function EditWishesContainer() { placeholder="ex. ㅇㅇ이의 앙큼 벌스데이" handleChangeValue={title.handleChangeTitle} value={title.title} + color={theme.colors.gray2} limitLength={LIMIT_TEXT[20]} + readOnly={wishesStatus !== WISHES_STATUS.BEFORE} /> @@ -223,7 +228,9 @@ export default function EditWishesContainer() { placeholder="ex. 내가 이 물건 자주 언급했는데...기억나지?ㅋㅋ" handleChangeValue={hint.handleChangeHint} value={hint.hint} + color={theme.colors.gray2} limitLength={LIMIT_TEXT.DESCRIPTION} + readOnly={wishesStatus !== WISHES_STATUS.BEFORE} /> diff --git a/components/wishes/wishesForm/itemLink.tsx b/components/wishes/wishesForm/itemLink.tsx index 0ca8877a..641797ba 100644 --- a/components/wishes/wishesForm/itemLink.tsx +++ b/components/wishes/wishesForm/itemLink.tsx @@ -23,10 +23,12 @@ interface ItemLinkProps { changeImageURL: (input: string) => void; price: number; changePrice: (input: number) => void; + readOnly?: boolean; } export default function ItemLink(props: ItemLinkProps) { - const { linkURL, handleChangeLinkURL, imageURL, changeImageURL, price, changePrice } = props; + const { linkURL, handleChangeLinkURL, imageURL, changeImageURL, price, changePrice, readOnly } = + props; const [isCorrectLinkURL, setIsCorrectLinkURL] = useState(false); //queryClient부분 다시 체크해야됨! @@ -70,6 +72,7 @@ export default function ItemLink(props: ItemLinkProps) { placeholder="정해진 사이트에서 원하는 선물 링크 복사, 붙여넣기" handleBlur={parseImage} handleChangeValue={handleChangeLinkURL} + readOnly > {linkURL && linkURL.length > 0 && !validation.isCorrectSite(linkURL) && ( 정해진 사이트에서 링크를 가져와주세요! From 9f17284e2eafe77a34591404383ac189758226d4 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 18:19:35 +0900 Subject: [PATCH 32/63] =?UTF-8?q?[=20style=20]=20=ED=8F=B0=ED=8A=B8=20?= =?UTF-8?q?=EB=B0=8F=20=EB=AC=B8=EA=B5=AC=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/box/BasicBox.tsx | 4 +-- components/common/footer.tsx | 4 +-- components/wishes/wishesForm/Preview.tsx | 2 ++ components/wishes/wishesForm/WishesStep1.tsx | 18 +++++----- components/wishes/wishesForm/itemImageBox.tsx | 4 ++- components/wishes/wishesForm/itemLink.tsx | 36 +++---------------- styles/GlobalStyle.tsx | 2 +- styles/theme.ts | 17 ++++----- 8 files changed, 28 insertions(+), 59 deletions(-) diff --git a/components/common/box/BasicBox.tsx b/components/common/box/BasicBox.tsx index 33a4c259..f5850b4e 100644 --- a/components/common/box/BasicBox.tsx +++ b/components/common/box/BasicBox.tsx @@ -29,10 +29,10 @@ const Styled = { display: flex; align-items: center; - width: 33.1rem; + width: 100%; height: 5rem; - padding: 1.2rem 1rem 1.2rem 1.2rem; + padding: 1rem 1rem 1rem 1.2rem; border: 0.1rem solid ${(props) => (props.borderColor ? props.borderColor : theme.colors.main_blue)}; diff --git a/components/common/footer.tsx b/components/common/footer.tsx index bad6d01f..45266314 100644 --- a/components/common/footer.tsx +++ b/components/common/footer.tsx @@ -47,6 +47,8 @@ const Styled = { width: 100%; background-color: ${theme.colors.main_blue}; padding: 2.9rem 2.2rem; + + ${theme.fonts.body12_2}; `, HorizontalLine: styled.div` @@ -59,7 +61,6 @@ const Styled = { `, ContentContainer: styled.div` - ${theme.fonts.body12}; line-height: 2.2rem; color: ${theme.colors.white}; opacity: 0.6; @@ -72,7 +73,6 @@ const Styled = { `, Button: styled.button` - ${theme.fonts.body12}; line-height: 2.2rem; color: ${theme.colors.white}; opacity: 0.8; diff --git a/components/wishes/wishesForm/Preview.tsx b/components/wishes/wishesForm/Preview.tsx index 1a0c3d08..36d402e9 100644 --- a/components/wishes/wishesForm/Preview.tsx +++ b/components/wishes/wishesForm/Preview.tsx @@ -113,6 +113,8 @@ const Styled = { ${theme.fonts.button18}; color: ${theme.colors.main_blue}; text-align: center; + + margin-top: 1rem; `, ButtonWrapper: styled.div` diff --git a/components/wishes/wishesForm/WishesStep1.tsx b/components/wishes/wishesForm/WishesStep1.tsx index 71347bcc..bec8ca48 100644 --- a/components/wishes/wishesForm/WishesStep1.tsx +++ b/components/wishes/wishesForm/WishesStep1.tsx @@ -81,16 +81,14 @@ export default function WishesStep1(props: WishesStep1Props) { handleLoadTypeToggle={handleLoadTypeToggle} /> {isLinkLoadType ? ( - - - + ) : ( <> diff --git a/components/wishes/wishesForm/itemImageBox.tsx b/components/wishes/wishesForm/itemImageBox.tsx index 32359a07..fc739f19 100644 --- a/components/wishes/wishesForm/itemImageBox.tsx +++ b/components/wishes/wishesForm/itemImageBox.tsx @@ -31,7 +31,7 @@ export default function ItemImageBox(props: ItemImageBoxProps) { const Styled = { PresentWrapper: styled.div` - margin: 1.2rem 0 1rem; + margin-top: 1.2rem; `, ImageWrapper: styled.div` @@ -47,5 +47,7 @@ const Styled = { ${theme.fonts.button16}; color: ${theme.colors.main_blue}; text-align: center; + + margin-top: 1rem; `, }; diff --git a/components/wishes/wishesForm/itemLink.tsx b/components/wishes/wishesForm/itemLink.tsx index 641797ba..9ccc75f8 100644 --- a/components/wishes/wishesForm/itemLink.tsx +++ b/components/wishes/wishesForm/itemLink.tsx @@ -69,10 +69,10 @@ export default function ItemLink(props: ItemLinkProps) { ))} {linkURL && linkURL.length > 0 && !validation.isCorrectSite(linkURL) && ( 정해진 사이트에서 링크를 가져와주세요! @@ -86,28 +86,8 @@ export default function ItemLink(props: ItemLinkProps) { } const Styled = { - Container: styled.div``, - - InputTitle: styled.div` - ${theme.fonts.body16}; - color: ${theme.colors.main_blue}; - margin: 0 0 1rem; - `, - - InputText: styled.input` - ${theme.fonts.body12}; - color: ${theme.colors.dark_blue}; - width: 100%; - `, - - PresentWrapper: styled.div` - margin: 1.2rem 0 1rem; - `, - - PresentPrice: styled.div` - ${theme.fonts.button18}; - color: ${theme.colors.main_blue}; - text-align: center; + Container: styled.div` + margin-bottom: 2.4rem; `, SiteBox: styled.div` @@ -118,12 +98,4 @@ const Styled = { cursor: pointer; margin: 0 1rem 1rem 0; `, - ImageWrapper: styled.div` - position: relative; - - width: 100%; - height: 100%; - - object-fit: fill; - `, }; diff --git a/styles/GlobalStyle.tsx b/styles/GlobalStyle.tsx index 1a586042..05f32bd9 100644 --- a/styles/GlobalStyle.tsx +++ b/styles/GlobalStyle.tsx @@ -10,7 +10,7 @@ h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, -b, u, i, center, +b, u, i, center,input, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, diff --git a/styles/theme.ts b/styles/theme.ts index d324c0fa..e28bc6fc 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -33,14 +33,9 @@ function FONT({ family, weight, size, lineHeight, letterSpacing, textStroke }: F font-weight: ${weight}; font-size: ${size}rem; line-height: ${lineHeight}; - ${ - letterSpacing && - `letter-spacing: -${letterSpacing}rem; - ${textStroke && `-webkit-text-stroke: ${textStroke}rem`} - ` - } - - `; + ${letterSpacing && `letter-spacing: -${letterSpacing}rem;`} + ${textStroke && `-webkit-text-stroke: 0.01rem`} + }`; } const fonts = { @@ -49,13 +44,13 @@ const fonts = { headline24_100: FONT({ family: true, weight: 400, size: 2.4, lineHeight: '100%' }), headline24_130: FONT({ family: true, weight: 400, size: 2.4, lineHeight: '130%' }), headline30: FONT({ family: true, weight: 400, size: 3, lineHeight: '100%' }), - body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '150%', letterSpacing: 0.05 }), + body16: FONT({ family: false, weight: 400, size: 1.6, lineHeight: '150%' }), body14: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%' }), - body12: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%', textStroke: 0.01 }), + body12: FONT({ family: false, weight: 400, size: 1.4, lineHeight: '140%' }), button16: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '3rem' }), button18: FONT({ family: true, weight: 400, size: 1.8, lineHeight: '3rem' }), button16_2: FONT({ family: true, weight: 400, size: 1.6, lineHeight: '2rem' }), - body12_2: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '2rem' }), + body12_2: FONT({ family: false, weight: 400, size: 1.2, lineHeight: '2.2rem' }), }; export type FontsTypes = typeof fonts; From 51508bba6bd3305605b02e9c3d2c9044c9500301 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 22:34:10 +0900 Subject: [PATCH 33/63] =?UTF-8?q?[=20style=20]=20=EC=BC=80=EC=9D=B4?= =?UTF-8?q?=ED=81=AC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cakes/SelectCakes.tsx | 2 +- components/cakes/index.tsx | 2 +- .../assets/images/cakes/beefCakeDetailImg.png | Bin 0 -> 7469 bytes .../assets/images/cakes/beefCakeDetailImg.svg | 30 -------------- .../images/cakes/chickenCakeDetailImg.png | Bin 0 -> 7784 bytes .../images/cakes/chickenCakeDetailImg.svg | 30 -------------- .../images/cakes/coffeeCakeDetailImg.png | Bin 0 -> 10428 bytes .../images/cakes/coffeeCakeDetailImg.svg | 39 ------------------ .../images/cakes/flowerCakeDetailImg.png | Bin 0 -> 8980 bytes .../images/cakes/flowerCakeDetailImg.svg | 36 ---------------- .../images/cakes/perfumeCakeDetailImg.png | Bin 0 -> 12283 bytes .../images/cakes/perfumeCakeDetailImg.svg | 37 ----------------- .../assets/images/cakes/poopCakeDetailImg.png | Bin 0 -> 8300 bytes .../assets/images/cakes/poopCakeDetailImg.svg | 37 ----------------- .../images/cakes/sushiCakeDetailImg.png | Bin 0 -> 8775 bytes .../images/cakes/sushiCakeDetailImg.svg | 37 ----------------- .../images/cakes/vitaminCakeDetailImg.png | Bin 0 -> 7804 bytes .../images/cakes/vitaminCakeDetailImg.svg | 36 ---------------- public/assets/images/index.ts | 17 ++++---- 19 files changed, 10 insertions(+), 293 deletions(-) create mode 100644 public/assets/images/cakes/beefCakeDetailImg.png delete mode 100644 public/assets/images/cakes/beefCakeDetailImg.svg create mode 100644 public/assets/images/cakes/chickenCakeDetailImg.png delete mode 100644 public/assets/images/cakes/chickenCakeDetailImg.svg create mode 100644 public/assets/images/cakes/coffeeCakeDetailImg.png delete mode 100644 public/assets/images/cakes/coffeeCakeDetailImg.svg create mode 100644 public/assets/images/cakes/flowerCakeDetailImg.png delete mode 100644 public/assets/images/cakes/flowerCakeDetailImg.svg create mode 100644 public/assets/images/cakes/perfumeCakeDetailImg.png delete mode 100644 public/assets/images/cakes/perfumeCakeDetailImg.svg create mode 100644 public/assets/images/cakes/poopCakeDetailImg.png delete mode 100644 public/assets/images/cakes/poopCakeDetailImg.svg create mode 100644 public/assets/images/cakes/sushiCakeDetailImg.png delete mode 100644 public/assets/images/cakes/sushiCakeDetailImg.svg create mode 100644 public/assets/images/cakes/vitaminCakeDetailImg.png delete mode 100644 public/assets/images/cakes/vitaminCakeDetailImg.svg diff --git a/components/cakes/SelectCakes.tsx b/components/cakes/SelectCakes.tsx index 7b6d57eb..750b9154 100644 --- a/components/cakes/SelectCakes.tsx +++ b/components/cakes/SelectCakes.tsx @@ -33,7 +33,7 @@ export default function SelectCakes(props: SelectCakesProps) { - 케이크 상세 이미지 + 케이크 상세 이미지 diff --git a/components/cakes/index.tsx b/components/cakes/index.tsx index f1ed5460..7749dd87 100644 --- a/components/cakes/index.tsx +++ b/components/cakes/index.tsx @@ -87,7 +87,7 @@ export default function CakesContainer() { diff --git a/public/assets/images/cakes/beefCakeDetailImg.png b/public/assets/images/cakes/beefCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..5564a5f5cd0a393f81b80c740154d1f1f9471bea GIT binary patch literal 7469 zcmc&(hf~vAxBVr8Tv0$px`0vzL8MD)krFyY2vP-*?A4uRimM1r3L_iMnhdi9{@mj z@+0)uY4QqcUWu9fcIL6Vi5mbg^8R{28u~oz#`r2Vu<;*$pRxq**15QD_$63LMvI^)mz`o_AO_@1^j#-Aw~!8(QT z*1MyYb$1t!f4ckTTN{m4AEvtd9t7Ait|E7x=_XASN$C0$WeW1i{y$zqJgES*(wi^- zl2wUcmk~mH>ns3VGlc`)J?P`zoj1KqA7m>wmqi>IfLtgAA{tY#7TF#SG+b1IQort#x1KT`+e0%o)Do(Z1Kz!UPt?yn%Kw{qOD_Ok>Sxe_bBP zK&f;}oJZj*8`@@#AAi1Z`XB*-@?J?(Qsj<<(8O#MIks^WM@wL+m45&FVfwo(3qKDg z*){4FGk5$W&G~8NeNWwU()XWZ1z|MRpsM%5$E$UjTbXo8LG2XEotejT!)E{lM8ED= z&`?SMdP=|UT3bg^eX(RIdaaOdhvLW;j^Ul{ql`!v(YU=c&Gn(u@Ps(;#>o#^D_Ubq z=~2+TTGW(J&KewZd`93EwN#e(l;2MS+@bwiqECvFWf0Q^IH-Zw;jFWoIuAm`=g#f< zuqLho!yVxYcwn3Ia2ILMpR~5di43p#F*Usu;8sh!eVH`(f#(AJ&d0Ga_lhp8bA&#q+hO@+mXTO>i+-*tP)xXJby)>wkG;mNDEghaZ=Ti^BbPCkD9x&MZ^-euP9O= z9y00ibf=5fJJ!5gFfX3@yfVr}vCf(-&itbz*(CQ;@6U29WcVbRQJVxEVj1dl{JqaVXI$$<~6t$gpWRfy0l+dG*=} z^Wht|Qy6=S0d|G@lh6Bw!OagY{$*#xniOeT*57><#Atj~5|%^sEYn#gGF6*~ggwd4 zGBwQ6C*$i1-Tn}Ba*ymivlT(%DkC3(K^!FJ6*-O@3})6JhY$+}i`v?dXp~{HrYiKs z(&A@Q0Sx4hp7;Ji$d{I`@EEg5454K^d7ZUmsOjnVpkJ;+5ML`2ubsVv-k6=~qeDM# zklSsnKPjy|zfTx+P`-ZGGj0I}Q|l&`M0ASDL@1<$^&A^WUpa0)UMi_i&=BB1I9{1j zTVt>SUHWr?(h=e`*7eW+&CwfPHpTpI2(xLSP~n}E$VdYP4Ze4Iq(|IoEf*C!P3reA zOO_4F&}k(>kA-d8%CR2#k2AWcJeel++eC z88<9~*|x8mZ$njYa}5l@TBIY#-ttF=4VRUF)Y!$cbp6eKwMV2G3H0Xa?;C?$sS!78uguLfpQ1qr%YIxS5X(r#{+QswmJLglUQ^%sAemi|}DvoDFq(N5g56*J}0BfJpi;Nj9dtQj7v#+y>nmW#* zKcnZ=XJnpBkLQ9`OGqovK$Pg0xij3nml>pCjZBX9it_9+r7o%BZ!<1<^-=+6Ut_4% znqsGPojmd9G~+P@I)sKYQIlx?0NM9GMpu=q@D$(}K9;Ec+)o!`zYO(GRv(6^9m$FN z3L!Q#zzCsfFMG}brC+p5<`{A;olG|dU(&x`Z1S|f_{P5dMTc{wx(&# ze0-Ck6pSmg!#&Fzc+70sxVvKi^KerE1iZcS<1BzV{gKSGRzl~o&=1o`FMF9H8@KE| zBae-Zsr#;9bak7IR`-5ea%Srw&Sj_#G%db%7n&x0vqQuA=RGxUb&u7D*VmLzjhD2^mZH9 zvt#ns>?=Zqh8C?v8yb>uIB+K7;e#QEr4sY8db7B^GYzt2snUtEyJN^5>AX=+5B&1Iw1L$q6eC~8gBz6&KOyu<@-SJK`kZP|Ff zrxa$8FcNWKlzx|yq5o=VeuZeJ)*YtZL))m)31=%f#UH_m%({{d)d%ttI!rdqbYX( zm7Uw%%u-UH5(Soq*0u`^*;p@!w}TC;Svre8^?N|?jfcyZv*?#fyTKDVQc>!FkOr9~ zreUm)-xo`$*By{``rWQwkcb;^(t{Fp2P?$&LkJWn@SQMEeaN--o&)29hELXZ>p-b zn&l_54N&E6!=54}}xa4I^a zu)VgkH@-+Ng%&M{fl~C@lKgCO+wRuha~m+O*OL2~ASECj>eQ*PY`-E=WG3RVx?}yI zTFP15sbjy?o>#7TTFz_Y+G?0>X|w!;{e6kd97CQoFhhvNzwO)OENS`c;j5Z6o%t%x z9}ou1r}P;ULLm?BW2;AF-@|m1)t%m$zBd;(bUzYO@p0 z%FQ-0oha|;?S%q)01VF=e=*a4P^euU^4_+9xS~+{vhBUpjrWQBZttBh7}OXJ4)#yf zHSU<}kXG7%4rU(c=Hrchk8p#IT=evL{+3s+%+b>8?)h^KV&`<{JU;elgTLN{T>bhb z+-GeT|Ng2ZAb1|ckUi$!=hxR=W;B%TkP|FyY%q80h}UTEC~eMByA(|5>sxtrrZ=hF zU;Cax)cZo1 z;A4_1AHR8#zId!s3is}mASu7ULDSdF3@N@{%Vi+`*~?1blSa1(XDF^H38VnC&I>YE z0J$KHX?lodS4FVf0=I!%+R<{Rg{X{F!kE~^X+((-5qn97mjclc^>>H}x@t=sw}$%> zKe1^aPv6^O7bXd*J&903gc~{?v5Z^o$4aj`N7G`&)S%lpxfvDsXoLOgD}0{hP;{xc zKq3AX9?wmOf4K0EdjEon5wq*AtH_G(zavoqBHV2z~{am|s(PLn2!f}mm zgX%Oq;y=|9yIFdm)i$$L)fL8idSG@vOw#9jatJJ^o1`Kqx@`XC!{y)(V=8$$TR%CD zsP?apS|79PbdNxX((RDveDTp9wHuDG2Ni8sLEp|$;5Unv&4pG9o-OGV%sx_{x$lN{ zMIwhPgRy&K1fnODoi5103^rUgEOQ#~Wn20g$(z7VA2r{lK_aAs8|eR4HRBQQr(NgJ zm91;$V#zbwyl#dr_i{cu`&&o3I~lw9It$71F!dy1T_5N9XMM3Jq)QIFM7-4Vn~)nu zi&dBVd}~hCT5k)UFPV;{z028!Y07bn-yjLT^>-D|@4FV-IiB^%$8+|G+kaHGBQ(0` zoNhu8saj(noN}ASpus}jc>uT5^_HJj&*`;YhOIgZ31LoSN$4vw2GuPcDpZ~Q6cS;LI@84-EUg%H@F z$I$860oF{(&lm|27kYl~*cJPc_{%I2uF;>|O}K(eA5G#qN8`Vp3JlbLm6sVO{LS1$ zfxrwfQh^MMIIPDVytt%&M<;p8ak#+#QCmy?ig#FDURsG0F2nMuKrt77?T* z_ky0aR6ni1axrTE%E!%|u8^s%$In+i7w}|4HlQpda~WPzM%!0{s)#OB!06P*>~cQD zy}Y86FDT}zt3ln#0Ug@KH(ArEo|Tb5$TOHc)UXZwhnTH2b~jhcv~4(XQFIcrM-qiT zy?jgNPSd{9qIX9GMTX9-x4wL-fA)EXw{SqK4{<>P(QrPY^0}JYkHI;9$6m@_8uh_^ zqKIo6qp_v+(wzVqE-?;zz!sTDmpB?Rdgn7fPj{^HfO_c@Dr2=WUD_gQ@!|39G9RDn z%A#yGo;1Q8Bda1{QjsJuC(r)slGsgtElRvCRB4_yO-Qg= z=C7zmnQL7$JDXhNeg}4-r(QR9*E6&H!8x{F4!QV~+KBm&N@3L5r&JKYjsLQnWfwwW zKhU%*74pMlQ#XG4Pait<8nWfhmV3Eel1BWrN+z%++H?=DtraxA5YMqiK4{!YV!ep4 z#bcQo@!y}D-|{zIt_?a(Wh3OMsQQ%nKu#ReLD$=c#thZ(d4 z4@%}aiRS9+Gh$) zVQagh+$W?9Wr{|)f^m0Q0ew*_zj>E{gPz?OE%%;e1rjc>u}^@`$+XJ2nm~%cxEyU+)?JSXA;S%;`)&Nyu@=!jHC$ zw;lTHN2lo2OR9d>7*r|x=a6S+Y5(R9Gakt!+oK~ZB-+sm{%tCrTdgbgo&o|F$I$|G z(16O+1M4Atfkl_;zq>5%ZQ!v*+nhG%$Z;$GJ!NZjYoVet7*|S{Jl8-27L;392h-~4 zf8GjnQQ!q`a{iZ+`sml{TLx^h&2Rhwqw=tgi5s8%(5SJ&vTCG5*5%ds1XqtqP9vjE z)|18~;alAbNE=1WLH}6*yK5QI_n3^Wa%gcuib3okNCeWSU=JR*9Tb3i9Tdi9is0Tkqi0W!U0i`95L2?=^i`{+i=RxsLO3 zqrW~T$1_-thwO&_0WK!m<%Pb0MU0@Km}TwvjaJUsQ&hB>JBBnP4yVJ|6D23+8M#TF zmtI0`xzq0E2Eybw@p%TbhB*3|GVaJ>p)J2AfRXbz4%1#F@W+(@f)sJDtCu#1&)3*d zupl2rv^z&f7d&iiSwAk}VV$!PFyWn%@6h?977UO7E7u1p0VZ_s+6F0yuso`DHMTO( zQmakkGJLP>JAqtWOxh0UvTg8AC6DPe|J824PhIP$oDN5xjM}Hh+^hC{9lJ7Gs^(lz z+QHZ1a-1it4BvPx8`aNxJD=E>p9L-jk{ux8W;X>Mi)GwM7#g}u++J?H1qZTJ{;nzG zqb8~fjn=YBqD9US9$#BH??M&mI@pC2Mp9y}v4%EyZDm|cjmY+K!Q`3k% zUo(qfk9U5OTKaa2+H2YxsWq!oCgY>=W0n;-1NX%`qHcREVa9)Uf5E9YFUD?Y!mrfF zd~oC%Ajn2;hh<@F{RP(*Grd@zG`kw+;BM+%-07w7%GfLAafQ?r`era^Xt%a}+_FIh zsjkMQlkscb;lMr>Vmkmr7J}trrmZBP<`3chzDP9it1mH(+WVET%WkBL_}{4tt(tsr z>!?hPec+AO3qrDQt8{9l=62g5x)rr|^K8heDV4MT%;rU=S7UDa-jtO6G#SpkL6WhZw?%nJ-; z?m7$_vz1NAyDE@~LAfEX$LOD1c%nsVFsZC%F^PsQH%{RK@@3O-RtE#MzLZegtACG6 zB=sGfbl-+*)Zv97gETZBm~m`uj80)@9zT^99iL(e0X}s(qt@DgPiVAdakqooW z2sO?azr06386EB>hk8v!jMaQE-VnFQRh=}vDQv@=Kr>$6-fj7~VtwB^;s)rO&wmpe zp{CHxxlSZ;{;-}uReR8I!EL_n0*j&|I=Rq^bb3`@x8P;yfy+;NJ@pdLY5$6k#Z}Z8 z-j^6$1Yx4|^M`}3lAKge26#{yr=AmWX^}(72TF=vIM#Zz-JFcpgi;oN|D%_txxAT- z@y;vSbQ&yd%tEM7YWRn@A=}P|%5Xdh`>cF>x!YgzdSv2|JP^$aDtnINIC5~a>{idz zZ)j$QJW)zPe*=xX?VlT1uVP!P>YOktm6J!GoB{*Eq5p2>pWr*SXxYLQHY<$~e@Nozh<#9SZ&2W@Dh==0&S23DTT?VNh1k?n z#S;Gs(>5EI{$%L;c}hh(`sxX*R?D!UE!RrJ9K8@U{+sMgSFZq9lPWz6460W z)wGv{X9quG_bG2p$XtQez3iol12I5tx&B6zllJT94yrpQb%WeX62)KpZ}Hco)?~(8 z%iKLXOyBB+VEW;yQ3L+|^H07+&Pr}p`)gR!0}L<5LeJJNeXH`XTQ00!l_KP;%h(-# z-6n}B&blAm&u~5n2Xe3d7lwjuG6U%}t6HdUQ8P>K)icQO0)mXfzrFNtWp1*2vm0GP nDgxY?nOGSA5B|}+^!)^+yJ@E$={}wKYdZ~9U6n#5t7rcMWyivX literal 0 HcmV?d00001 diff --git a/public/assets/images/cakes/beefCakeDetailImg.svg b/public/assets/images/cakes/beefCakeDetailImg.svg deleted file mode 100644 index d4a0e0eb..00000000 --- a/public/assets/images/cakes/beefCakeDetailImg.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/chickenCakeDetailImg.png b/public/assets/images/cakes/chickenCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7427a43c9bd719845f989d30a0dde5288e87ba GIT binary patch literal 7784 zcmc(EXH-*L+ifTU3WACh>Boaq=@6uYN+%HM9TWjUij)9S0*c5H1e6|%0jZ&cCOs5E zKx&jCogBab2_Q9u5CR__-{N!B1vb{bc!BEz006kC zuXooJ0H7K_J8v@3o!tptxy^ZYIsZh@CIA3nzwz^=(l-^{KD$X3V5)l?fE?k$o&BJ7 z*8*t)05wUB$M??x0K63ayISTURGag56+FaYV*sQ7f-3INbVGn4`V)|#5<0G-cM0aMNGMQ)!muHi;E zT&Q0sOk=F-MkTCP0_WH5_y3?4t4@JA;|KI{qx#fhy`MLFew?zbovQSnJu_|pcPrG? zVrOxYuBNF@`M~tqnTz8d|AoM>bglKvhkRx1!v#yoygfJj4><{NgfL<_b?=zj%=w zmn$2r!Hj<9IiT~eKl7+HUeI#pt_qXK^*LeNTf zmtbwyXKlTrt6Rk|MSnN~;mQT8T%UU^tD)6}{C8#kX{kqL3*};p%HVS41>Z>Nr(I{^ zRSvWUICJNxNu9y=3x!lEy57J9naZcbwZ_DiQC#)JOJmXqu4UBfTqihJbbQ?z)Lq7* zA+bhH#YW?D1OvA8u653syL&ztjQ~AcEU&k8WD`6KX_U-%mk#5y&SdVI3;H|mf*ivc zw45{vk}AcmBSlr?(H_e+B?o;hrGeS{iBWOwBoaCjYBZVBJ|*H_H=UzT;F|EXKst5s zd2w$>&&0=bNWJ?~wPXKX!JRL3Eq{<&(3ws(vz5a82=;o(+G+})bWYEyyrK2N@rE5cv9R(S*jJNR1 z`6&UIXsFoiWVHlocEfBCGoh^6Cekh<*h*}I7 za8r5QNi41GqS91(T3XsFJY?yW67DN@Fr&a@p=(v+lvF?sxT7<`@gK$;;K=sCbGgXd zqVeWW`g~-!P0zby{JEr^Xkv%O}5yrjK<3lhd{9Y(^+pV(hXn-x!H4wyD2MHY*9JHI9UqakOmH2MaV{657 zZNf<&xQT?G`qhOH;sCu{bD=?6B%w=+{amNDKwhFi(ebre2s|-^-S@~xOLZcR8{|q^ zeyDTPTEepSNYW)8(pJIb(8l}-I8q#dF_#-@#OCZjLu4yJKKP-Y+~eQYraD?I4X^Zo zVv%ol&(=I@Bv`leIQYcR(G(H>JwLBJe!2J)Y@=;8UZqC&5RA0BZnd`I`ebXtJ$J`s_O@p6~|NvLl3m~qfXL1@SCy)obo&K+)*%yd?Uoj!N2 zHf>It^!e6Cj?M^Iw6h!c_^u=)Dm1Ga`3-_{2ijrdlnb`ru>rna22*{qc*M*3UL2X} zSRwZ{){Va$vs%&!4J{ap_+kRaE#LFE1lWaBa`9&isHW;^m#E$lol$lf%XJynh_&x7 zJ8Di&Eo9)N@%|Qj5g+z_(Fq$Mio*ovo;>A~r5x%ci-j>SXRtO|Q zUe0vN+x_oR>!n*q?{QaAxUz3(prmj%>sH2T1j?J@s&CPCFE1V0CYnY_u)*<&&XIe@ zVtatpVnGbQi6uOkTnNl@?#=Z`O^ag^eneM>iEyf}RB3LcBpSurjU~87ucm1WEk$^x zJ?JUy13HdfmRhdI1XW&N+<`1K;I;#~EG#U*#-LsmV3CO)q>U>Tw0?i=MhV;=oo4=h z4(6`{?cwOypm+7{Du)no7Op#S@+Y%OF#Vn4uEmRwS5^JP4a{dLr3l@-N(3KWW6#?U z_6(OeR{vBfGr(j*OJ15iw&4+}7^iPas)R_NZv=K-mG);SrM!1TFQcH|D;2|Z21-lcC-ROr$e6XQds)?M|R8~H? z6Jhp8N$57?l8LIw{O(}+QWcal)xy=`sCS;zxDFevb-#Xa`a!8w4^ZoO(w%%iBkga1 z9j-MsR?k`=$XcWo#zTq{8+$wyMIFt8ZD;Q_FBgCH5fHNA1~u!%9t6yd5F%O0U7=0J zkoZcYGGI`a;sEF*EB8ZjUfmH-rnzsUQE=9y8I^u@;MhJaL>U`FMqigIE1xDpfj2Rs z1)I=0yo8_le97mCNXH}V#}_sp(VEAn?z->8`;T=H9=USORwzX4jr7sV(0LE0g#2SB zGZQYhM!pZT-UZ1(LD`Gp$?a~!#S1c_#>r(0L%SRNPJ3Yo*<3mOpR{<*iTXT=PH_}o z52&Ly-O6KT%3Mvszxgao`ZV`iZowe7OSfykV!3z-tB2x67*NtR<}qUNcaP;O8TzIH*K=Z0bPPWxle zzkM%EDKV6`>1`@6DyO9^(k#Ls`l3G`I=FmWV6|xz)Hm8R0lFA^)Qp=?W}1&Kl8vMt z+AhalH@il0*wTr`^mw3O@2TvnTzWzaaU4(Oc z1p)IFjPHfgb;F`MvYX>Oxk0Ou+|RAJdVxG;)|b0%RT9R_Ou0$t{g z91Tjlwool|^u@C78`JImkfFbH%!q>P%H}8srWR%xdN>?fFi;pC&!3A4FIv8O040!P zxqHMljyL6y>#B962LF`>sdvzZd#I!3)e)QqwVc~DXe$|UtdSCA$rvdBefrczQ8xH* z!;+*6QGnkhhb_tH{x8W<#UfRjV;`7%wwz+F&%4ZhW>9l$$b1yn7@vPmyvIO#!@>K_ zL8gPjaa@&||Kb<_A4u{i2%f(t#X~f$_MJY8XCq~`s?R9SLVm2`22MD% z4~jZ3P63UX&9gwJ>PHEmy0s3X75%`d&*1d+7>zXiK!T3Usu;282^NHVlJ36W=qWU{ zwNJCOp?=fPXn}Cv4+!P7{Km11t+)I5*!Y&|m*4>E4d=q}|J2BZ;dVojr?_hl-q(f% z3RtUjxdsz6(l`1vIK0-~Y)xx~dh9AE4J{|F3Q?TKfZXZaS8CUS-AsVi3!Y-KV=;oa z-p#Xo{&Yg$wW>4L=GIb$4es_gr2IX4>|ecsJ5o$pxpJ|QBFy8CiEEo0TZ(5KCA^X z%0%7*zU148i<1-+r+AQyg1o#F(P;{P1N?edusy*L<>m#6a$5<;D7XI=wATChB%`e0 zXqZ=Pi|K^{9B%)K*|Xv_PcuUcGQqz1q!z_qOg3djOwB*@LbR>uaO6P8&3s+Ka6gac z@gRr#CZ0m4*8I^>cw?8ODXx_{zD_3R?{6jt=QP7;$9)ddij~b+jSB8iiiF3mcW>Ny z@Z19)JGfU49SZ|OGHF;!Q=(62n3rQs_f;FkBXV-4F1COPk69fKc7v zmrbiy%C1$ns>k3}@7zq~G25)*J0&M?))}=O&dsjj7l9Z1-G{$NUuWfK96aATY#wJ} z(^|uoTG#wapz^T}*b`qo+G8SXx0=VlIy!z)7qeHoBd(38i0#%c^E9J`XjxDSk~>2! zBKjQORb8yY-FjzawB^yUIq<$T?-Zf38a7h*u?2D;58Mc$9p@63IzNt|So#JNV>9Ys z(SvgZXEvMUE@+q*g-2A}FZALC%Is)fXc*Cgj}$p2XsCYAgQ4$g)0;i=5D46!?hw(V zwu(GXVh`_Vm+G6xbCzB4Do2w)O65v2L;?P(q5i&5AM;cE4=JQoZYW~^D#v#?*`pV> zGV%Cf=V_2h0~{RAhzmSa=MBhbzm_{96>D{;INM;&fwx}MQHt_lk)?{ zVwF`_xF;^EebBVTgX+INpPtAlo$z!mrWE^YMJjkA9Bz!9qx$k9YNl&809;Fq)bSep zF=C)m;S?%iZM+qESC*ddtzZzQUfdd4Vd2?LR=7*PlXU`52?iNl`B!(Mk`5lNk}3ol zijCJe?qTvD>w&L}XXVxc{EXODe59#eIOjmb-wR6#nelTgx=boEX>dASBrom`)PCMg7Tldi*E zd3t#7t%En68@xl*f8EWxJ-3>^?<0A=aoBudnA{em-BCqbpy^G3*^{L0f$%=luDuDI z97!)y=rMPSl(`rI-JWaA%KZTz$k6%b68Pf8;_Zm}$w<_dyW<5;?4+Z}h4A_JCwC$a zB4e>|_+%qv^5@7?jm=3)hVNQbaCtjQTFU>#J^6D7iA7oOcwl9{ofLLmgQ9N@-Hc8C z{1tPFGFvU?X!`2aP1Kjyv*KXEyv z`E;yzxYs!2+gff$-Om9ii1}TkZB>`*aW(rc%PWl%KUSyi?;LVh>X* ze3SW}Jg{E-8bIe)ivBW%MKLn|NBbU15WM-Jrb{vGWv{uooT z!(Zi{)_?rtSlH+L1e_fpEDQ#7Rtk;rL^`738vLn@J+(s;l`qhkQ`qyxw9XUdG(2UcDnbomkVbt<@p5YCh=WNcXxNk&NT;Q`?yp4jy3Q*a>z7Z z#0Mk|O6RHt=(t6$p20AY|L!X)sh8#aUiaT?DlyLU8x%73JB9w?!+Pcd24}C|q~Due z-ap&76pIXUwF=pJ^CiEer>ei@6K0)4GL*Ww{Y}MokQtS=BuCRA{#%)OW&wTY#vJNw z0-5!!8vRFZRiQ`~08X3V40$~gGoxH0;ODrRWAN55Uskoz;+W(S#VV%Q;33zti%P0jvC*_eWb$btmx_NNrL*`kl#~0KlFx( zu6r*|uu(-K@=)Uh3I>`rBD~!85?FYgQ||&I?r8Et%#fwA!m~)IK^G*z*FK{u(a7D^ z4gF+QGhtwLFL_Iv-cv;=Pn|&g;SpNlt%phbBaeEG`=3wjWW!qynJ}|8BX=YeJT~t% z!sgz6;8DKCmYT~ZWp9IsGauCQ^BqXJ=Z3VV!6vs`Jb%BN9*tcipNl&4NPKQ^H~&Q> zc-M=yt(!E$R!^|Po{e-wGC!-$^x$XlGr-eIVJF4V^84h%V))7NXL6~mm*CEv&&&S{ zvitXp6sQ5qFT}_5!MyQ+sLj~_ZZYLCvvC%7K<&Qcb*Y_?FM*$FiLq%9Xj4f;|7}9g z$1%J4*sdP2XRXO%_P;eeRxC)n@wVe=aK&H6;KEYbbHG$OL+QNqqH}afmW%pdsb1Y0|;oF|$fW+;5 zF6JhWw)>!so(65ZWLJr^Yx^8~TRS>_gFGHg)@!wKe%(RRZn8(LP2#|jll|TBtJC#i zdk}u;7uAT_rRRd9xbR9Oe%8RcJxJj|-VYSCPTV$x&xJeaum12|U>G!v??+qh%QYX| zBm2lE+P^6~4L{VxKbH&sWAQw#v={BTL}}#qC#8EMuK^9B3adF`>!kor#$O87vfXYc zckoEL{fnEo&obR73x;%_KiU{yUp8%513R5yZ6bnAqoz=(y#dl7we!Yrj0KLJVZ^{$ nGcbZ{&#QbG|KDzXo~Q8ki(g*U1$`{~*|EO1@m=I?=jZ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/coffeeCakeDetailImg.png b/public/assets/images/cakes/coffeeCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..5f792548d242d73b55975f44739f88299b8f6a32 GIT binary patch literal 10428 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/flowerCakeDetailImg.png b/public/assets/images/cakes/flowerCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..543f3a31d4ad75fc39990bae006a7a9da4033bbf GIT binary patch literal 8980 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/perfumeCakeDetailImg.png b/public/assets/images/cakes/perfumeCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d916e552da272f604e80b34c1abb0260b2429b GIT binary patch literal 12283 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 HI_m!eob3+< literal 0 HcmV?d00001 diff --git a/public/assets/images/cakes/perfumeCakeDetailImg.svg b/public/assets/images/cakes/perfumeCakeDetailImg.svg deleted file mode 100644 index af55a20f..00000000 --- a/public/assets/images/cakes/perfumeCakeDetailImg.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/poopCakeDetailImg.png b/public/assets/images/cakes/poopCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..1e43976634ca2c23bfec6de2909c66e284103d3f GIT binary patch literal 8300 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 KyX3}$r~d`AmHVv# literal 0 HcmV?d00001 diff --git a/public/assets/images/cakes/poopCakeDetailImg.svg b/public/assets/images/cakes/poopCakeDetailImg.svg deleted file mode 100644 index 3f2a3a9f..00000000 --- a/public/assets/images/cakes/poopCakeDetailImg.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/sushiCakeDetailImg.png b/public/assets/images/cakes/sushiCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..b44c8f1b670bc753e9d4bdb15c57911bdbb7ebb5 GIT binary patch literal 8775 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/cakes/vitaminCakeDetailImg.png b/public/assets/images/cakes/vitaminCakeDetailImg.png new file mode 100644 index 0000000000000000000000000000000000000000..1171ae42d6e13e9bad8ca051d0191fdb7624876e GIT binary patch literal 7804 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/images/index.ts b/public/assets/images/index.ts index 05e0d6b1..954782c8 100644 --- a/public/assets/images/index.ts +++ b/public/assets/images/index.ts @@ -3,14 +3,14 @@ export { default as MainLoginImg } from '../images/mainLoginImg.png'; export { default as MainCakeImg } from '../images/mainCakeImg.png'; export { default as LogoImg } from '../images/logoImg.svg'; -export { default as BeefCakeDetailImg } from '../images/cakes/beefCakeDetailImg.svg'; -export { default as ChickenCakeDetailImg } from '../images/cakes/chickenCakeDetailImg.svg'; -export { default as CoffeeCakeDetailImg } from '../images/cakes/coffeeCakeDetailImg.svg'; -export { default as FlowerCakeDetailImg } from '../images/cakes/flowerCakeDetailImg.svg'; -export { default as PerfumeCakeDetailImg } from '../images/cakes/perfumeCakeDetailImg.svg'; -export { default as PoopCakeDetailImg } from '../images/cakes/poopCakeDetailImg.svg'; -export { default as SushiCakeDetailImg } from '../images/cakes/sushiCakeDetailImg.svg'; -export { default as VitaminCakeDetailImg } from '../images/cakes/vitaminCakeDetailImg.svg'; +export { default as BeefCakeDetailImg } from '../images/cakes/beefCakeDetailImg.png'; +export { default as ChickenCakeDetailImg } from '../images/cakes/chickenCakeDetailImg.png'; +export { default as CoffeeCakeDetailImg } from '../images/cakes/coffeeCakeDetailImg.png'; +export { default as FlowerCakeDetailImg } from '../images/cakes/flowerCakeDetailImg.png'; +export { default as PerfumeCakeDetailImg } from '../images/cakes/perfumeCakeDetailImg.png'; +export { default as PoopCakeDetailImg } from '../images/cakes/poopCakeDetailImg.png'; +export { default as SushiCakeDetailImg } from '../images/cakes/sushiCakeDetailImg.png'; +export { default as VitaminCakeDetailImg } from '../images/cakes/vitaminCakeDetailImg.png'; export { default as BeefCakeImg } from '../images/cakes/beefCakeImg.svg'; export { default as ChickenCakeImg } from '../images/cakes/chickenCakeImg.svg'; @@ -39,7 +39,6 @@ export { default as PoopCakeSmallImg } from '../images/cakes/poopCakeSmallImg.sv export { default as SushiCakeSmallImg } from '../images/cakes/sushiCakeSmallImg.svg'; export { default as VitaminCakeSmallImg } from '../images/cakes/vitaminCakeSmallImg.svg'; - export { default as GuideBoxImg } from '../images/guideBoxImg.svg'; export { default as GuideContentImg } from '../images/guideContentImg.svg'; export { default as BorderImg } from '../images/borderImg.svg'; From 22af9e4d5a86d0ae01d4066e23bf92183c6a8c0b Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 22:46:01 +0900 Subject: [PATCH 34/63] =?UTF-8?q?[=20style=20]=20=ED=9E=8C=ED=8A=B8?= =?UTF-8?q?=EC=83=81=EC=9E=90,=20=EC=BC=80=EC=9D=B4=ED=81=AC=20=EC=83=81?= =?UTF-8?q?=EC=9E=90=20border=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cakes/SelectCakes.tsx | 1 - components/cakes/index.tsx | 2 +- components/common/box/LargeBox.tsx | 3 ++- components/common/input/textareaBox.tsx | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/components/cakes/SelectCakes.tsx b/components/cakes/SelectCakes.tsx index 750b9154..31076462 100644 --- a/components/cakes/SelectCakes.tsx +++ b/components/cakes/SelectCakes.tsx @@ -64,7 +64,6 @@ const Styled = { align-items: center; padding: 0.8rem 1.4rem; - border: 0.1rem solid ${theme.colors.main_blue}; background-color: ${(props) => props.index === props.selectedIndex ? theme.colors.main_blue : theme.colors.pastel_blue}; border-radius: 0.6rem; diff --git a/components/cakes/index.tsx b/components/cakes/index.tsx index 7749dd87..ea18bbc7 100644 --- a/components/cakes/index.tsx +++ b/components/cakes/index.tsx @@ -80,7 +80,7 @@ export default function CakesContainer() { {/* API 데이터 */} - + diff --git a/components/common/box/LargeBox.tsx b/components/common/box/LargeBox.tsx index f5283cdf..ccda0611 100644 --- a/components/common/box/LargeBox.tsx +++ b/components/common/box/LargeBox.tsx @@ -32,7 +32,8 @@ const Styled = { padding: 1.4rem 1.2rem; - border: 0.1rem solid ${theme.colors.main_blue}; + border: 0.1rem solid + ${(props) => (props.borderColor ? props.borderColor : theme.colors.main_blue)}; border-radius: 1rem; ${(props) => props.font}; diff --git a/components/common/input/textareaBox.tsx b/components/common/input/textareaBox.tsx index 55341b30..1062fbe9 100644 --- a/components/common/input/textareaBox.tsx +++ b/components/common/input/textareaBox.tsx @@ -10,14 +10,15 @@ interface TextareaBoxProps { value?: string | number; color?: string; limitLength?: number; + borderColor?: string; readOnly?: boolean; children?: ReactNode; } export default function TextareaBox(props: TextareaBoxProps) { - const { placeholder, handleChangeValue, value, color, limitLength, readOnly, children } = props; + const { placeholder, handleChangeValue, value, color, limitLength, borderColor,readOnly, children } = props; return ( - + Date: Wed, 13 Sep 2023 23:24:33 +0900 Subject: [PATCH 35/63] =?UTF-8?q?[=20chore=20]=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B2=84=20=EA=B8=B0=EB=8A=A5=20=EC=A3=BC=EC=84=9D=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constant/siteList.ts | 14 +++++++------- utils/common/getSiteData.ts | 5 +++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/constant/siteList.ts b/constant/siteList.ts index ede78c04..bf0ecd54 100644 --- a/constant/siteList.ts +++ b/constant/siteList.ts @@ -9,11 +9,11 @@ export const SITE_LIST = { IMAGE_TAG: 'ewptmlp5', PRICE_TAG: 'ent7twr4', }, - NAVER_SHOP: { - NAME: 'naverShopping', - LINK: 'https://shopping.naver.com/', - LOGO: NaverShoppingLogoImg, - IMAGE_TAG: 'image_thumb__IB9B3', // 맞는지 잘 모름... - PRICE_TAG: 'lowestPrice_num__A5gM9', // 맞는지 잘 모름... - }, + // NAVER_SHOP: { + // NAME: 'naverShopping', + // LINK: 'https://shopping.naver.com/', + // LOGO: NaverShoppingLogoImg, + // IMAGE_TAG: 'image_thumb__IB9B3', // 맞는지 잘 모름... + // PRICE_TAG: 'lowestPrice_num__A5gM9', // 맞는지 잘 모름... + // }, }; diff --git a/utils/common/getSiteData.ts b/utils/common/getSiteData.ts index 7d45f290..70394ef1 100644 --- a/utils/common/getSiteData.ts +++ b/utils/common/getSiteData.ts @@ -3,7 +3,8 @@ import { SITE_LIST } from '@/constant/siteList'; export const getSiteData = (linkURL: string) => { if (linkURL.includes('29cm')) { return SITE_LIST.TWENTY_NINE; - } else if (linkURL.includes('shopping.naver')) { - return SITE_LIST.NAVER_SHOP; } + // else if (linkURL.includes('shopping.naver')) { + // return SITE_LIST.NAVER_SHOP; + // } }; From 2db8ac772a860893e073be0a2f5ac0f59b7f0c11 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 13 Sep 2023 23:59:07 +0900 Subject: [PATCH 36/63] =?UTF-8?q?[=20style=20]=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=8A=A4=ED=83=80=EC=9D=BC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/[id].tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/components/wishes/[id].tsx b/components/wishes/[id].tsx index c81914b5..92a4ab0e 100644 --- a/components/wishes/[id].tsx +++ b/components/wishes/[id].tsx @@ -68,6 +68,7 @@ const Styled = { flex-direction: column; justify-content: space-between; + width: 100%; height: 11rem; margin-bottom: 4.6rem; From 1a3d7c5344599bbf6af9919748d3db7408aab11c Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Thu, 14 Sep 2023 00:26:05 +0900 Subject: [PATCH 37/63] =?UTF-8?q?[=20fix=20]=20=EC=B9=B4=EC=B9=B4=EC=98=A4?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EA=B4=80=EB=A0=A8=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cakes/index.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/cakes/index.tsx b/components/cakes/index.tsx index ea18bbc7..e2b1c27a 100644 --- a/components/cakes/index.tsx +++ b/components/cakes/index.tsx @@ -55,7 +55,7 @@ export default function CakesContainer() { const { data: wishesData } = useQuery('wished', getWishesData); - const saveReocilData = () => { + const saveRecoilData = () => { setCakesData((prevData) => ({ ...prevData, giverName: giverName, @@ -63,11 +63,12 @@ export default function CakesContainer() { cake: selectedIndex, message: letter, selectedCake: selectedCake, + wishId: Number(router.query.id), })); }; const sendCake = () => { - saveReocilData(); + saveRecoilData(); selectedCake.cakeNumber === 1 ? router.push('/cakes/approve') : mutate(); }; From bdf9dfb7e6e172aa8ca1c89647ca03d5ad747d81 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Thu, 14 Sep 2023 00:40:14 +0900 Subject: [PATCH 38/63] =?UTF-8?q?[=20style=20]=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=B5=9C=EC=A0=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/cakes/SelectCakes.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/cakes/SelectCakes.tsx b/components/cakes/SelectCakes.tsx index 31076462..afc759cc 100644 --- a/components/cakes/SelectCakes.tsx +++ b/components/cakes/SelectCakes.tsx @@ -26,7 +26,7 @@ export default function SelectCakes(props: SelectCakesProps) { selectedIndex={selectedIndex} key={cake.name} > - {`${cake.name}이미지`} + {`${cake.name}이미지`} ))} From 9b6f7dc01b9562bef8d5dcbb08b5f715c732095b Mon Sep 17 00:00:00 2001 From: nkavay Date: Sat, 16 Sep 2023 09:00:22 +0900 Subject: [PATCH 39/63] =?UTF-8?q?[fix]=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/GuideModal.tsx | 54 ++++++++++++++++++-------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/components/common/modal/GuideModal.tsx b/components/common/modal/GuideModal.tsx index def2a7d9..88086229 100644 --- a/components/common/modal/GuideModal.tsx +++ b/components/common/modal/GuideModal.tsx @@ -21,7 +21,7 @@ export default function GuideModal(props: GuideModalProps) { return ( - + {/* */} @@ -29,23 +29,28 @@ export default function GuideModal(props: GuideModalProps) { - - { - - 서비스 가이드 - - - 고객센터 문의하기 - - - - } + {/* 서비스 가이드 */} + {/* { + */} + + 서비스 가이드 설명 + + + 고객센터 문의하기 + + + + + {/* // + // } */} + + ); } @@ -80,13 +85,28 @@ const Styled = { Content: styled.div` position: relative; width: 33rem; - height: 61.4rem; + /* height: 61.4rem; */ overflow: hidden; border-radius: 1.6rem; display: flex; flex-direction: column; + background-image:url(${GuideBoxImg.src}); + background-size: fill; + background-repeat: no-repeat; + background-position: center; + /* max-height: 61.4rem; + overflow-y: auto; + padding: 4.5 0 2rem; */ `, + Content2: styled.div` + padding: 4.5 0 2rem; + margin: 4.5rem 0 2rem; + background-color: black; + overflow-y: auto; + position: relative; +`, + ScrollContent: styled.div` flex: 1; overflow-y: auto; From db7dd557fb80ebc86dfe6aec4f1b6af2b82ea234 Mon Sep 17 00:00:00 2001 From: nkavay Date: Sat, 16 Sep 2023 09:02:09 +0900 Subject: [PATCH 40/63] =?UTF-8?q?[fix]=20links=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/mypage/links/[id].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mypage/links/[id].tsx b/components/mypage/links/[id].tsx index 02e7db64..cbf989da 100644 --- a/components/mypage/links/[id].tsx +++ b/components/mypage/links/[id].tsx @@ -37,7 +37,7 @@ export default function LinksContainer() { - 케이크 + 케이크 모인 케이크 보러가기 {'>'} 총 {wishData?.price}원 From 25d6ba27a3bb9b79c89cc34b58e0cac08faddc77 Mon Sep 17 00:00:00 2001 From: nkavay Date: Sat, 16 Sep 2023 09:16:13 +0900 Subject: [PATCH 41/63] =?UTF-8?q?[test]=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/GuideModal.tsx | 48 +++++++++++--------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/components/common/modal/GuideModal.tsx b/components/common/modal/GuideModal.tsx index 88086229..79e86a23 100644 --- a/components/common/modal/GuideModal.tsx +++ b/components/common/modal/GuideModal.tsx @@ -30,23 +30,21 @@ export default function GuideModal(props: GuideModalProps) { {/* 서비스 가이드 */} - {/* { - */} - - 서비스 가이드 설명 - - - 고객센터 문의하기 - - - - - {/* // - // } */} + { + + 서비스 가이드 설명 + {/* + + 고객센터 문의하기 + + */} + + + } @@ -85,13 +83,13 @@ const Styled = { Content: styled.div` position: relative; width: 33rem; - /* height: 61.4rem; */ + height: 61.4rem; overflow: hidden; border-radius: 1.6rem; display: flex; flex-direction: column; background-image:url(${GuideBoxImg.src}); - background-size: fill; + background-size: contain; background-repeat: no-repeat; background-position: center; /* max-height: 61.4rem; @@ -99,19 +97,13 @@ const Styled = { padding: 4.5 0 2rem; */ `, - Content2: styled.div` - padding: 4.5 0 2rem; - margin: 4.5rem 0 2rem; - background-color: black; - overflow-y: auto; - position: relative; -`, - ScrollContent: styled.div` - flex: 1; + /* flex: 1; */ overflow-y: auto; position: relative; margin: 4.5rem 0 2rem; + display: flex; + justify-content: center; `, ButtonContainer: styled.div` From 3dd8048e0e903bce704f1f818b4666974dd0c46a Mon Sep 17 00:00:00 2001 From: nkavay Date: Sun, 17 Sep 2023 23:18:51 +0900 Subject: [PATCH 42/63] =?UTF-8?q?[fix]=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=EC=B0=BD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/GuideModal.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/common/modal/GuideModal.tsx b/components/common/modal/GuideModal.tsx index 79e86a23..cdac5137 100644 --- a/components/common/modal/GuideModal.tsx +++ b/components/common/modal/GuideModal.tsx @@ -33,7 +33,7 @@ export default function GuideModal(props: GuideModalProps) { { 서비스 가이드 설명 - {/* + 고객센터 문의하기 - */} + } @@ -101,9 +101,10 @@ const Styled = { /* flex: 1; */ overflow-y: auto; position: relative; - margin: 4.5rem 0 2rem; + margin: 4rem 1.5rem 2rem; display: flex; justify-content: center; + flex-direction: column; `, ButtonContainer: styled.div` From 308ed853a95ff5c9f49e43bb64d34228701b7659 Mon Sep 17 00:00:00 2001 From: nkavay Date: Mon, 18 Sep 2023 19:42:23 +0900 Subject: [PATCH 43/63] =?UTF-8?q?[refactor]=20=EB=AC=B8=EC=9D=98=EC=B1=84?= =?UTF-8?q?=EB=84=90=20=EC=B1=84=ED=8C=85=20=EA=B4=80=EB=A0=A8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/modal/GuideModal.tsx | 2 -- components/mypage/index.tsx | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/components/common/modal/GuideModal.tsx b/components/common/modal/GuideModal.tsx index cdac5137..88219bda 100644 --- a/components/common/modal/GuideModal.tsx +++ b/components/common/modal/GuideModal.tsx @@ -21,7 +21,6 @@ export default function GuideModal(props: GuideModalProps) { return ( - {/* */} @@ -29,7 +28,6 @@ export default function GuideModal(props: GuideModalProps) { - {/* 서비스 가이드 */} { 서비스 가이드 설명 diff --git a/components/mypage/index.tsx b/components/mypage/index.tsx index 63b1c93c..a39e4562 100644 --- a/components/mypage/index.tsx +++ b/components/mypage/index.tsx @@ -14,7 +14,6 @@ import { MypageCakeImg } from '@/public/assets/images'; import { useEffect, useState } from 'react'; import useInitEditWishesInfo from '@/hooks/mypage/useInitEditWishesInfo'; import { deleteUserInfo } from '@/api/mypage/mypageAPI'; -import Layout from '../common/layout'; export default function MyPageContainer() { const { isOpen, handleToggle } = useModal(); @@ -34,10 +33,20 @@ export default function MyPageContainer() { const handleWishLinks = () => { router.push('/mypage/links'); }; + + // const handleCustomerService = () => { + // window.Kakao.Channel.chat({ + // channelPublicId: process.env.NEXT_PUBLIC_KAKAO_CHANNEL_ID, + // }); + // }; const handleCustomerService = () => { - window.Kakao.Channel.chat({ - channelPublicId: process.env.NEXT_PUBLIC_KAKAO_CHANNEL_ID, - }); + if (window.Kakao && window.Kakao.Channel) { + window.Kakao.Channel.chat({ + channelPublicId: process.env.NEXT_PUBLIC_KAKAO_CHANNEL_ID, + }); + } else { + alert("채널 연결에 문제가 발생했습니다. 카카오톡에서 '조물주보다생일선물주'를 검색하여 문의해주세요."); + } }; const handleLogOut = () => { From eb809c608137281e3dc48b87ef92b2599d0524c6 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 18 Sep 2023 21:32:11 +0900 Subject: [PATCH 44/63] =?UTF-8?q?[=20fix=20]=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=ED=98=95=EC=8B=9D=20=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- next.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/next.config.js b/next.config.js index ab8fcf1c..201c01e2 100644 --- a/next.config.js +++ b/next.config.js @@ -32,6 +32,7 @@ const nextConfig = { ], domains: [ 'img.29cm.co.kr', + 'img2.29cm.co.kr', 'product.29cm.co.kr', 'localhost', 'wish-image-bucket.s3.ap-northeast-2.amazonaws.com', From 247c97c11b090c84a8d580507bbc94ceedcef0d9 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 18 Sep 2023 21:32:30 +0900 Subject: [PATCH 45/63] =?UTF-8?q?[=20fix=20]=20=ED=91=B8=ED=84=B0=20?= =?UTF-8?q?=EB=A7=81=ED=81=AC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/footer.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/common/footer.tsx b/components/common/footer.tsx index 45266314..d4f07f67 100644 --- a/components/common/footer.tsx +++ b/components/common/footer.tsx @@ -5,15 +5,15 @@ import Image from 'next/image'; export default function Footer() { const handleTermsOfUse = () => { - window.open('https://sunmulzu.notion.site/d20153cbfb7848f8a2599f263217dcc2'); + window.open('https://mercurial-fuschia-8f2.notion.site/7e827f42eecb46f382ac46cf183245d3'); }; const handlePrivacyPolicy = () => { - window.open('https://sunmulzu.notion.site/dd520cd904db4b439c85e91af022bd02?pvs=4'); + window.open('https://mercurial-fuschia-8f2.notion.site/ddaf226cf36e40bfa04fd8bc72d159aa'); }; const handleMarketingAgreement = () => { - window.open('https://sunmulzu.notion.site/3e4a34be04f54f159d7e44c0e92c6e05?pvs=4'); + window.open('https://mercurial-fuschia-8f2.notion.site/52b42acdad7e470ca3c3b6343bc1f24a'); }; return ( From c1111ff2881c1b8d85e4b6b4be2416c06ce826dc Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 18 Sep 2023 22:29:24 +0900 Subject: [PATCH 46/63] =?UTF-8?q?[=20style=20]=20favicon=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/_document.tsx | 5 ++-- public/favicon.ico | Bin 1150 -> 1150 bytes public/manifest.json | 57 ++++++++++++++++++++----------------------- public/next.svg | 1 - public/vercel.svg | 1 - 5 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg diff --git a/pages/_document.tsx b/pages/_document.tsx index e7a54f1f..af5d5b69 100644 --- a/pages/_document.tsx +++ b/pages/_document.tsx @@ -49,9 +49,7 @@ class MyDocument extends Document { rel="stylesheet" /> - - - + @@ -62,6 +60,7 @@ class MyDocument extends Document { name="viewport" content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" /> + ;XbZ*}uKkwqci|_!=;jS$ zltR9rd_GEEkFah;DHfyXdYJ6zYv?~?R5qtPjIYDR+ICeir^sdZW0VdHPZtmF?_qAP z9n(C-;^-SviC&83!IpT_%%J6tV;Dh_Z!a-65|nj-$;l&(j}2moF8xb@d@j^dyMxbV z1C&dh%+8)8 z!ZCnFh|Ow5Mp*d6g3mPJ!Qs3s_kF7t7t)V;@qU7D$(KAi_m$VTlRO{#D784YwItE8 z#yd<4{+Z;bBr}q+4yD8cX2Q1e7KHbbRj}jUk7cF*Az|qwe z_RW9iN@iLx?>uBP*5R`~O&<#LTuUKuv+ z3lL7(9Q~f@&6xfJQqz26+=Cbz{jWsjv=g7JH9ScOG?xV z&Jw#MP`hx6qK0@rI!u;Q&e>&cKf@S664Q*bq&3Q7hS6rKFp9(3y^_3sr!1$EC?o`1 z1kM5>dbKyhTlV%DLnGYLaOS}5XnSlgN*yx0#(*wD_~*My0J=2yR<(b(m5 zUU6=PsjnI>_c!Cq=M41r=+N3y3VC=p93OHZbEzg#ij7z}UtqliK0bl@Ma8MZ&|n^J z-^zr;z6t%tZD_ia3A?O=)1hNgYZ3Ukbs`@hobMXnK`vKGvd6top7d0}XXdk)MR z%&dPRs}1@C2l(pQ9Sp3`#pTMxwW1S^mPbjoGgF!_AF|#FNFVr!TC)klY!ka6h5YWH zZATvvbS<~-Y9TE^rB?&4N6A8c~8lnf*NUhzWk3E_e4(#9VJA~6ncR3 zoz5}CS8DYmcVq^I77SN%NUY}BfJIgn2dc7R \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index d2f84222..00000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 0783a715fbacfdec27761312ebe0213add749c1b Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Mon, 18 Sep 2023 22:29:45 +0900 Subject: [PATCH 47/63] =?UTF-8?q?[=20fix=20]=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EB=93=B1=EB=A1=9D=20=EC=8B=9C=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/mypage/EditWishes/index.tsx | 4 +--- components/wishes/wishesForm/WishesStep1.tsx | 2 +- hooks/wishes/useUploadItemInfo.ts | 5 ++++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/components/mypage/EditWishes/index.tsx b/components/mypage/EditWishes/index.tsx index af86bb51..338722e5 100644 --- a/components/mypage/EditWishes/index.tsx +++ b/components/mypage/EditWishes/index.tsx @@ -1,7 +1,6 @@ import BackBtn from '@/components/common/button/backBtn'; import BasicBox from '@/components/common/box/BasicBox'; import HalfBox from '@/components/common/box/HalfBox'; -import LargeBox from '@/components/common/box/LargeBox'; import Button from '@/components/common/button/button'; import Calendar from '@/components/common/calendar/calendar'; import InputBox from '@/components/common/input/inputBox'; @@ -16,9 +15,8 @@ import { LIMIT_TEXT } from '@/constant/limitText'; import { WISHES_STATUS } from '@/constant/wishesStatus'; import useInitEditWishesInfo from '@/hooks/mypage/useInitEditWishesInfo'; import useEditWishesInfo from '@/hooks/queries/mypage/useEditWishesInfo'; -import { CalendarGreyIc, CalendarIc, ImageUploadIc } from '@/public/assets/icons'; +import { CalendarGreyIc, CalendarIc } from '@/public/assets/icons'; import theme from '@/styles/theme'; -import Image from 'next/image'; import styled from 'styled-components'; import { useEffect, useState } from 'react'; import { validation } from '@/validation/input'; diff --git a/components/wishes/wishesForm/WishesStep1.tsx b/components/wishes/wishesForm/WishesStep1.tsx index bec8ca48..02456964 100644 --- a/components/wishes/wishesForm/WishesStep1.tsx +++ b/components/wishes/wishesForm/WishesStep1.tsx @@ -38,7 +38,7 @@ export default function WishesStep1(props: WishesStep1Props) { const [selfInputPrice, handleChangeSelfInputPrice] = useInput('', LIMIT_TEXT[15]); useEffect(() => { - imageURL && validation.isCorrectSite(linkURL) && initial + ((imageURL && validation.isCorrectSite(linkURL)) || preSignedImageURL !== "") && initial ? setIsNextStepAvailable(true) : setIsNextStepAvailable(false); }, [initial, imageURL]); diff --git a/hooks/wishes/useUploadItemInfo.ts b/hooks/wishes/useUploadItemInfo.ts index 0c4fe1ff..680685c9 100644 --- a/hooks/wishes/useUploadItemInfo.ts +++ b/hooks/wishes/useUploadItemInfo.ts @@ -12,7 +12,10 @@ export default function useUploadItemInfo() { QUERY_KEY.PRE_SIGNED_URL, () => getPresignedURL(imageFile?.name), { - enabled: imageFile !== null && imageFile?.name !== '', + enabled: + imageFile !== null && + validation.checkImageFileSize(imageFile.size) && + imageFile?.name !== '', }, ); From 6ed3975d9d18f5d1f2daecbb2853046652d72ab9 Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Wed, 20 Sep 2023 14:46:50 +0900 Subject: [PATCH 48/63] =?UTF-8?q?[=20fix=20]=20=EA=B3=B5=EB=B0=B1=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/wishes/[id].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/wishes/[id].tsx b/components/wishes/[id].tsx index 92a4ab0e..e7c53a0b 100644 --- a/components/wishes/[id].tsx +++ b/components/wishes/[id].tsx @@ -49,7 +49,7 @@ export default function WishesContainer() { fontColor={theme.colors.main_blue} borderColor="transparent" > - + From fdd6b6fa21e28581ce42e1ca03362c5adce32e8f Mon Sep 17 00:00:00 2001 From: myeongheonhong Date: Fri, 22 Sep 2023 14:18:20 +0900 Subject: [PATCH 49/63] =?UTF-8?q?[=20feat=20]=20GA=20=EC=BB=A4=EC=8A=A4?= =?UTF-8?q?=ED=85=80=20=EC=BD=94=EB=93=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/_app.tsx | 82 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/pages/_app.tsx b/pages/_app.tsx index 122506b7..11986029 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -3,10 +3,11 @@ import type { AppProps } from 'next/app'; import Head from 'next/head'; import { RecoilRoot } from 'recoil'; import GlobalStyle from '../styles/GlobalStyle'; -import { useMediaQuery } from 'react-responsive'; import { ThemeProvider } from 'styled-components'; import theme from '@/styles/theme'; import { useEffect } from 'react'; +import Script from 'next/script'; +import { useRouter } from 'next/router'; declare global { interface Window { @@ -15,11 +16,6 @@ declare global { } export default function App({ Component, pageProps }: AppProps) { - // const mobile = useMediaQuery({ query: 'max-width:800px' }); - const isMobile = useMediaQuery({ - query: '(max-width:76.7rem)', - }); - const queryClient = new QueryClient({ defaultOptions: { queries: { @@ -29,36 +25,66 @@ export default function App({ Component, pageProps }: AppProps) { }, }); - const setVh = () => { - document.documentElement.style.setProperty('--vh', `${window.innerHeight}px`); - }; + const router = useRouter(); + + // const setVh = () => { + // document.documentElement.style.setProperty('--vh', `${window.innerHeight}px`); + // }; useEffect(() => { if (window.Kakao && !window.Kakao.isInitialized()) { window.Kakao.init(process.env.NEXT_PUBLIC_KAKAO_JAVASCRIPT_KEY); } //높이 resize - window.addEventListener('resize', setVh); - setVh(); + // window.addEventListener('resize', setVh); + // setVh(); }, []); + // useEffect(() => { + // const handleRouteChange = (url: string) => { + // gtag.pageview(url); + // }; + // router.events.on('routeChangeComplete', handleRouteChange); + // router.events.on('hashChangeComplete', handleRouteChange); + // return () => { + // router.events.off('routeChangeComplete', handleRouteChange); + // router.events.off('hashChangeComplete', handleRouteChange); + // }; + // }, [router.events]); + return ( - - - - Make A Wish | 선물고민은 그만! - - - - - - - + <> + {/* Global Site Tag (gtag.js) - Google Analytics */} +