Skip to content

Commit 44bc00c

Browse files
juliajforestiCopilot
andcommitted
fix: a11y in TranscriptModal
Co-authored-by: Copilot <copilot@github.com>
1 parent 0cd58a1 commit 44bc00c

2 files changed

Lines changed: 28 additions & 25 deletions

File tree

apps/meteor/client/views/omnichannel/modals/TranscriptModal.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ it('should show Undo request button when roomOpen is true and transcriptRequest
3535
it('should show Request button when roomOpen is true and transcriptRequest not exist', async () => {
3636
render(<TranscriptModal {...{ ...defaultProps, room: { ...room, transcriptRequest: undefined } }} />);
3737

38-
const requestBtn = await screen.findByRole('button', { name: 'request-button' });
38+
const requestBtn = await screen.findByRole('button', { name: 'Request' });
3939
expect(requestBtn).toBeInTheDocument();
4040
});
4141

4242
it('should show Send button when roomOpen is false', async () => {
4343
render(<TranscriptModal {...{ ...defaultProps, room: { ...room, open: false } }} />);
4444

45-
const sendBtn = await screen.findByRole('button', { name: 'send-button' });
45+
const sendBtn = await screen.findByRole('button', { name: 'Send' });
4646
expect(sendBtn).toBeInTheDocument();
4747
});

apps/meteor/client/views/omnichannel/modals/TranscriptModal.tsx

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
import type { IOmnichannelRoom } from '@rocket.chat/core-typings';
22
import {
3-
Field,
43
Button,
5-
TextInput,
64
Modal,
75
Box,
8-
FieldGroup,
9-
FieldLabel,
10-
FieldRow,
11-
FieldError,
126
ModalHeader,
137
ModalIcon,
148
ModalTitle,
@@ -17,8 +11,9 @@ import {
1711
ModalFooter,
1812
ModalFooterControllers,
1913
} from '@rocket.chat/fuselage';
14+
import { Field, FieldGroup, FieldLabel, FieldRow, FieldError, TextInput } from '@rocket.chat/fuselage-forms';
2015
import { useCallback, useEffect } from 'react';
21-
import { useForm } from 'react-hook-form';
16+
import { useForm, Controller } from 'react-hook-form';
2217
import { useTranslation } from 'react-i18next';
2318

2419
type TranscriptModalProps = {
@@ -34,7 +29,7 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on
3429
const { t } = useTranslation();
3530

3631
const {
37-
register,
32+
control,
3833
handleSubmit,
3934
setValue,
4035
setFocus,
@@ -72,8 +67,6 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on
7267
}
7368
}, [setValue, transcriptRequest]);
7469

75-
// const canSubmit = isValid && Boolean(watch('subject'));
76-
7770
return (
7871
<Modal open wrapperFunction={(props) => <Box is='form' onSubmit={handleSubmit(submit)} {...props} />} {...props}>
7972
<ModalHeader>
@@ -87,23 +80,33 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on
8780
<Field>
8881
<FieldLabel>{t('Email')}*</FieldLabel>
8982
<FieldRow>
90-
<TextInput
91-
disabled={!!emailDefault || !!transcriptRequest}
92-
error={errors.email?.message}
93-
flexGrow={1}
94-
{...register('email', { required: t('Required_field', { field: t('Email') }) })}
83+
<Controller
84+
name='email'
85+
control={control}
86+
rules={{ required: t('Required_field', { field: t('Email') }) }}
87+
render={({ field }) => (
88+
<TextInput
89+
{...field}
90+
disabled={!!emailDefault || !!transcriptRequest}
91+
error={errors.email?.message}
92+
flexGrow={1}
93+
required={true}
94+
/>
95+
)}
9596
/>
9697
</FieldRow>
97-
<FieldError>{errors.email?.message}</FieldError>
98+
{errors.email && <FieldError>{errors.email?.message}</FieldError>}
9899
</Field>
99100
<Field>
100101
<FieldLabel>{t('Subject')}*</FieldLabel>
101102
<FieldRow>
102-
<TextInput
103-
disabled={!!transcriptRequest}
104-
error={errors.subject?.message}
105-
flexGrow={1}
106-
{...register('subject', { required: t('Required_field', { field: t('Subject') }) })}
103+
<Controller
104+
name='subject'
105+
control={control}
106+
rules={{ required: t('Required_field', { field: t('Subject') }) }}
107+
render={({ field }) => (
108+
<TextInput {...field} disabled={!!transcriptRequest} error={errors.subject?.message} flexGrow={1} required={true} />
109+
)}
107110
/>
108111
</FieldRow>
109112
<FieldError>{errors.subject?.message}</FieldError>
@@ -119,12 +122,12 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on
119122
</Button>
120123
)}
121124
{roomOpen && !transcriptRequest && (
122-
<Button aria-label='request-button' disabled={isSubmitting} loading={isSubmitting} primary type='submit'>
125+
<Button disabled={isSubmitting} loading={isSubmitting} primary type='submit'>
123126
{t('Request')}
124127
</Button>
125128
)}
126129
{!roomOpen && (
127-
<Button aria-label='send-button' disabled={isSubmitting} loading={isSubmitting} primary type='submit'>
130+
<Button disabled={isSubmitting} loading={isSubmitting} primary type='submit'>
128131
{t('Send')}
129132
</Button>
130133
)}

0 commit comments

Comments
 (0)