UNPKG

raiserocket

Version:

https://docs.google.com/presentation/d/10rEHd1qQlRZSKmFSHUxEtLvOyvmJMwxf/edit?usp=share_link&ouid=106253845854070702655&rtpof=true&sd=truehttps://docs.google.com/presentation/d/10rEHd1qQlRZSKmFSHUxEtLvOyvmJMwxf/edit?usp=share_link&ouid=1062538458540707026

50 lines (42 loc) 1.27 kB
'use client' import Header from "./Header"; import themes from "./themes"; import styled, { ThemeProvider, createGlobalStyle } from "styled-components"; import { useState, createContext } from "react"; import { ToastContainer } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import { Footer, Navbar,Hero,About } from '../'; const App = createContext(); const Layout = ({ children }) => { const [theme, setTheme] = useState("light"); const changeTheme = () => { setTheme(theme == "light" ? "dark" : "light"); }; return ( <App.Provider value={{ changeTheme, theme }}> <ThemeProvider theme={themes[theme]}> <ToastContainer /> <LayoutWrapper> <GlobalStyle /> <Navbar/> {children} </LayoutWrapper> </ThemeProvider> </App.Provider> ); } const GlobalStyle = createGlobalStyle` body { margin: 0; padding: 0; overflow-x: hidden; } `; const LayoutWrapper = styled.div` min-height: 100vh; background-color: ${(props) => props.theme.bgColor}; background-image: ${(props) => props.theme.bgImage}; color: ${(props) => props.theme.color}; `; export default Layout; export { App };