network-resurrector-frontend/src/components/App.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-12-19 04:22:38 +02:00
import React, { useReducer, useMemo } from "react";
import Main from "./layout/Main";
2020-12-19 03:38:04 +02:00
import { initialState } from "../state/initialState";
2020-12-19 04:22:38 +02:00
import {
reducer,
dispatchActions as reducerDispatchActions
} from "../state/reducer";
import {
ApplicationStateContext,
ApplicationDispatchContext
} from "../state/ApplicationContexts";
import { ToastContainer, Slide } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
2020-12-16 03:09:24 +02:00
2020-12-19 03:38:04 +02:00
const App = () => {
const [state, dispatch] = useReducer(reducer, initialState);
2022-11-22 19:39:58 +02:00
const dispatchActions = useMemo(
() => reducerDispatchActions(dispatch),
[dispatch]
);
2020-12-19 02:08:36 +02:00
2020-12-16 03:09:24 +02:00
return (
<>
<ApplicationStateContext.Provider value={state}>
<ApplicationDispatchContext.Provider value={dispatchActions}>
<Main />
</ApplicationDispatchContext.Provider>
</ApplicationStateContext.Provider>
<ToastContainer
2020-12-24 13:16:53 +02:00
position="bottom-right"
transition={Slide}
autoClose={3000}
hideProgressBar={false}
newestOnTop={false}
closeOnClick
rtl={false}
pauseOnFocusLoss
draggable
pauseOnHover
limit={5}
/>
</>
2020-12-16 03:09:24 +02:00
);
};
2020-12-19 03:38:04 +02:00
export default App;