UNPKG

@zendeskgarden/react-modals

Version:

Components relating to modals in the Garden Design System

55 lines (52 loc) 2.1 kB
/** * Copyright Zendesk, Inc. * * Use of this source code is governed under the Apache License, Version 2.0 * found at http://www.apache.org/licenses/LICENSE-2.0. */ import React__default, { forwardRef, useEffect } from 'react'; import '../../styled/StyledBackdrop.js'; import '../../styled/StyledBody.js'; import '../../styled/StyledClose.js'; import '../../styled/StyledFooter.js'; import '../../styled/StyledFooterItem.js'; import '../../styled/StyledHeader.js'; import '../../styled/StyledDangerIcon.js'; import '../../styled/StyledModal.js'; import '../../styled/StyledTooltipDialogBackdrop.js'; import '../../styled/StyledTooltipWrapper.js'; import '../../styled/StyledTooltipDialog.js'; import '../../styled/StyledTooltipDialogTitle.js'; import '../../styled/StyledTooltipDialogBody.js'; import '../../styled/StyledTooltipDialogFooter.js'; import '../../styled/StyledTooltipDialogFooterItem.js'; import '../../styled/StyledTooltipDialogClose.js'; import '../../styled/StyledDrawer.js'; import '../../styled/StyledDrawerHeader.js'; import { StyledDrawerClose } from '../../styled/StyledDrawerClose.js'; import '../../styled/StyledDrawerBody.js'; import '../../styled/StyledDrawerFooter.js'; import '../../styled/StyledDrawerFooterItem.js'; import { useText } from '@zendeskgarden/react-theming'; import { useModalContext } from '../../utils/useModalContext.js'; import SvgXStroke from '../../node_modules/@zendeskgarden/svg-icons/src/16/x-stroke.svg.js'; const CloseComponent = forwardRef((props, ref) => { const { getCloseProps, setIsCloseButtonPresent } = useModalContext(); useEffect(() => { setIsCloseButtonPresent(true); return () => setIsCloseButtonPresent(false); }); const ariaLabel = useText(CloseComponent, props, 'aria-label', 'Close drawer'); return React__default.createElement(StyledDrawerClose, Object.assign({}, getCloseProps({ ...props, 'aria-label': ariaLabel }), { ref: ref }), React__default.createElement(SvgXStroke, null)); }); CloseComponent.displayName = 'Drawer.Close'; const Close = CloseComponent; export { Close };