diff --git a/web/src/components/trigger/TriggerWizardDialog.tsx b/web/src/components/trigger/TriggerWizardDialog.tsx index a3970758c..976cf5f8a 100644 --- a/web/src/components/trigger/TriggerWizardDialog.tsx +++ b/web/src/components/trigger/TriggerWizardDialog.tsx @@ -7,7 +7,7 @@ import { DialogHeader, DialogTitle, } from "../ui/dialog"; -import { useReducer } from "react"; +import { useReducer, useEffect } from "react"; import Step1NameAndType, { Step1FormData, } from "@/components/trigger/wizard/Step1NameAndType"; @@ -117,6 +117,19 @@ export default function TriggerWizardDialog({ const [wizardState, dispatch] = useReducer(wizardReducer, initialState); + useEffect(() => { + if (!open) { + dispatch({ type: "RESET" }); + } + }, [open]); + + // Reset wizard state when opening for a different trigger or when creating new + useEffect(() => { + if (open) { + dispatch({ type: "RESET" }); + } + }, [open, trigger]); + const handleStep1Next = (data: Step1FormData) => { dispatch({ type: "SET_STEP_1", payload: data }); }; @@ -146,7 +159,7 @@ export default function TriggerWizardDialog({ combinedData.friendly_name || "", ); } - handleClose(); + // Remove handleClose() - let the parent component handle closing after save completes }; const handleBack = () => { @@ -162,7 +175,7 @@ export default function TriggerWizardDialog({ { - if (!open) { + if (!open && !isLoading) { handleClose(); } }} diff --git a/web/src/views/settings/TriggerView.tsx b/web/src/views/settings/TriggerView.tsx index edec1ebb5..8d794c2f2 100644 --- a/web/src/views/settings/TriggerView.tsx +++ b/web/src/views/settings/TriggerView.tsx @@ -229,6 +229,7 @@ export default function TriggerView({ .finally(() => { setIsLoading(false); setShowCreate(false); + setSelectedTrigger(null); }); }, [t, updateConfig, selectedCamera, setUnsavedChanges], @@ -314,7 +315,6 @@ export default function TriggerView({ // Regular update without rename saveToConfig(trigger, true); } - setSelectedTrigger(null); }, [t, saveToConfig, selectedCamera, selectedTrigger, setUnsavedChanges], ); @@ -597,7 +597,7 @@ export default function TriggerView({ @@ -616,7 +619,7 @@ export default function TriggerView({