BoardView.jsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import React from "react";
  2. import { SHOW_WELCOME } from "../../utils/settings";
  3. import { BoardWrapper, Board } from "react-sync-board";
  4. import WelcomeModal from "./WelcomeModal";
  5. import NavBar from "./NavBar";
  6. import BoardForm from "./BoardForm";
  7. import SelectedItemPane from "./SelectedItemsPane";
  8. import { ItemForm } from "../../gameComponents";
  9. import {
  10. uploadResourceImage,
  11. listResourceImage,
  12. deleteResourceImage,
  13. } from "../../utils/api";
  14. import ActionBar from "./ActionBar";
  15. import {
  16. MediaLibraryProvider,
  17. ImageDropNPaste,
  18. } from "../../components/mediaLibrary";
  19. import AutoSaveSession from "../AutoSaveSession";
  20. const mediaHandlers = {
  21. uploadMedia: uploadResourceImage,
  22. listMedia: listResourceImage,
  23. deleteMedia: deleteResourceImage,
  24. };
  25. const style = {
  26. background:
  27. "radial-gradient(circle, hsla(218, 30%, 40%, 0.7), hsla(218, 40%, 40%, 0.05) 100%), url(/board.png)",
  28. border: "1px solid transparent",
  29. borderRadius: "2px",
  30. boxShadow: "0px 3px 6px #00000029",
  31. };
  32. export const BoardView = (props) => {
  33. // TODO open only for master
  34. const [showWelcomeModal, setShowWelcomeModal] = React.useState(
  35. SHOW_WELCOME && !props.editMode
  36. );
  37. const [moveFirst, setMoveFirst] = React.useState(false);
  38. const [hideMenu, setHideMenu] = React.useState(false);
  39. return (
  40. <MediaLibraryProvider libraries={props.mediaLibraries} {...mediaHandlers}>
  41. <BoardWrapper
  42. {...props}
  43. mediaHandlers={mediaHandlers}
  44. BoardFormComponent={BoardForm}
  45. hideMenu={hideMenu}
  46. style={{
  47. position: "relative",
  48. width: "100vw",
  49. height: "100vh",
  50. overflow: "hidden",
  51. }}
  52. >
  53. <ImageDropNPaste>
  54. <Board moveFirst={moveFirst} style={style} />
  55. <NavBar editMode={props.edit} />
  56. <ActionBar
  57. editMode={props.edit}
  58. BoardFormComponent={BoardForm}
  59. itemLibraries={props.itemLibraries}
  60. moveFirst={moveFirst}
  61. setMoveFirst={setMoveFirst}
  62. hideMenu={hideMenu}
  63. setHideMenu={setHideMenu}
  64. />
  65. <WelcomeModal show={showWelcomeModal} setShow={setShowWelcomeModal} />
  66. </ImageDropNPaste>
  67. <AutoSaveSession />
  68. <SelectedItemPane ItemFormComponent={ItemForm} />
  69. </BoardWrapper>
  70. </MediaLibraryProvider>
  71. );
  72. };
  73. export default BoardView;