mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-12 01:57:36 +03:00
ensure wizard resets when reopening
This commit is contained in:
parent
042ae73b81
commit
b4bf669306
@ -7,7 +7,7 @@ import {
|
|||||||
DialogHeader,
|
DialogHeader,
|
||||||
DialogTitle,
|
DialogTitle,
|
||||||
} from "../ui/dialog";
|
} from "../ui/dialog";
|
||||||
import { useReducer } from "react";
|
import { useReducer, useEffect } from "react";
|
||||||
import Step1NameAndType, {
|
import Step1NameAndType, {
|
||||||
Step1FormData,
|
Step1FormData,
|
||||||
} from "@/components/trigger/wizard/Step1NameAndType";
|
} from "@/components/trigger/wizard/Step1NameAndType";
|
||||||
@ -117,6 +117,19 @@ export default function TriggerWizardDialog({
|
|||||||
|
|
||||||
const [wizardState, dispatch] = useReducer(wizardReducer, initialState);
|
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) => {
|
const handleStep1Next = (data: Step1FormData) => {
|
||||||
dispatch({ type: "SET_STEP_1", payload: data });
|
dispatch({ type: "SET_STEP_1", payload: data });
|
||||||
};
|
};
|
||||||
@ -146,7 +159,7 @@ export default function TriggerWizardDialog({
|
|||||||
combinedData.friendly_name || "",
|
combinedData.friendly_name || "",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
handleClose();
|
// Remove handleClose() - let the parent component handle closing after save completes
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleBack = () => {
|
const handleBack = () => {
|
||||||
@ -162,7 +175,7 @@ export default function TriggerWizardDialog({
|
|||||||
<Dialog
|
<Dialog
|
||||||
open={open}
|
open={open}
|
||||||
onOpenChange={(open) => {
|
onOpenChange={(open) => {
|
||||||
if (!open) {
|
if (!open && !isLoading) {
|
||||||
handleClose();
|
handleClose();
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|||||||
@ -229,6 +229,7 @@ export default function TriggerView({
|
|||||||
.finally(() => {
|
.finally(() => {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
setShowCreate(false);
|
setShowCreate(false);
|
||||||
|
setSelectedTrigger(null);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
[t, updateConfig, selectedCamera, setUnsavedChanges],
|
[t, updateConfig, selectedCamera, setUnsavedChanges],
|
||||||
@ -314,7 +315,6 @@ export default function TriggerView({
|
|||||||
// Regular update without rename
|
// Regular update without rename
|
||||||
saveToConfig(trigger, true);
|
saveToConfig(trigger, true);
|
||||||
}
|
}
|
||||||
setSelectedTrigger(null);
|
|
||||||
},
|
},
|
||||||
[t, saveToConfig, selectedCamera, selectedTrigger, setUnsavedChanges],
|
[t, saveToConfig, selectedCamera, selectedTrigger, setUnsavedChanges],
|
||||||
);
|
);
|
||||||
@ -597,7 +597,7 @@ export default function TriggerView({
|
|||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
variant="outline"
|
variant="outline"
|
||||||
className="h-8 w-8 p-0"
|
className="h-8 px-2"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSelectedTrigger(trigger);
|
setSelectedTrigger(trigger);
|
||||||
setShowCreate(true);
|
setShowCreate(true);
|
||||||
@ -605,6 +605,9 @@ export default function TriggerView({
|
|||||||
disabled={isLoading}
|
disabled={isLoading}
|
||||||
>
|
>
|
||||||
<LuPencil className="size-3.5" />
|
<LuPencil className="size-3.5" />
|
||||||
|
<span className="ml-1.5 hidden sm:inline-block">
|
||||||
|
{t("triggers.table.edit")}
|
||||||
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>
|
<TooltipContent>
|
||||||
@ -616,7 +619,7 @@ export default function TriggerView({
|
|||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
variant="destructive"
|
variant="destructive"
|
||||||
className="h-8 w-8 p-0 text-white"
|
className="h-8 px-2"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSelectedTrigger(trigger);
|
setSelectedTrigger(trigger);
|
||||||
setShowDelete(true);
|
setShowDelete(true);
|
||||||
@ -624,6 +627,9 @@ export default function TriggerView({
|
|||||||
disabled={isLoading}
|
disabled={isLoading}
|
||||||
>
|
>
|
||||||
<LuTrash className="size-3.5" />
|
<LuTrash className="size-3.5" />
|
||||||
|
<span className="ml-1.5 hidden sm:inline-block">
|
||||||
|
{t("triggers.table.deleteTrigger")}
|
||||||
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>
|
<TooltipContent>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user