Alerting: Fix validation of selected contact point being required in the alert form when simplified routing (#80565)

Fix validation of selected contact point being required in the alert rule form
pull/80572/head
Sonia Aguilar 1 year ago committed by GitHub
parent d3a89a28fa
commit ae23cd7cf7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      public/app/features/alerting/unified/components/rule-editor/alert-rule-form/simplifiedRouting/contactPoint/ContactPointSelector.tsx

@ -16,12 +16,7 @@ export interface ContactPointSelectorProps {
} }
export function ContactPointSelector({ alertManager, contactPoints, onSelectContactPoint }: ContactPointSelectorProps) { export function ContactPointSelector({ alertManager, contactPoints, onSelectContactPoint }: ContactPointSelectorProps) {
const styles = useStyles2(getStyles); const styles = useStyles2(getStyles);
const { const { control, watch } = useFormContext<RuleFormValues>();
register,
control,
formState: { errors },
watch,
} = useFormContext<RuleFormValues>();
const options = contactPoints.map((receiver) => { const options = contactPoints.map((receiver) => {
const integrations = receiver?.grafana_managed_receiver_configs; const integrations = receiver?.grafana_managed_receiver_configs;
@ -39,11 +34,7 @@ export function ContactPointSelector({ alertManager, contactPoints, onSelectCont
return ( return (
<Stack direction="column"> <Stack direction="column">
<Field <Field label="Contact point">
label="Contact point"
{...register(`contactPoints.${alertManager}.selectedContactPoint`, { required: true })}
invalid={!!errors.contactPoints?.[alertManager]?.selectedContactPoint}
>
<InputControl <InputControl
render={({ field: { onChange, ref, ...field }, fieldState: { error } }) => ( render={({ field: { onChange, ref, ...field }, fieldState: { error } }) => (
<> <>
@ -65,9 +56,10 @@ export function ContactPointSelector({ alertManager, contactPoints, onSelectCont
width={50} width={50}
/> />
</div> </div>
{error && <FieldValidationMessage>{'Contact point is required.'}</FieldValidationMessage>} {error && <FieldValidationMessage>{error.message}</FieldValidationMessage>}
</> </>
)} )}
rules={{ required: { value: true, message: 'Contact point is required.' } }}
control={control} control={control}
name={`contactPoints.${alertManager}.selectedContactPoint`} name={`contactPoints.${alertManager}.selectedContactPoint`}
/> />

Loading…
Cancel
Save