el.xwx.moe/components/ModalManagement.tsx

50 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-06-12 23:46:32 -05:00
import useModalStore from "@/store/modals";
import Modal from "./Modal";
import LinkModal from "./Modal/Link";
2023-06-12 23:46:32 -05:00
import {
2023-06-16 07:55:21 -05:00
CollectionIncludingMembersAndLinkCount,
LinkIncludingShortenedCollectionAndTags,
2023-06-12 23:46:32 -05:00
} from "@/types/global";
import CollectionModal from "./Modal/Collection";
import { useEffect } from "react";
import { useRouter } from "next/router";
2023-06-12 23:46:32 -05:00
export default function ModalManagement() {
const { modal, setModal } = useModalStore();
const toggleModal = () => {
setModal(null);
};
const router = useRouter();
useEffect(() => {
toggleModal();
}, [router]);
2023-06-12 23:46:32 -05:00
if (modal && modal.modal === "LINK")
return (
<Modal toggleModal={toggleModal}>
<LinkModal
toggleLinkModal={toggleModal}
method={modal.method}
activeLink={modal.active as LinkIncludingShortenedCollectionAndTags}
2023-06-12 23:46:32 -05:00
/>
</Modal>
);
else if (modal && modal.modal === "COLLECTION")
return (
<Modal toggleModal={toggleModal}>
<CollectionModal
toggleCollectionModal={toggleModal}
method={modal.method}
isOwner={modal.isOwner as boolean}
2023-06-12 23:46:32 -05:00
defaultIndex={modal.defaultIndex}
2023-06-16 07:55:21 -05:00
activeCollection={
modal.active as CollectionIncludingMembersAndLinkCount
}
2023-06-12 23:46:32 -05:00
/>
</Modal>
);
else return <></>;
}