|
|
@ -105,7 +105,7 @@ export const useGetDefaults = (queryParams: UrlQueryMap, existing: RuleWithLocat |
|
|
|
() => ({ ...(defaultsInQueryParams ? JSON.parse(defaultsInQueryParams) : {}) }), |
|
|
|
() => ({ ...(defaultsInQueryParams ? JSON.parse(defaultsInQueryParams) : {}) }), |
|
|
|
[defaultsInQueryParams] |
|
|
|
[defaultsInQueryParams] |
|
|
|
); |
|
|
|
); |
|
|
|
return { defaultDsAndQueries, defaultsInQueryParamsObject }; |
|
|
|
return { defaultDsAndQueries, defaultsInQueryParamsObject, defaultsInQueryParams }; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
|
export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
@ -119,7 +119,10 @@ export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
|
const returnTo: string = (queryParams['returnTo'] as string | undefined) ?? '/alerting/list'; |
|
|
|
const returnTo: string = (queryParams['returnTo'] as string | undefined) ?? '/alerting/list'; |
|
|
|
const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false); |
|
|
|
const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false); |
|
|
|
|
|
|
|
|
|
|
|
const { defaultDsAndQueries, defaultsInQueryParamsObject } = useGetDefaults(queryParams, existing); |
|
|
|
const { defaultDsAndQueries, defaultsInQueryParamsObject, defaultsInQueryParams } = useGetDefaults( |
|
|
|
|
|
|
|
queryParams, |
|
|
|
|
|
|
|
existing |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
const defaultValues: RuleFormValues = useMemo(() => { |
|
|
|
const defaultValues: RuleFormValues = useMemo(() => { |
|
|
|
if (existing) { |
|
|
|
if (existing) { |
|
|
@ -153,7 +156,7 @@ export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
|
|
|
|
|
|
|
|
|
// only reset once we get some value in defaultDsAndQueries.queries, adding this value.
|
|
|
|
// only reset once we get some value in defaultDsAndQueries.queries, adding this value.
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
const shouldReset = !existing && !prefill && defaultDsAndQueries.queries; |
|
|
|
const shouldReset = !existing && !prefill && defaultDsAndQueries.queries && !Boolean(defaultsInQueryParams); |
|
|
|
if (shouldReset) { |
|
|
|
if (shouldReset) { |
|
|
|
reset({ |
|
|
|
reset({ |
|
|
|
...getDefaultFormValues(), |
|
|
|
...getDefaultFormValues(), |
|
|
@ -163,7 +166,7 @@ export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
|
type: RuleFormType.grafana, |
|
|
|
type: RuleFormType.grafana, |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}, [defaultDsAndQueries.queries, reset, existing, prefill, defaultsInQueryParamsObject]); |
|
|
|
}, [defaultDsAndQueries.queries, reset, existing, prefill, defaultsInQueryParamsObject, defaultsInQueryParams]); |
|
|
|
|
|
|
|
|
|
|
|
const type = watch('type'); |
|
|
|
const type = watch('type'); |
|
|
|
const dataSourceName = watch('dataSourceName'); |
|
|
|
const dataSourceName = watch('dataSourceName'); |
|
|
@ -300,7 +303,7 @@ export const AlertRuleForm: FC<Props> = ({ existing, prefill }) => { |
|
|
|
<AlertRuleNameInput /> |
|
|
|
<AlertRuleNameInput /> |
|
|
|
<QueryAndExpressionsStep |
|
|
|
<QueryAndExpressionsStep |
|
|
|
editingExistingRule={!!existing} |
|
|
|
editingExistingRule={!!existing} |
|
|
|
prefill={!!prefill} |
|
|
|
prefill={Boolean(prefill) || Boolean(defaultsInQueryParams)} |
|
|
|
onDataChange={checkAlertCondition} |
|
|
|
onDataChange={checkAlertCondition} |
|
|
|
asyncDefaultQueries={defaultDsAndQueries.queries} |
|
|
|
asyncDefaultQueries={defaultDsAndQueries.queries} |
|
|
|
asyncDataSource={defaultDsAndQueries.ds} |
|
|
|
asyncDataSource={defaultDsAndQueries.ds} |
|
|
|