| 1 |
import { useRef, useEffect } from '@wordpress/element' |
| 2 |
import { __ } from '@wordpress/i18n' |
| 3 |
import { GridView } from '@library/pages/GridView' |
| 4 |
import { Sidebar } from '@library/pages/Sidebar' |
| 5 |
import { useTemplatesStore } from '@library/state/Templates' |
| 6 |
import HasSidebar from './HasSidebar' |
| 7 |
import { Toolbar } from './Toolbar' |
| 8 |
|
| 9 |
export const Layout = ({ setOpen }) => { |
| 10 |
const gridContainer = useRef() |
| 11 |
const searchParams = useTemplatesStore((state) => state.searchParams) |
| 12 |
|
| 13 |
useEffect(() => { |
| 14 |
if (!gridContainer.current) return |
| 15 |
gridContainer.current.scrollTop = 0 |
| 16 |
}, [searchParams]) |
| 17 |
|
| 18 |
return ( |
| 19 |
<div className="relative mx-auto flex h-full max-w-screen-4xl flex-col items-center"> |
| 20 |
<div className="w-full flex-grow overflow-hidden"> |
| 21 |
<button |
| 22 |
onClick={() => |
| 23 |
document |
| 24 |
.getElementById('extendify-templates') |
| 25 |
.querySelector('button') |
| 26 |
.focus() |
| 27 |
} |
| 28 |
className="extendify-skip-to-sr-link sr-only focus:not-sr-only focus:text-blue-500"> |
| 29 |
{__('Skip to templates', 'extendify')} |
| 30 |
</button> |
| 31 |
<div className="relative mx-auto h-full sm:flex"> |
| 32 |
<HasSidebar> |
| 33 |
<Sidebar /> |
| 34 |
<div className="relative z-30 flex h-full flex-col"> |
| 35 |
<Toolbar |
| 36 |
className="hidden h-12 w-full flex-shrink-0 px-6 sm:block md:px-8" |
| 37 |
hideLibrary={() => setOpen(false)} |
| 38 |
/> |
| 39 |
<div |
| 40 |
ref={gridContainer} |
| 41 |
className="z-20 flex-grow overflow-y-auto px-6 md:px-8"> |
| 42 |
<GridView /> |
| 43 |
</div> |
| 44 |
</div> |
| 45 |
</HasSidebar> |
| 46 |
</div> |
| 47 |
</div> |
| 48 |
</div> |
| 49 |
) |
| 50 |
} |
| 51 |
|