openreplay/frontend/app/components/Dashboard/components/Alerts/AlertForm/NotifyHooks.tsx
Andrey Babushkin fd5c0c9747
Add lokalisation (#3092)
* applied eslint

* add locales and lint the project

* removed error boundary

* updated locales

* fix min files

* fix locales
2025-03-06 17:43:15 +01:00

142 lines
3.9 KiB
TypeScript

import React from 'react';
import { Checkbox } from 'UI';
import { observer } from 'mobx-react-lite';
import DropdownChips from '../DropdownChips';
import { useTranslation } from 'react-i18next';
interface INotifyHooks {
instance: Alert;
onChangeCheck: (e: React.ChangeEvent<HTMLInputElement>) => void;
slackChannels: Array<any>;
msTeamsChannels: Array<any>;
validateEmail: (value: string) => boolean;
edit: (data: any) => void;
hooks: Array<any>;
}
function NotifyHooks({
instance,
onChangeCheck,
slackChannels,
validateEmail,
msTeamsChannels,
hooks,
edit,
}: INotifyHooks) {
const { t } = useTranslation();
return (
<div className="flex flex-col">
<div className="flex items-center my-4">
{slackChannels.length > 0 && (
<Checkbox
name="slack"
className="mr-8"
type="checkbox"
checked={instance.slack}
onClick={onChangeCheck}
label={t('Slack')}
/>
)}
{msTeamsChannels.length > 0 && (
<Checkbox
name="msteams"
className="mr-8"
type="checkbox"
checked={instance.msteams}
onClick={onChangeCheck}
label="MS Teams"
/>
)}
<Checkbox
name="email"
type="checkbox"
checked={instance.email}
onClick={onChangeCheck}
className="mr-8"
label={t('Email')}
/>
<Checkbox
name="webhook"
type="checkbox"
checked={instance.webhook}
onClick={onChangeCheck}
label={t('Webhook')}
/>
</div>
{instance.slack && (
<div className="flex items-start my-4">
<label className="w-1/6 flex-shrink-0 font-normal pt-2">
{t('Slack')}
</label>
<div className="w-2/6">
<DropdownChips
fluid
selected={instance.slackInput}
options={slackChannels}
placeholder={t('Select Channel')}
// @ts-ignore
onChange={(selected) => edit({ slackInput: selected })}
/>
</div>
</div>
)}
{instance.msteams && (
<div className="flex items-start my-4">
<label className="w-1/6 flex-shrink-0 font-normal pt-2">
{t('MS Teams')}
</label>
<div className="w-2/6">
<DropdownChips
fluid
selected={instance.msteamsInput}
options={msTeamsChannels}
placeholder={t('Select Channel')}
// @ts-ignore
onChange={(selected) => edit({ msteamsInput: selected })}
/>
</div>
</div>
)}
{instance.email && (
<div className="flex items-start my-4">
<label className="w-1/6 flex-shrink-0 font-normal pt-2">
{t('Email')}
</label>
<div className="w-2/6">
<DropdownChips
textFiled
validate={validateEmail}
selected={instance.emailInput}
placeholder={t('Type and press Enter key')}
// @ts-ignore
onChange={(selected) => edit({ emailInput: selected })}
/>
</div>
</div>
)}
{instance.webhook && (
<div className="flex items-start my-4">
<label className="w-1/6 flex-shrink-0 font-normal pt-2">
{t('Webhook')}
</label>
<div className="w-2/6">
<DropdownChips
fluid
selected={instance.webhookInput}
options={hooks}
placeholder={t('Select Webhook')}
// @ts-ignore
onChange={(selected) => edit({ webhookInput: selected })}
/>
</div>
</div>
)}
</div>
);
}
export default observer(NotifyHooks);