Modal: Fix restore focus behavior (#43749)

* Modal: Fix restore focus behavior

* Use OverlayContainer

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
This commit is contained in:
kay delaney 2022-01-07 09:00:55 +00:00 committed by GitHub
parent 8717bc7ef4
commit e7f1e11229
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -1,5 +1,4 @@
import React, { PropsWithChildren, useCallback, useEffect } from 'react';
import { Portal } from '../Portal/Portal';
import { cx } from '@emotion/css';
import { useTheme2 } from '../../themes';
import { IconName } from '../../types';
@ -8,6 +7,7 @@ import { ModalHeader } from './ModalHeader';
import { IconButton } from '../IconButton/IconButton';
import { HorizontalGroup } from '../Layout/Layout';
import { FocusScope } from '@react-aria/focus';
import { OverlayContainer } from '@react-aria/overlays';
export interface Props {
/** @deprecated no longer used */
@ -71,7 +71,7 @@ export function Modal(props: PropsWithChildren<Props>) {
const headerClass = cx(styles.modalHeader, typeof title !== 'string' && styles.modalHeaderWithTabs);
return (
<Portal>
<OverlayContainer>
<div
className={styles.modalBackdrop}
onClick={onClickBackdrop || (closeOnBackdropClick ? onDismiss : undefined)}
@ -88,7 +88,7 @@ export function Modal(props: PropsWithChildren<Props>) {
<div className={cx(styles.modalContent, contentClassName)}>{children}</div>
</div>
</FocusScope>
</Portal>
</OverlayContainer>
);
}

View File

@ -28,6 +28,7 @@ export const getModalStyles = stylesFactory((theme: GrafanaTheme2) => {
`,
modalBackdrop: css`
position: fixed;
z-index: ${theme.zIndex.modalBackdrop};
top: 0;
right: 0;
bottom: 0;