added simple modal dialog

This commit is contained in:
Fedor Katurov 2023-04-26 15:06:26 +06:00
parent 2d11fef559
commit 3f81f6d3b3
12 changed files with 157 additions and 7 deletions

View file

@ -0,0 +1,29 @@
import { FC, PropsWithChildren, useCallback, useState } from "react";
import { Modal } from "~/modules/modal/containers/Modal";
import { SettingsContainer } from "../../containers/SettingsContainer";
import {
SettingsContext,
defaultSettings,
} from "../../context/SettingsContext";
const SettingsProvider: FC<PropsWithChildren> = ({ children }) => {
const [settings, setSettings] = useState(defaultSettings);
const [settingsModalVisible, setSettingsModalVisible] = useState(false);
const show = useCallback(() => setSettingsModalVisible(true), []);
const hide = useCallback(() => setSettingsModalVisible(false), []);
return (
<SettingsContext.Provider value={{ settings, setSettings, show, hide }}>
{settingsModalVisible && (
<Modal onClose={hide}>
<SettingsContainer />
</Modal>
)}
{children}
</SettingsContext.Provider>
);
};
export { SettingsProvider };