LoadSessionModal.jsx 909 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from "react";
  2. import { useTranslation } from "react-i18next";
  3. import { useWire } from "react-sync-board";
  4. import useSession from "../../hooks/useSession";
  5. import Modal from "../../ui/Modal";
  6. import LoadData from "./LoadData";
  7. const LoadSessionModal = ({ show, setShow }) => {
  8. const { t } = useTranslation();
  9. const { wire } = useWire("board");
  10. const { setSession } = useSession();
  11. const loadSession = React.useCallback(
  12. (sessionData) => {
  13. setSession(sessionData);
  14. wire.publish("loadSession", sessionData);
  15. setShow(false);
  16. },
  17. [wire, setSession, setShow]
  18. );
  19. return (
  20. <Modal title={t("Load session")} setShow={setShow} show={show}>
  21. <header>
  22. <h3>{t("Continue a saved game session?")}</h3>
  23. </header>
  24. <section>
  25. <LoadData onLoad={loadSession} />
  26. </section>
  27. </Modal>
  28. );
  29. };
  30. export default LoadSessionModal;