oxen-website/pages/_app.tsx

61 lines
1.7 KiB
TypeScript

import 'firebase/auth';
import 'firebase/firestore'; // <- needed if using firestore
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';
import { collapseSearchOverlay } from '../state/navigation';
import { rootReducer } from '../state/reducers';
// if (!firebase.apps.length) {
// // Initialize firebase instance
// firebase.initializeApp(FIREBASE.CLIENT_CONFIG);
// // Initialize other services on firebase instance
// firebase.firestore();
// firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION);
// }
const store = createStore(rootReducer);
// const rrfProps = {
// firebase,
// config: FIREBASE.RRF_CONFIG,
// dispatch: store.dispatch,
// createFirestoreInstance,
// };
function App({ Component, pageProps }: AppProps) {
// Close search overlay on page changed
const location = useLocation();
useEffect(() => {
store.dispatch(collapseSearchOverlay());
}, [location.pathname, location.search]);
// const { info } = useGetInfo();
return (
<StoreProvider store={store}>
{/* <ReactReduxFirebaseProvider {...rrfProps}> */}
<ScreenProvider>
<Head>
<title>{METADATA.TITLE_SUFFIX}</title>
</Head>
<Layout>
<Component {...pageProps} />
</Layout>
</ScreenProvider>
{/* </ReactReduxFirebaseProvider> */}
</StoreProvider>
);
}
export default App;