- using nanoevents as event emitter

- bug: createResumeModal opens twice
This commit is contained in:
Amruth Pillai
2020-07-06 14:47:05 +05:30
parent 6d3e5823fc
commit dbb005d26c
11 changed files with 1183 additions and 784 deletions

View File

@ -1,38 +1,20 @@
import React, { createContext, useState } from "react";
import { createNanoEvents } from "nanoevents";
import React, { createContext } from "react";
const defaultState = {
authModal: {
isOpen: false,
setOpen: () => {},
},
createResumeModal: {
isOpen: false,
setOpen: () => {},
data: null,
setData: () => {},
},
const events = {
AUTH_MODAL: "auth_modal",
CREATE_RESUME_MODAL: "create_resume_modal",
};
const emitter = createNanoEvents();
const defaultState = { events, emitter };
const ModalContext = createContext(defaultState);
const ModalProvider = ({ children }) => {
const [authOpen, setAuthOpen] = useState(false);
const [createResumeOpen, setCreateResumeOpen] = useState(false);
const [createResumeData, setCreateResumeData] = useState(null);
return (
<ModalContext.Provider
value={{
authModal: { isOpen: authOpen, setOpen: setAuthOpen },
createResumeModal: {
isOpen: createResumeOpen,
setOpen: setCreateResumeOpen,
data: createResumeData,
setData: setCreateResumeData,
},
}}
>
<ModalContext.Provider value={defaultState}>
{children}
</ModalContext.Provider>
);