@zendeskgarden/react-modals
Version:
Components relating to modals in the Garden Design System
55 lines (52 loc) • 2.14 kB
JavaScript
/**
* 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', props['aria-describedby'] === undefined );
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 };