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;