Skip to content

Commit 564fc1e

Browse files
committed
Set initial focus on cancel (fallback to confirm) button
1 parent 9767e4f commit 564fc1e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

packages/compass-components/src/hooks/use-confirmation.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import FormFieldContainer from '../components/form-field-container';
1212
import { Banner, TextInput } from '../components/leafygreen';
1313
import { spacing } from '@leafygreen-ui/tokens';
1414
import { useInitialValue } from './use-initial-value';
15+
import { useId } from '@react-aria/utils';
1516

1617
export { ConfirmationModalVariant };
1718

@@ -174,6 +175,8 @@ const ConfirmationModalStateHandler: React.FunctionComponent = ({
174175
onUserAction(false);
175176
}, [onUserAction]);
176177

178+
const initialFocusId = useId();
179+
177180
return (
178181
<>
179182
{children}
@@ -188,6 +191,7 @@ const ConfirmationModalStateHandler: React.FunctionComponent = ({
188191
title={confirmationProps.title ?? 'Are you sure?'}
189192
variant={confirmationProps.variant ?? ConfirmationModalVariant.Default}
190193
confirmButtonProps={{
194+
id: confirmationProps.hideCancelButton ? initialFocusId : undefined,
191195
className: confirmationProps.hideConfirmButton
192196
? hideButtonStyles
193197
: undefined,
@@ -196,6 +200,7 @@ const ConfirmationModalStateHandler: React.FunctionComponent = ({
196200
...confirmationProps.confirmButtonProps,
197201
}}
198202
cancelButtonProps={{
203+
id: !confirmationProps.hideCancelButton ? initialFocusId : undefined,
199204
className: confirmationProps.hideCancelButton
200205
? hideButtonStyles
201206
: undefined,
@@ -207,7 +212,7 @@ const ConfirmationModalStateHandler: React.FunctionComponent = ({
207212
(confirmationProps.requiredInputText
208213
? 'auto'
209214
: // TODO: Update this once https://jira.mongodb.org/browse/LG-5735 gets resolved
210-
'[data-testid=lg-confirmation_modal-footer-cancel_button]')
215+
`#${initialFocusId}`)
211216
}
212217
>
213218
{confirmationProps.description}

0 commit comments

Comments
 (0)