diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap index e96d66d..a004604 100644 --- a/src/components/App/__snapshots__/App.test.js.snap +++ b/src/components/App/__snapshots__/App.test.js.snap @@ -9056,7 +9056,37 @@ exports[`App Route /vehicles authenticated 1`] = `
+
+ +
+
+
+
+ +
+
+
{ const classes = useStyles(); const [search, setSearch] = useState(""); + const [online, setOnline] = useState(false); const { setTitle, setSitePath } = useStatusContext(); const { token: { @@ -25,6 +27,10 @@ const MainForm = () => { setSearch(query); }; + const handleOnline = (event) => { + setOnline(event.target.checked); + } + useEffect(() => { setTitle("Vehicles"); setSitePath([]); @@ -42,13 +48,25 @@ const MainForm = () => { - + + + + + } label="Only online" /> + + + +
); diff --git a/src/components/Controls/OptionsDropdown/index.jsx b/src/components/Controls/OptionsDropdown/index.jsx new file mode 100644 index 0000000..81a8403 --- /dev/null +++ b/src/components/Controls/OptionsDropdown/index.jsx @@ -0,0 +1,77 @@ +import React, {useEffect, useRef, useState} from "react"; +import {ClickAwayListener, Grow, IconButton, MenuList, Paper, Popper} from "@material-ui/core"; +import TuneIcon from "@material-ui/icons/Tune"; + + +const OptionsDropdown = ({listId, children}) => { + const [open, setOpen] = useState(false); + const anchorRef = useRef(null); + const prevOpen = useRef(open); + + const handleToggle = () => { + setOpen((pOpen) => !pOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + + setOpen(false); + }; + + const handleListKeyDown = (event) => { + if (event.key === 'Tab') { + event.preventDefault(); + setOpen(false); + } + } + + useEffect(() => { + if (prevOpen.current === true && open === false) { + anchorRef.current.focus(); + } + + prevOpen.current = open; + }, [open]); + + return (
+ + + + + {({TransitionProps, placement}) => ( + + + + + {children} + + + + + )} + +
+ ); +} + +export default OptionsDropdown; \ No newline at end of file