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 | 6x 277x 277x 153x 124x 6x 6x 6x 3x 3x 1x 1x 1x | import * as React from 'react'; import PropTypes from 'prop-types'; const Hideable = props => { const { hide, children } = props; if (hide) { return null; } return ( <> {children} </> ); }; Hideable.propTypes = { children: PropTypes.any.isRequired, hide: PropTypes.bool, }; Hideable.defaultProps = { hide: false, }; /** * Decorator to compose a Child (target) component within Hideable. * @param {object} Child The target or child component to be composed within Hideable. The hide attribute is used to hide the Child. * @return {object} Returns the decorated object; The Child component is now composed within a Hideable. */ const withHideable = Child => { function HideableComponent(props) { const { hide, ...otherProps } = props; return (<Hideable hide={hide}><Child {...otherProps} /></Hideable>); } HideableComponent.propTypes = { hide: PropTypes.bool, }; HideableComponent.defaultProps = { hide: false, }; return HideableComponent; }; export { Hideable, withHideable }; |