index.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from "react";
  2. import { AccountModal } from "src/containers/Modals/AccountModal";
  3. import { ClearModal } from "src/containers/Modals/ClearModal";
  4. import { CloudModal } from "src/containers/Modals/CloudModal";
  5. import { DownloadModal } from "src/containers/Modals/DownloadModal";
  6. import { ImportModal } from "src/containers/Modals/ImportModal";
  7. import { LoginModal } from "src/containers/Modals/LoginModal";
  8. import { SettingsModal } from "src/containers/Modals/SettingsModal";
  9. import { ShareModal } from "src/containers/Modals/ShareModal";
  10. import useModal from "src/store/useModal";
  11. import shallow from "zustand/shallow";
  12. export const ModalController = () => {
  13. const setVisible = useModal(state => state.setVisible);
  14. const [
  15. importModal,
  16. clearModal,
  17. downloadModal,
  18. settingsModal,
  19. cloudModal,
  20. accountModal,
  21. loginModal,
  22. shareModal,
  23. ] = useModal(
  24. state => [
  25. state.import,
  26. state.clear,
  27. state.download,
  28. state.settings,
  29. state.cloud,
  30. state.account,
  31. state.login,
  32. state.share,
  33. ],
  34. shallow
  35. );
  36. return (
  37. <>
  38. <ImportModal visible={importModal} setVisible={setVisible("import")} />
  39. <ClearModal visible={clearModal} setVisible={setVisible("clear")} />
  40. <DownloadModal visible={downloadModal} setVisible={setVisible("download")} />
  41. <SettingsModal visible={settingsModal} setVisible={setVisible("settings")} />
  42. <CloudModal visible={cloudModal} setVisible={setVisible("cloud")} />
  43. <AccountModal visible={accountModal} setVisible={setVisible("account")} />
  44. <LoginModal visible={loginModal} setVisible={setVisible("login")} />
  45. <ShareModal visible={shareModal} setVisible={setVisible("share")} />
  46. </>
  47. );
  48. };