grafana/public/app/features/alerting/components/NotificationSettings.tsx
Alex Khomenko 3b515e650c
Grafana-UI: Update React Hook Form to v7 (#33328)
* Update hook form

* Update Form component

* Update ChangePassword.tsx

* Update custom types

* Update SaveDashboardForm

* Update form story

* Update FieldArray.story.tsx

* Bump hook form version

* Update typescript to v4.2.4

* Update ForgottenPassword.tsx

* Update LoginForm.tsx

* Update SignupPage.tsx

* Update VerifyEmail.tsx

* Update AdminEditOrgPage.tsx

* Update UserCreatePage.tsx

* Update BasicSettings.tsx

* Update NotificationChannelForm.tsx

* Update NotificationChannelOptions.tsx

* Update NotificationSettings.tsx

* Update OptionElement.tsx

* Update AlertRuleForm.tsx

* Update AlertTypeStep.tsx

* Update AnnotationsField.tsx

* Update ConditionField.tsx

* Update ConditionsStep.tsx

* Update GroupAndNamespaceFields.tsx

* Update LabelsField.tsx

* Update QueryStep.tsx

* Update RowOptionsForm.tsx

* Update SaveDashboardAsForm.tsx

* Update NewDashboardsFolder.tsx

* Update ImportDashboardForm.tsx

* Update DashboardImportPage.tsx

* Update NewOrgPage.tsx

* Update OrgProfile.tsx

* Update UserInviteForm.tsx

* Update PlaylistForm.tsx

* Update ChangePasswordForm.tsx

* Update UserProfileEditForm.tsx

* Update TeamSettings.tsx

* Update SignupInvited.tsx

* Expose setValue from the Form

* Update typescript to v4.2.4

* Remove ref from field props

* Fix tests

* Revert TS update

* Use exact version

* Update latest batch of changes

* Reduce the number of strict TS errors

* Fix defaults

* more type error fixes

* Update CreateTeam

* fix folder picker in rule form

* fixes for hook form 7

* Update docs

Co-authored-by: Domas <domasx2@gmail.com>
2021-04-29 16:54:38 +03:00

57 lines
2.2 KiB
TypeScript

import React, { FC } from 'react';
import { Checkbox, CollapsableSection, Field, InfoBox, Input } from '@grafana/ui';
import { NotificationSettingsProps } from './NotificationChannelForm';
interface Props extends NotificationSettingsProps {
imageRendererAvailable: boolean;
}
export const NotificationSettings: FC<Props> = ({ currentFormValues, imageRendererAvailable, register }) => {
return (
<CollapsableSection label="Notification settings" isOpen={false}>
<Field>
<Checkbox {...register('isDefault')} label="Default" description="Use this notification for all alerts" />
</Field>
<Field>
<Checkbox
{...register('settings.uploadImage')}
label="Include image"
description="Captures an image and include it in the notification"
/>
</Field>
{currentFormValues.uploadImage && !imageRendererAvailable && (
<InfoBox title="No image renderer available/installed">
Grafana cannot find an image renderer to capture an image for the notification. Please make sure the Grafana
Image Renderer plugin is installed. Please contact your Grafana administrator to install the plugin.
</InfoBox>
)}
<Field>
<Checkbox
{...register('disableResolveMessage')}
label="Disable Resolve Message"
description="Disable the resolve message [OK] that is sent when alerting state returns to false"
/>
</Field>
<Field>
<Checkbox
{...register('sendReminder')}
label="Send reminders"
description="Send additional notifications for triggered alerts"
/>
</Field>
{currentFormValues.sendReminder && (
<>
<Field
label="Send reminder every"
description="Specify how often reminders should be sent, e.g. every 30s, 1m, 10m, 30m', or 1h etc.
Alert reminders are sent after rules are evaluated. A reminder can never be sent more frequently
than a configured alert rule evaluation interval."
>
<Input {...register('frequency')} width={8} />
</Field>
</>
)}
</CollapsableSection>
);
};