import { FC, Fragment, useCallback, useState } from 'react'; import { observer } from 'mobx-react'; import classnames from 'classnames'; import { CheckboxFieldState, InputFieldState, TextAreaFieldState } from '@servicetitan/form'; import { Form, Text, ToggleSwitch, Button, LayoutProps } from '@servicetitan/design-system'; import { useConfirm } from '@servicetitan/confirm'; import { SettingsSection } from '../settings-section'; import { OptInEmailPreview } from '../email-preview/opt-in-email-preview'; import * as Styles from './double-opt-in.module.less'; export const footerText = 'If you’ve received this email by mistake, no action is needed, just delete this message.'; export interface DoubleOptInPropsFormState { emailSubject: InputFieldState; emailHeader: InputFieldState; emailBody: TextAreaFieldState; emailButtonText: InputFieldState; enabled: CheckboxFieldState; } export interface DoubleOptInProps { formState: DoubleOptInPropsFormState; layout?: LayoutProps['type']; className?: string; onHandleClickEnable?(checkd: boolean): void; } export const DoubleOptIn: FC = observer( ({ onHandleClickEnable, formState, layout, className }) => { const { emailSubject, emailHeader, emailBody, emailButtonText, enabled } = formState; const [isPreviewOpen, setIsPreviewOpen] = useState(false); const openPreview = useCallback(() => setIsPreviewOpen(true), [setIsPreviewOpen]); const closePreview = useCallback(() => setIsPreviewOpen(false), [setIsPreviewOpen]); const handleClickEnable = useCallback( (_0: any, checked: boolean) => { onHandleClickEnable?.(checked); enabled.onChange(checked); }, [enabled, onHandleClickEnable], ); const [Confirm, handleConfirmed] = useConfirm(handleClickEnable); return (
Double opt-in ensures that your emails will go to SPAM at a much lower rate. The opt-in confirmation happens after a job has been completed.
} > Double Opt-In Email Content
Footer  (automatically added) } > {footerText}
); }, );