import React, { createContext, useState } from "react"; export const GridLayoutContext = createContext({ gridLayout: "tiles", hasSetGridLayout: false, setGridLayout: (tile: string) => {}, getGridLayout: () => {}, }); const GridLayoutProvider: React.FC<{}> = ({ children }) => { const initialLayout = "tiles"; const [gridLayout, setGridLayout] = useState(initialLayout); const [hasSetGridLayout, setHasSetGridLayout] = useState(false); function setGridLayoutAndSave(tile: string) { localStorage.setItem("gridLayout", tile || initialLayout); setGridLayout(tile); } function getGridLayoutAndSave() { setGridLayout(localStorage.getItem("gridLayout") || initialLayout); setHasSetGridLayout(true); } return ( {children} ); }; export default GridLayoutProvider;