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
JavaScript
'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 };