| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import type { UseFormReturn } from 'react-hook-form'
- // End of third-party imports
- import { FormControl, FormField, TextArea } from 'ui'
- import { Admonition } from 'ui-patterns/admonition'
- import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
- import { IPV4SuggestionAlert } from './IPV4SuggestionAlert'
- import { IPV4_MIGRATION_STRINGS } from './Support.constants'
- import type { SupportFormValues } from './SupportForm.schema'
- interface MessageFieldProps {
- form: UseFormReturn<SupportFormValues>
- originalError: string | null | undefined
- }
- export function MessageField({ form, originalError }: MessageFieldProps) {
- return (
- <FormField
- name="message"
- control={form.control}
- render={({ field }) => (
- <FormItemLayout
- layout="vertical"
- label="Message"
- labelOptional="5000 character limit"
- description={
- IPV4_MIGRATION_STRINGS.some((str) => field.value.includes(str)) && (
- <IPV4SuggestionAlert />
- )
- }
- >
- <FormControl>
- <TextArea
- {...field}
- rows={4}
- maxLength={5000}
- placeholder="Describe the issue you’re facing, along with any relevant information. Please be as detailed and specific as possible."
- />
- </FormControl>
- {originalError && (
- <Admonition
- showIcon={false}
- type="default"
- className="mt-2 max-h-[150px] overflow-y-auto"
- title="The error that you ran into will be included in your message for reference"
- description={`Error: ${originalError}`}
- />
- )}
- </FormItemLayout>
- )}
- />
- )
- }
|