import * as React from 'react' import Mousetrap from 'mousetrap' import Box from '../Box' import Button from '../Button' import Card from '../Card' import Divider from '../Divider' import StackView from '../StackView' export type Props = { /** Render slot for header. */ header?: any /** Render slot for sidebar. */ sidebar?: any /** Size of sidebar in pixels or `fill` for full width when open. */ sidebarWidth?: number | 'fill' /** Render slot for table. */ table?: any /** Render slot for toolbar. */ toolbar?: any } export function FilterLayout(props: Props) { const { header, sidebarWidth = 400, sidebar, table, toolbar, ...restProps } = props const fill = sidebarWidth === 'fill' const [sidebarOpen, setSidebarOpen] = React.useState(false) const toggleSidebar = React.useCallback(() => { setSidebarOpen((sidebarOpen) => !sidebarOpen) }, []) React.useEffect(() => { Mousetrap.bind('f', toggleSidebar) return () => { Mousetrap.unbind('f') } }, []) return (