import { Modal1 } from './Modal1';
import { Modal2 } from './Modal2';
import { Modal3 } from './Modal3';
import {
useState,
createContext,
useCallback,
useContext,
useMemo,
} from 'react';
export const ModalsIndexContext = createContext({
index: 0,
setIndex: () => undefined,
});
export const ModalsIndexContextProvider = ({ children }) => {
const [index, setIndex] = useState(0);
return (
{children}
);
};
export const useModals = () => {
const { index, setIndex } = useContext(ModalsIndexContext);
const queue = useMemo(() => [Modal1, Modal2, Modal3], []);
const jumpToNextModal = useCallback(() => {
setIndex((prev) => {
const nextIndex = prev + 1;
return nextIndex;
});
}, [setIndex]);
const CurrentModal = useMemo(() => {
const queueLength = queue.length - 1;
if (index > queueLength) return null;
const Component = queue[index];
return Component;
}, [queue, index]);
if (CurrentModal === null) return null;
return ;
};