import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; import { Trans } from '@lingui/react/macro'; import { validateTextField } from '@documenso/lib/advanced-fields-validation/validate-text'; import { type TTextFieldMeta as TextFieldMeta } from '@documenso/lib/types/field-meta'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@documenso/ui/primitives/select'; import { Switch } from '@documenso/ui/primitives/switch'; import { Textarea } from '@documenso/ui/primitives/textarea'; type TextFieldAdvancedSettingsProps = { fieldState: TextFieldMeta; handleFieldChange: (key: keyof TextFieldMeta, value: string | boolean) => void; handleErrors: (errors: string[]) => void; }; export const TextFieldAdvancedSettings = ({ fieldState, handleFieldChange, handleErrors, }: TextFieldAdvancedSettingsProps) => { const { _ } = useLingui(); const handleInput = (field: keyof TextFieldMeta, value: string | boolean) => { const text = field === 'text' ? String(value) : (fieldState.text ?? ''); const limit = field === 'characterLimit' ? Number(value) : Number(fieldState.characterLimit ?? 0); const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14); const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly); const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required); const textErrors = validateTextField(text, { characterLimit: Number(limit), readOnly, required, fontSize, type: 'text', }); handleErrors(textErrors); handleFieldChange(field, value); }; return (