feat: add modal

This commit is contained in:
2025-07-08 09:52:34 +03:00
parent 65499499b4
commit ea8a152711
24 changed files with 763 additions and 5 deletions

View File

@@ -0,0 +1,41 @@
'use client';
import {
useState,
useContext,
useCallback,
ReactNode,
createContext,
} from 'react';
import { Modal } from '@shared/ui/modal';
const ModalContext = createContext({
hideModal: () => {},
showModal: (content: ReactNode) => {},
});
const useModal = () => useContext(ModalContext);
const ModalProvider = ({ children }: { children: ReactNode }) => {
const [modalContent, setModalContent] = useState<ReactNode>(null);
const showModal = useCallback((content: ReactNode) => {
setModalContent(content);
}, []);
const hideModal = useCallback(() => {
setModalContent(null);
}, []);
return (
<ModalContext.Provider value={{ hideModal, showModal }}>
{children}
{/* Ваш Modal компонент здесь */}
<Modal isOpen={modalContent !== null} onClose={hideModal}>
{modalContent}
</Modal>
</ModalContext.Provider>
);
};
export { useModal, ModalProvider };

View File

@@ -24,6 +24,7 @@ $color-darkgray: #999999;
$color-text: #333333;
$color-text-light: #777777;
$color-green: #23A455;
$color-green-hover: #23A455C2;
$color-link: #333333;
$color-link-hover: #009283;
$color-error: #ff0000;