cal.pub0.org/components/ui/Dropdown.tsx

19 lines
415 B
TypeScript
Raw Normal View History

import {useEffect, useState} from "react";
export default function Dropdown(props) {
const [ open, setOpen ] = useState(false);
useEffect( () => {
document.addEventListener('keyup', (e) => {
if (e.key === "Escape") {
setOpen(false);
}
});
}, [open]);
return (<div onClick={() => setOpen(!open)} {...props}>
{props.children[0]}
{open && props.children[1]}
</div>);
}