From b447c462075540590583ed4c9bf074bd13e0ae43 Mon Sep 17 00:00:00 2001 From: seorinn Date: Wed, 10 Jul 2024 09:52:05 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=EB=AF=B8=EC=84=B1=EB=85=84?= =?UTF-8?q?=EC=9E=90=20=EA=B0=80=EC=9E=85=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/SignupPage/PersonalInfo/index.jsx | 28 ++++++++------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/pages/SignupPage/PersonalInfo/index.jsx b/src/pages/SignupPage/PersonalInfo/index.jsx index c6a5caa5..4c4277e9 100644 --- a/src/pages/SignupPage/PersonalInfo/index.jsx +++ b/src/pages/SignupPage/PersonalInfo/index.jsx @@ -66,7 +66,16 @@ function PersonalInfo({ const sendCode = async (e) => { e.preventDefault(); - if (!/^010\d{8}$/.test(phoneNumber) || !isValidation()) { + const fullBirthYear = + Number(birthDate.slice(0, 2)) > 20 + ? `19${birthDate.slice(0, 2)}` + : `20${birthDate.slice(0, 2)}`; + + if (new Date().getFullYear() - fullBirthYear + 1 < 20) { + setErrorMessage("회원가입은 20세 이상부터 가능합니다."); + setShowErrorModal(true); + return; + } else if (!/^010\d{8}$/.test(phoneNumber) || !isValidation()) { setErrorMessage( "성함, 주민등록번호, 통신사, 휴대폰 번호를\n 모두 정확하게 입력해 주세요." ); @@ -139,23 +148,6 @@ function PersonalInfo({ } }; - useEffect(() => { - if (birthDate.length !== 6) return; - - const Today = new Date(); - const year = Today.getFullYear() - 14; - const month = String(Today.getMonth() + 1).padStart(2, "0"); - const day = String(Today.getDate()).padStart(2, "0"); - - const fullBirthDate = - Number(birthDate.slice(0, 2)) > 20 ? `19${birthDate}` : `20${birthDate}`; - - if (fullBirthDate > year + month + day) { - setErrorMessage("회원가입은 만 14세 이상부터\n가능합니다."); - setShowErrorModal(true); - } - }, [birthDate]); - useEffect(() => { return () => { timer && clearInterval(timer); From 8932da27b52cc1f0d4d77cefe59f4b94a0281590 Mon Sep 17 00:00:00 2001 From: seorinn Date: Wed, 10 Jul 2024 22:08:24 +0900 Subject: [PATCH 2/9] =?UTF-8?q?fix:=20=EB=93=9C=EB=9D=BC=EC=9D=B4=EB=B2=84?= =?UTF-8?q?=20=ED=94=84=EB=A1=9C=ED=95=84=20=EC=88=98=EC=A0=95=20>=20?= =?UTF-8?q?=ED=99=9C=EB=8F=99=20=EA=B0=80=EB=8A=A5=20=EC=A7=80=EC=97=AD=20?= =?UTF-8?q?=EB=B3=B5=EC=88=98=20=EC=84=A0=ED=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BasicInfo/RegionModal/Region/index.jsx | 11 ++++++++--- .../DriverProfile/BasicInfo/RegionModal/index.jsx | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/Region/index.jsx b/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/Region/index.jsx index c582eb37..b19b13a1 100644 --- a/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/Region/index.jsx +++ b/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/Region/index.jsx @@ -2,9 +2,14 @@ function Region({ region, image, name, setRegion }) { return (
setRegion(name)} + onClick={() => { + if (region.includes(name)) { + const newRegions = region.filter((item) => item !== name); + setRegion(newRegions); + } else setRegion([...region, name]); + }} >
{name}
- {region === name ? ( + {region.includes(name) && "ring ring-primary" ? (
) : (
diff --git a/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/index.jsx b/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/index.jsx index 5fc46902..694363a0 100644 --- a/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/index.jsx +++ b/src/pages/MyProfilePage/DriverProfile/BasicInfo/RegionModal/index.jsx @@ -20,7 +20,7 @@ function RegionModal({ showModal, setShowModal, driverInfo, setDriverInfo }) { const cancelHandler = () => setShowModal(false); const confirmHandler = () => { - setDriverInfo({ ...driverInfo, region: region }); + setDriverInfo({ ...driverInfo, region }); setShowModal(false); }; @@ -45,6 +45,10 @@ function RegionModal({ showModal, setShowModal, driverInfo, setDriverInfo }) { }; }, [showModal]); + useEffect(() => { + setDriverInfo({ ...driverInfo, region }); + }, [region]); + useEffect(() => { getPartyRegionListFunc(); }, []); From acea225092180110feed9aafa3e46a7ed1220997 Mon Sep 17 00:00:00 2001 From: seorinn Date: Wed, 10 Jul 2024 23:03:46 +0900 Subject: [PATCH 3/9] =?UTF-8?q?fix:=20api=20=EC=A3=BC=EC=86=8C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=8F=20data=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/region.js | 14 +++++------ .../Region/RegionList/EditFormModal/index.jsx | 4 ++-- .../RegionList/NewRegion/FormModal/index.jsx | 4 ++-- .../Region/RegionList/RegionItem/index.jsx | 24 +++++++++---------- .../Management/Region/RegionList/index.jsx | 4 ++-- .../RegionModal/RegionButton/index.jsx | 24 ++++++++++--------- .../UserInfo/UserTable/RegionModal/index.jsx | 6 ++--- .../RegionList/Region/index.jsx | 4 ++-- .../DriverApplyPage/RegionList/index.jsx | 17 ++++++++----- .../RegionModal/RegionButton/index.jsx | 17 +++++-------- .../PartyFilter/RegionModal/index.jsx | 2 +- .../BasicInfo/RegionModal/index.jsx | 6 ++--- .../Region/RegionButton/index.jsx | 16 ++++++------- src/pages/NewPartyPage/Region/index.jsx | 2 +- 14 files changed, 73 insertions(+), 71 deletions(-) diff --git a/src/api/region.js b/src/api/region.js index df4f6de4..08957d99 100644 --- a/src/api/region.js +++ b/src/api/region.js @@ -1,15 +1,15 @@ import { GET, POST, PUT, DELETE } from "../utils/axios"; -export const getPartyRegionList = async () => await GET("/party/region"); +export const getPartyRegionList = async () => await GET("/region"); export const postNewPartyRegion = async (body) => await POST("/region", body, true); -export const putPartyRegion = async (partyRegionId, body) => - await PUT(`/region/${partyRegionId}`, body, true); +export const putPartyRegion = async (regionId, body) => + await PUT(`/region/${regionId}`, body, true); -export const deletePartyRegion = async (partyRegionId) => - await DELETE(`/region/${partyRegionId}`, true); +export const deletePartyRegion = async (regionId) => + await DELETE(`/region/${regionId}`, true); -export const getPartyRegionDriverList = async (partyRegionId) => - await GET(`/region/${partyRegionId}`, true); +export const getPartyRegionDriverList = async (regionId) => + await GET(`/region/${regionId}`, true); diff --git a/src/pages/AdminPage/Management/Region/RegionList/EditFormModal/index.jsx b/src/pages/AdminPage/Management/Region/RegionList/EditFormModal/index.jsx index e1a0abee..f1da36b7 100644 --- a/src/pages/AdminPage/Management/Region/RegionList/EditFormModal/index.jsx +++ b/src/pages/AdminPage/Management/Region/RegionList/EditFormModal/index.jsx @@ -24,8 +24,8 @@ function EditFormModal({ ? regionImg : await uploadImage(regionImg); const body = { - region: region, - regionImg: regionImgURL, + name: region, + image: regionImgURL, }; await putPartyRegion(editTarget.partyRegionId, body); diff --git a/src/pages/AdminPage/Management/Region/RegionList/NewRegion/FormModal/index.jsx b/src/pages/AdminPage/Management/Region/RegionList/NewRegion/FormModal/index.jsx index b517404c..c371c1e1 100644 --- a/src/pages/AdminPage/Management/Region/RegionList/NewRegion/FormModal/index.jsx +++ b/src/pages/AdminPage/Management/Region/RegionList/NewRegion/FormModal/index.jsx @@ -16,8 +16,8 @@ function FormModal({ showModal, setShowModal, getPartyRegionListFunc }) { try { const regionImgURL = await uploadImage(regionImg); const body = { - region: region, - regionImg: regionImgURL, + name: region, + image: regionImgURL, }; await postNewPartyRegion(body); diff --git a/src/pages/AdminPage/Management/Region/RegionList/RegionItem/index.jsx b/src/pages/AdminPage/Management/Region/RegionList/RegionItem/index.jsx index bf1e6071..fb6ea825 100644 --- a/src/pages/AdminPage/Management/Region/RegionList/RegionItem/index.jsx +++ b/src/pages/AdminPage/Management/Region/RegionList/RegionItem/index.jsx @@ -3,9 +3,9 @@ import { useNavigate } from "react-router-dom"; import { deletePartyRegion } from "../../../../../../api/region"; function RegionItem({ - partyRegionId, - regionImg, - region, + regionId, + image, + name, setEditTarget, setShowEditModal, getPartyRegionListFunc, @@ -16,7 +16,7 @@ function RegionItem({ const deleteHandler = async () => { try { - const result = await deletePartyRegion(partyRegionId); + const result = await deletePartyRegion(regionId); if (result.statusCode === 409) return setShowDeleteErrorModal(true); alert("성공적으로 지역을 삭제했습니다."); getPartyRegionListFunc(); @@ -33,21 +33,21 @@ function RegionItem({ > {region} {!isHover ? (
- {region} + {name}
) : (
-

{region}

+

{name}