import React from "react"; import { Box, Grid, useToast } from "@chakra-ui/core"; import loadable from "@loadable/component"; import ItemsAndSearchPanels from "./ItemsAndSearchPanels"; import OutfitPreview from "./OutfitPreview"; import useOutfitState from "./useOutfitState.js"; import { usePageTitle } from "./util"; const OutfitControls = loadable(() => import("./OutfitControls")); /** * WardrobePage is the most fun page on the site - it's where you create * outfits! * * This page has two sections: the OutfitPreview, where we show the outfit as a * big image; and the ItemsAndSearchPanels, which let you manage which items * are in the outfit and find new ones. * * This component manages shared outfit state, and the fullscreen responsive * page layout. */ function WardrobePage() { const toast = useToast(); const { loading, error, outfitState, dispatchToOutfit } = useOutfitState(); usePageTitle(`${outfitState.name || "Untitled outfit"} | Dress to Impress`); // TODO: I haven't found a great place for this error UI yet, and this case // isn't very common, so this lil toast notification seems good enough! React.useEffect(() => { if (error) { console.log(error); toast({ title: "We couldn't load this outfit 😖", description: "Please reload the page to try again. Sorry!", status: "error", isClosable: true, duration: 999999999, }); } }, [error, toast]); return ( ); } export default WardrobePage;