import { forwardRef, useImperativeHandle, useState } from 'react' import propTypes from 'prop-types' const Toggleable = forwardRef((props, refs) => { const [visible, setVisible] = useState(false) const hideWhenVisible = { display: visible ? 'none' : '' } const showWhenVisible = { display: visible ? '' : 'none' } Toggleable.displayName = 'Toggleable' Toggleable.propTypes = { buttonLabel: propTypes.string.isRequired, } const toggleVisibility = () => { setVisible(!visible) } useImperativeHandle(refs, () => { return { toggleVisibility, } }) return (
{props.children}
) }) export default Toggleable