From 8097987c1e41a1eb33bed14f4d51d63f42500ab2 Mon Sep 17 00:00:00 2001 From: joaquimpeixoto Date: Wed, 27 May 2026 14:48:44 +0100 Subject: [PATCH] fix: preserve advanced matching toggle --- client/src/Hooks/useMonitorForm.ts | 10 +++++++++- client/src/Pages/CreateMonitor/index.tsx | 14 +++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/client/src/Hooks/useMonitorForm.ts b/client/src/Hooks/useMonitorForm.ts index eeb5c138e..c05f39de0 100644 --- a/client/src/Hooks/useMonitorForm.ts +++ b/client/src/Hooks/useMonitorForm.ts @@ -21,6 +21,14 @@ const getBaseDefaults = (data?: Monitor | null) => ({ geoCheckInterval: data?.geoCheckInterval || 300000, }); +const hasAdvancedMatchingConfig = (data?: Monitor | null) => + Boolean( + data?.useAdvancedMatching || + data?.matchMethod || + data?.expectedValue || + data?.jsonPath + ); + export const useMonitorForm = ({ data = null, defaultType = "http", @@ -38,7 +46,7 @@ export const useMonitorForm = ({ type: "http", url: data?.url || "", ignoreTlsErrors: data?.ignoreTlsErrors || false, - useAdvancedMatching: data?.useAdvancedMatching || false, + useAdvancedMatching: hasAdvancedMatchingConfig(data), matchMethod: data?.matchMethod || "", expectedValue: data?.expectedValue || "", jsonPath: data?.jsonPath || "", diff --git a/client/src/Pages/CreateMonitor/index.tsx b/client/src/Pages/CreateMonitor/index.tsx index 3aae2e5e1..59e658b12 100644 --- a/client/src/Pages/CreateMonitor/index.tsx +++ b/client/src/Pages/CreateMonitor/index.tsx @@ -249,7 +249,7 @@ const CreateMonitorPage = () => { resolver: zodResolver(schema), defaultValues: defaults, }); - const { control, watch, handleSubmit, clearErrors } = form; + const { control, watch, handleSubmit, clearErrors, setValue } = form; useEffect(() => { form.reset(defaults); @@ -260,6 +260,10 @@ const CreateMonitorPage = () => { const watchedUseAdvancedMatching = watch("useAdvancedMatching") as boolean; const watchGeoCheckEnabled = watch("geoCheckEnabled") as boolean; + const enableAdvancedMatching = () => { + setValue("useAdvancedMatching", true, { shouldDirty: true }); + }; + useEffect(() => { clearErrors(); }, [watchedType, clearErrors]); @@ -1092,6 +1096,10 @@ const CreateMonitorPage = () => { { + enableAdvancedMatching(); + field.onChange(event); + }} fieldLabel={t( "pages.createMonitor.form.advanced.option.expectedValue.label" )} @@ -1108,6 +1116,10 @@ const CreateMonitorPage = () => { { + enableAdvancedMatching(); + field.onChange(event); + }} fieldLabel={t( "pages.createMonitor.form.advanced.option.jsonPath.label" )}