From aeaf1cf243e99a212484a49545bc67a1f792e403 Mon Sep 17 00:00:00 2001 From: kitos Date: Fri, 3 Jul 2026 16:27:41 +0200 Subject: [PATCH] fix(campaigns): reset modification-request modal state on close, not just on success Previously action/testId/justification only reset inside the success handler, so cancelling and reopening the modal left stale form values. Mirrors the reset-on-close pattern already used by AddTestToCampaignModal. --- .../components/RequestCampaignModificationModal.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/RequestCampaignModificationModal.tsx b/frontend/src/components/RequestCampaignModificationModal.tsx index 4885453..4986e44 100644 --- a/frontend/src/components/RequestCampaignModificationModal.tsx +++ b/frontend/src/components/RequestCampaignModificationModal.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useEffect, useState } from "react"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { X, Loader2 } from "lucide-react"; import { createModificationRequest, type CampaignTest } from "../api/campaigns"; @@ -23,6 +23,14 @@ export default function RequestCampaignModificationModal({ const [testId, setTestId] = useState(""); const [justification, setJustification] = useState(""); + useEffect(() => { + if (!open) { + setAction("remove_test"); + setTestId(""); + setJustification(""); + } + }, [open]); + const mutation = useMutation({ mutationFn: () => createModificationRequest(campaignId, { @@ -32,8 +40,6 @@ export default function RequestCampaignModificationModal({ }), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["campaign-modification-requests", campaignId] }); - setTestId(""); - setJustification(""); onSuccess(); onClose(); },