@shopgate/engage
Version:
Shopgate's ENGAGE library.
14 lines • 1.12 kB
JavaScript
import PropTypes from'prop-types';import{useTrackModalState}from'@shopgate/engage/a11y/hooks';/**
* Helper component to be used inside modal-like class components to track their visibility and
* apply a11y optimizations to the app.
*
* Wrap the children of your modal-like component with this component to track its visibility
*
* For functional components, please use the `useTrackModalState` hook instead.
* @param {Object} props The component props.
* @param {boolean} [props.isVisible] Optional visibility flag to be set by the parent component
* when it uses a visibility prop or state to toggle its visibility. Can be omitted if the
* component mounts/unmounts based on visibility.
* @param {ReactNode} props.children The component children.
* @returns {JSX.Element}
*/var ModalStateTracker=function ModalStateTracker(_ref){var children=_ref.children,isVisible=_ref.isVisible;useTrackModalState(isVisible);return children;};ModalStateTracker.propTypes={children:PropTypes.node.isRequired,isVisible:PropTypes.bool};ModalStateTracker.defaultProps={isVisible:undefined};export default ModalStateTracker;