import { SyntheticEvent, Fragment, useCallback, FC } from 'react'; import { observer } from 'mobx-react'; import { BodyText, Form, Icon, LayoutProps, Stack, Text } from '@servicetitan/design-system'; import { InputFieldState } from '@servicetitan/form'; import { tokens } from '@servicetitan/tokens/core'; import { SettingsSection } from '../settings-section'; import { convertDomainName } from '../../../utils/helpers'; import * as Styles from './company-email-sender.module.less'; const LABEL_ACTION_SIZE = 19; export interface CompanyEmailSenderProps { formState: { senderName: InputFieldState; senderDomain: InputFieldState; senderEmail: InputFieldState; }; isSenderDomainValidatedSuccessfully?: boolean; senderTld: string; layout?: LayoutProps['type']; className?: string; } export const CompanyEmailSender: FC = observer( ({ formState: { senderDomain, senderName, senderEmail }, senderTld, layout, className, isSenderDomainValidatedSuccessfully, }) => { const handleSenderNameChange = useCallback( (_0: SyntheticEvent, data: { value: string }) => { if (data.value.length > 80) { return; } senderName.onChange(data.value); }, [senderName], ); const handleSenderDomainChange = useCallback( (_0: SyntheticEvent, data: { value: string }) => { if (data.value.length > 30) { return; } senderDomain.onChange(data.value); }, [senderDomain], ); const handleSenderEmailChange = useCallback( (_0: SyntheticEvent, data: { value: string }) => { if (data.value.length > 50) { return; } senderEmail.onChange(data.value); }, [senderEmail], ); return (
Sender Name    max 80 characters } placeholder="John Doe" fluid /> Validated ) : undefined, }} className="m-b-0-i qa-settings-sender-domain" value={senderDomain.value} onChange={handleSenderDomainChange} error={senderDomain.hasError} label="Sender Domain" placeholder="domain" fluid /> Sender Email  (domain added automatically) } placeholder="john.doe" fluid />
@{senderDomain.$ ? convertDomainName(senderDomain.$) : 'domain'} .{senderTld}
); }, );