import { observer } from 'mobx-react'; import { FC, Fragment, useCallback, useState } from 'react'; import classnames from 'classnames'; import { CheckboxFieldState, InputFieldState, TextAreaFieldState } from '@servicetitan/form'; import { Button, Form, LayoutProps, Stack, Text, ToggleSwitch } from '@servicetitan/design-system'; import { useConfirm } from '@servicetitan/confirm'; import { SettingsSection } from '../settings-section'; import { OptOutEmailPreview } from '../email-preview/opt-out-email-preview'; import * as Styles from './opt-out-message.module.less'; export interface OptOutMessageState { subjectLine: InputFieldState; header: InputFieldState; body: TextAreaFieldState; buttonText: InputFieldState; monthsLimit: InputFieldState; enabled: CheckboxFieldState; autoSuppressionEnabled: CheckboxFieldState; } export interface OptOutMessageProps { formState: OptOutMessageState; layout?: LayoutProps['type']; className?: string; onHandleClickEnable?(checked: boolean): void; } export const OptOutMessage: FC = observer( ({ onHandleClickEnable, formState, layout, className }) => { const { subjectLine, header, body, buttonText, monthsLimit, enabled, autoSuppressionEnabled, } = formState; const [isPreviewOpen, setIsPreviewOpen] = useState(false); const openPreview = useCallback(() => setIsPreviewOpen(true), [setIsPreviewOpen]); const closePreview = useCallback(() => setIsPreviewOpen(false), [setIsPreviewOpen]); const handleClickEnable = (_0: any, checked: boolean) => { onHandleClickEnable?.(checked); enabled.onChange(checked); }; const [Confirm, handleConfirmed] = useConfirm(handleClickEnable); return (
If customers haven’t opened one of your emails in a set time frame, you can send an opt-out message to allow them to set their email preferences.
} > Opt-Out Email Content

Send when a recipient hasn’t opened an email in months.
); }, );