@zendeskgarden/react-modals
Version:
Components relating to modals in the Garden Design System
66 lines (63 loc) • 2.1 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 PropTypes from 'prop-types';
import { useTooltipDialogContext } from '../../utils/useTooltipDialogContext.js';
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 { StyledTooltipDialogTitle } from '../../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 '../../styled/StyledDrawerClose.js';
import '../../styled/StyledDrawerBody.js';
import '../../styled/StyledDrawerFooter.js';
import '../../styled/StyledDrawerFooterItem.js';
const TitleComponent = forwardRef((_ref, ref) => {
let {
children,
tag = 'div',
...other
} = _ref;
const {
getTitleProps,
hasTitle,
setHasTitle
} = useTooltipDialogContext();
useEffect(() => {
if (!hasTitle && setHasTitle) {
setHasTitle(true);
}
return () => {
if (hasTitle && setHasTitle) {
setHasTitle(false);
}
};
}, [hasTitle, setHasTitle]);
return React__default.createElement(StyledTooltipDialogTitle, Object.assign({}, getTitleProps(other), {
as: tag,
ref: ref
}), children);
});
TitleComponent.displayName = 'TooltipDialog.Title';
TitleComponent.propTypes = {
tag: PropTypes.any
};
const Title = TitleComponent;
export { Title };