From 2aee951fa3d1ac0e4140687edc1a4a615d232b1f Mon Sep 17 00:00:00 2001 From: jerry Date: Tue, 13 Aug 2024 17:01:37 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B3=B5=EC=97=B0=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95=20alert=EC=9D=98=20o?= =?UTF-8?q?kText=EB=A5=BC=20=EB=88=84=EB=A5=B4=EB=A9=B4=20=EA=B2=80?= =?UTF-8?q?=EC=82=AC=ED=95=98=EB=8D=98=20=EC=98=88=EB=A7=A4=EC=9E=90=20?= =?UTF-8?q?=EC=A1=B4=EC=9E=AC=20=EC=97=AC=EB=B6=80=EB=A5=BC=20=ED=97=A4?= =?UTF-8?q?=EB=8D=94=EC=9D=98=20=EC=82=AD=EC=A0=9C=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=EC=8B=9C=20=EA=B2=80=EC=82=AC=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD=20useEffect=EC=9D=98=20?= =?UTF-8?q?=EC=9D=B8=EC=9E=90=EB=A1=9C=20isBookerExist=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=95=98=EC=97=AC=20=EC=98=88=EB=A7=A4=EC=9E=90=20?= =?UTF-8?q?=EC=A1=B4=EC=9E=AC=20=EC=97=AC=EB=B6=80=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EB=82=B4=EB=B6=80=EC=97=90=EC=84=9C=20=EB=B0=9B=EC=95=84?= =?UTF-8?q?=EC=98=A4=EC=A7=80=20=EB=AA=BB=ED=95=98=EB=8D=98=20=EC=98=A4?= =?UTF-8?q?=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 --- src/pages/modifyManage/ModifyManage.tsx | 79 ++++++++++--------------- 1 file changed, 32 insertions(+), 47 deletions(-) diff --git a/src/pages/modifyManage/ModifyManage.tsx b/src/pages/modifyManage/ModifyManage.tsx index 201a5865..1d381720 100644 --- a/src/pages/modifyManage/ModifyManage.tsx +++ b/src/pages/modifyManage/ModifyManage.tsx @@ -16,7 +16,7 @@ import { TextField, TimePicker, } from "@components/commons"; - +import MetaTag from "@components/commons/meta/MetaTag"; import { NAVIGATION_STATE } from "@constants/navigationState"; import { useHeader, useModal } from "@hooks"; import Content from "@pages/gig/components/content/Content"; @@ -34,12 +34,11 @@ import { GENRE_LIST } from "./constants/genreList"; import * as S from "./ModifyManage.styled"; import { BANK_TYPE, Cast, DataProps, Schedule, Staff } from "./typings/gigInfo"; import { isAllFieldsFilled } from "./utils/handleEvent"; -import MetaTag from "@components/commons/meta/MetaTag"; const ModifyManage = () => { - const [ModifyManageStep, setModifyManageStep] = useState(1); // 등록 step 나누기 + const [modifyManageStep, setModifyManageStep] = useState(1); // 등록 step 나누기 const { openConfirm, closeConfirm, openAlert, closeAlert } = useModal(); - // gigInfo 초기화 + const { performanceId } = useParams(); const navigate = useNavigate(); @@ -85,6 +84,7 @@ const ModifyManage = () => { setPerformanceContact(data.performanceContact); setTicketPrice(data.ticketPrice); setTotalScheduleCount(data.totalScheduleCount); + setIsExist(data.isBookerExist); setScheduleList( data.scheduleList.map((item) => ({ scheduleId: item.scheduleId ?? -1, @@ -123,7 +123,6 @@ const ModifyManage = () => { const { mutateAsync: updatePerformance } = useUpdatePerformance(); - //여기서 공연 수정하기 PUT 요청 보내야함 const handleComplete = async () => { const filteredCastList = castList.filter( (cast) => cast.castName || cast.castRole || cast.castPhoto @@ -183,14 +182,6 @@ const ModifyManage = () => { setIsChecked(e.target.checked); }; - useEffect(() => { - setIsExist(data?.isBookerExist); - }, [data?.isBookerExist]); - - // useEffect(() => { - // setBankInfo(bankName); - // }, [bankName]); - // 티켓 가격이 무료일 때 가격을 0으로 설정하고 수정 불가능하게 함 useEffect(() => { if (isFree) { @@ -214,7 +205,7 @@ const ModifyManage = () => { const { setHeader } = useHeader(); const handleLeftBtn = () => { - if (ModifyManageStep === 1) { + if (modifyManageStep === 1) { openConfirm({ title: "수정을 취소할까요?", subTitle: "페이지를 나갈 경우, 내용이 저장되지 않아요.", @@ -244,13 +235,20 @@ const ModifyManage = () => { setTicketPrice(numericValue); }; - const { mutate, mutateAsync } = usePerformanceDelete(); + const { mutate, mutateAsync: deletePerformance } = usePerformanceDelete(); + + const handleDeletePerformance = async (_performanceId: number) => { + await deletePerformance(Number(performanceId)); - const handleDeletePerformance = async (_performanceId: number, isExisttt: boolean) => { - //사용자가 한명 이상 있으면 안된다는 문구 띄움 - 동훈이가 수정 시 공연 정보 조회 API (GET)에 COUNT나 bookingList를 넘겨줄 듯 - console.log("isExisttt", isExisttt); + openAlert({ + title: "공연이 삭제되었습니다.", + okText: "확인했어요", + okCallback: () => navigate("/gig-manage"), + }); + }; - if (isExisttt) { + const handleRightBtn = () => { + if (isBookerExist) { openAlert({ title: "공연 삭제가 불가해요.", subTitle: "예매자가 1명 이상 있을 경우, 삭제할 수 없어요.", @@ -258,49 +256,36 @@ const ModifyManage = () => { okCallback: closeAlert, }); } else { - //공연 삭제하는 로직 - performanceId 하나로 DELETE 요청 보내고, - mutateAsync(Number(performanceId)); - navigate("/gig-manage"); + openConfirm({ + title: "공연을 삭제하시겠어요?", + subTitle: "삭제할 경우, 작성했던 내용을 되돌릴 수 없어요.", + okText: "삭제할게요", + okCallback: () => handleDeletePerformance(Number(performanceId)), + noText: "아니요", + noCallback: () => closeConfirm(), + }); } }; - const handleRightBtn = () => { - openConfirm({ - title: "공연을 삭제하시겠어요?", - subTitle: "삭제할 경우, 작성했던 내용을 되돌릴 수 없어요.", - okText: "삭제할게요", - okCallback: () => { - //공연 수정 DELETE API 요청 쏘는 로직 존재할 예정 - handleDeletePerformance(Number(performanceId), isBookerExist as boolean); //예시로 박아둠 - }, - noText: "아니요", - noCallback: () => { - closeConfirm(); - }, - }); - }; - useEffect(() => { const pageTitle = - ModifyManageStep === 1 - ? "공연 수정하기" - : ModifyManageStep === 2 - ? "공연 수정하기" - : "미리보기"; + modifyManageStep === 1 ? "공연 수정하기" : modifyManageStep === 2 ? "미리보기" : ""; + setHeader({ headerStyle: NAVIGATION_STATE.ICON_TITLE_SUB_TEXT, title: pageTitle, subText: "삭제", leftOnClick: handleLeftBtn, - rightOnClick: handleRightBtn, + rightOnClick: () => handleRightBtn(), }); - }, [setHeader, ModifyManageStep]); + }, [modifyManageStep, isBookerExist]); + if (isLoading) { return ; } if (data) { - if (ModifyManageStep === 1) { + if (modifyManageStep === 1) { return ( <> @@ -546,7 +531,7 @@ const ModifyManage = () => { // ); // } - if (ModifyManageStep === 2) { + if (modifyManageStep === 2) { return ( <>