From f7f17cba1c2099ac47f6c7d5f2d9d9ece6c134de Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 21 Jun 2023 02:53:20 -0700 Subject: [PATCH] Fix values staying in Edit team even if not saved The values a user entered in the Edit team modal would persist even if the user hit cancel to close the modal. They wouldn't save to the server, but very confusing nonetheless. Now fixed. --- components/party/EditPartyModal/index.tsx | 31 +++++++++++++---------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/components/party/EditPartyModal/index.tsx b/components/party/EditPartyModal/index.tsx index 4f7bd3d0..92db0d85 100644 --- a/components/party/EditPartyModal/index.tsx +++ b/components/party/EditPartyModal/index.tsx @@ -74,25 +74,15 @@ const EditPartyModal = ({ updateCallback, ...props }: Props) => { // Hooks useEffect(() => { - if (!party) return - - setName(party.name ? party.name : '') - setDescription(party.description ? party.description : '') - setRaid(party.raid) - setAutoGuard(party.autoGuard) - setAutoSummon(party.autoSummon) - setFullAuto(party.fullAuto) - setChargeAttack(party.chargeAttack) - setClearTime(party.clearTime) - if (party.turnCount) setTurnCount(party.turnCount) - if (party.buttonCount) setButtonCount(party.buttonCount) - if (party.chainCount) setChainCount(party.chainCount) + persistFromState() }, [party]) // Methods: Event handlers (Dialog) function openChange() { if (open) { setOpen(false) + setCurrentSegment(0) + persistFromState() if (props.onOpenChange) props.onOpenChange(false) } else { setOpen(true) @@ -183,6 +173,21 @@ const EditPartyModal = ({ updateCallback, ...props }: Props) => { } // Methods: Data methods + function persistFromState() { + if (!party) return + setName(party.name ? party.name : '') + setDescription(party.description ? party.description : '') + setRaid(party.raid) + setAutoGuard(party.autoGuard) + setAutoSummon(party.autoSummon) + setFullAuto(party.fullAuto) + setChargeAttack(party.chargeAttack) + setClearTime(party.clearTime) + if (party.turnCount) setTurnCount(party.turnCount) + if (party.buttonCount) setButtonCount(party.buttonCount) + if (party.chainCount) setChainCount(party.chainCount) + } + function updateDetails(event: React.MouseEvent) { const descriptionValue = descriptionInput.current?.value const details: DetailsObject = {