Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 8x 230x 230x 230x 230x 230x 230x 8x 228x 228x | import * as React from 'react';
import {
Box as ReakitBox,
DialogBackdropProps as ReakitDialogBackdropProps,
useDialogBackdrop as useReakitDialogBackdrop
} from 'reakit';
import _merge from 'lodash/merge';
import { useClassName, createComponent, createElement, createHook } from '../utils';
import { Box, BoxProps } from '../Box';
import { ModalContext } from './ModalState';
import * as styles from './styles';
export type LocalModalBackdropProps = {};
export type ModalBackdropProps = BoxProps & ReakitDialogBackdropProps & LocalModalBackdropProps;
const useProps = createHook<ModalBackdropProps>(
(props, { themeKey, themeKeyOverride }) => {
let {
visible,
baseId,
modal,
unstable_animating,
unstable_animated,
unstable_stopAnimation,
unstable_setIsMounted,
...htmlProps
} = props;
const modalContext = React.useContext(ModalContext);
const modalBackdropProps = useReakitDialogBackdrop(
_merge(
{
visible,
baseId,
modal,
unstable_animating,
unstable_animated,
unstable_stopAnimation,
unstable_setIsMounted
},
modalContext.modal
),
htmlProps
);
htmlProps = Box.useProps({ ...htmlProps, ...modalBackdropProps });
const className = useClassName({
style: styles.ModalBackdrop,
styleProps: props,
themeKey,
themeKeyOverride,
prevClassName: htmlProps.className
});
return { ...htmlProps, className };
},
{ themeKey: 'Modal.Backdrop' }
);
export const ModalBackdrop = createComponent<ModalBackdropProps>(
props => {
const modalBackdropProps = useProps(props);
return createElement({
children: props.children,
component: ReakitBox,
use: props.use,
htmlProps: modalBackdropProps
});
},
{
attach: {
useProps
},
themeKey: 'Modal.Backdrop'
}
);
|