import React from "react";
import { Box, Grid, useColorModeValue, useToken } from "@chakra-ui/react";
import { useCommonStyles } from "../util";

function WardrobePageLayout({
	previewAndControls = null,
	itemsAndMaybeSearchPanel = null,
	searchFooter = null,
}) {
	const itemsAndSearchBackground = useColorModeValue("white", "gray.900");
	const searchBackground = useCommonStyles().bodyBackground;
	const searchShadowColorValue = useToken("colors", "gray.400");

	return (
		<Box
			position="absolute"
			top="0"
			bottom="0"
			left="0"
			right="0"
			// Create a stacking context, so that our drawers and modals don't fight
			// with the z-indexes in here!
			zIndex="0"
		>
			<Grid
				templateAreas={{
					base: `"previewAndControls"
                 "itemsAndMaybeSearchPanel"`,
					md: `"previewAndControls itemsAndMaybeSearchPanel"
               "searchFooter searchFooter"`,
				}}
				templateRows={{
					base: "minmax(100px, 45%) minmax(300px, 55%)",
					md: "minmax(300px, 1fr) auto",
				}}
				templateColumns={{
					base: "100%",
					md: "50% 50%",
				}}
				height="100%"
				width="100%"
			>
				<Box
					gridArea="previewAndControls"
					bg="gray.900"
					color="gray.50"
					position="relative"
				>
					{previewAndControls}
				</Box>
				<Box gridArea="itemsAndMaybeSearchPanel" bg={itemsAndSearchBackground}>
					{itemsAndMaybeSearchPanel}
				</Box>
				<Box
					gridArea="searchFooter"
					bg={searchBackground}
					boxShadow={`0 0 8px ${searchShadowColorValue}`}
					display={{ base: "none", md: "block" }}
				>
					{searchFooter}
				</Box>
			</Grid>
		</Box>
	);
}

export default WardrobePageLayout;