oxen-website/pages/_app.tsx

45 lines
1.2 KiB
TypeScript
Raw Normal View History

2021-01-22 03:43:42 +01:00
import type { AppProps } from 'next/app';
import Head from 'next/head';
import React, { useEffect } from 'react';
import { Provider as StoreProvider } from 'react-redux';
import { useLocation } from 'react-use';
import { createStore } from 'redux';
import '../assets/style.scss';
import Layout from '../components/layout';
import { METADATA } from '../constants';
import ScreenProvider from '../contexts/screen';
2021-02-04 06:42:15 +01:00
import { collapseSideMenu } from '../state/navigation';
2021-01-22 03:43:42 +01:00
import { rootReducer } from '../state/reducers';
const store = createStore(rootReducer);
function App({ Component, pageProps }: AppProps) {
2021-02-04 06:42:15 +01:00
// Close side menu on page changed
2021-01-22 03:43:42 +01:00
const location = useLocation();
useEffect(() => {
2021-02-04 06:42:15 +01:00
store.dispatch(collapseSideMenu());
2021-01-22 03:43:42 +01:00
}, [location.pathname, location.search]);
return (
2021-01-28 07:07:25 +01:00
<>
<StoreProvider store={store}>
<ScreenProvider>
<Head>
<title>{METADATA.TITLE_SUFFIX}</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
></meta>
</Head>
<Layout>
<Component {...pageProps} />
</Layout>
</ScreenProvider>
</StoreProvider>
</>
2021-01-22 03:43:42 +01:00
);
}
export default App;