@netless/fastboard-react 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/index.js +48 -70
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.mjs +75 -97
  4. package/dist/index.mjs.map +1 -1
  5. package/package.json +4 -3
  6. package/src/components/Fastboard.tsx +21 -10
  7. package/src/components/PageControl/PageControl.tsx +2 -4
  8. package/src/components/PageControl/hooks.ts +18 -61
  9. package/dist/behaviors/style.d.ts +0 -1
  10. package/dist/components/Fastboard.d.ts +0 -15
  11. package/dist/components/PageControl/PageControl.d.ts +0 -5
  12. package/dist/components/PageControl/hooks.d.ts +0 -9
  13. package/dist/components/PageControl/index.d.ts +0 -2
  14. package/dist/components/PlayerControl/PlayerControl.d.ts +0 -9
  15. package/dist/components/PlayerControl/hooks.d.ts +0 -11
  16. package/dist/components/PlayerControl/icons/Loading.d.ts +0 -3
  17. package/dist/components/PlayerControl/icons/Pause.d.ts +0 -3
  18. package/dist/components/PlayerControl/icons/Play.d.ts +0 -3
  19. package/dist/components/PlayerControl/icons/index.d.ts +0 -6
  20. package/dist/components/PlayerControl/index.d.ts +0 -2
  21. package/dist/components/RedoUndo/RedoUndo.d.ts +0 -5
  22. package/dist/components/RedoUndo/hooks.d.ts +0 -6
  23. package/dist/components/RedoUndo/index.d.ts +0 -2
  24. package/dist/components/Toolbar/Content.d.ts +0 -2
  25. package/dist/components/Toolbar/Toolbar.d.ts +0 -14
  26. package/dist/components/Toolbar/components/ApplianceButtons.d.ts +0 -7
  27. package/dist/components/Toolbar/components/AppsButton.d.ts +0 -6
  28. package/dist/components/Toolbar/components/ColorBox.d.ts +0 -2
  29. package/dist/components/Toolbar/components/CutLine.d.ts +0 -2
  30. package/dist/components/Toolbar/components/Mask.d.ts +0 -7
  31. package/dist/components/Toolbar/components/PencilButton.d.ts +0 -2
  32. package/dist/components/Toolbar/components/ShapesButton.d.ts +0 -3
  33. package/dist/components/Toolbar/components/Slider.d.ts +0 -2
  34. package/dist/components/Toolbar/components/TextButton.d.ts +0 -2
  35. package/dist/components/Toolbar/components/UpDownButtons.d.ts +0 -7
  36. package/dist/components/Toolbar/const.d.ts +0 -18
  37. package/dist/components/Toolbar/hooks.d.ts +0 -12
  38. package/dist/components/Toolbar/icons/Apps.d.ts +0 -3
  39. package/dist/components/Toolbar/icons/Arrow.d.ts +0 -3
  40. package/dist/components/Toolbar/icons/Circle.d.ts +0 -3
  41. package/dist/components/Toolbar/icons/Clean.d.ts +0 -3
  42. package/dist/components/Toolbar/icons/Clicker.d.ts +0 -3
  43. package/dist/components/Toolbar/icons/Collapse.d.ts +0 -3
  44. package/dist/components/Toolbar/icons/Diamond.d.ts +0 -3
  45. package/dist/components/Toolbar/icons/Down.d.ts +0 -3
  46. package/dist/components/Toolbar/icons/Eraser.d.ts +0 -3
  47. package/dist/components/Toolbar/icons/Expand.d.ts +0 -3
  48. package/dist/components/Toolbar/icons/Line.d.ts +0 -3
  49. package/dist/components/Toolbar/icons/Pencil.d.ts +0 -3
  50. package/dist/components/Toolbar/icons/Rectangle.d.ts +0 -3
  51. package/dist/components/Toolbar/icons/Selector.d.ts +0 -3
  52. package/dist/components/Toolbar/icons/SpeechBalloon.d.ts +0 -3
  53. package/dist/components/Toolbar/icons/Star.d.ts +0 -3
  54. package/dist/components/Toolbar/icons/Text.d.ts +0 -3
  55. package/dist/components/Toolbar/icons/Triangle.d.ts +0 -3
  56. package/dist/components/Toolbar/icons/Up.d.ts +0 -3
  57. package/dist/components/Toolbar/icons/index.d.ts +0 -22
  58. package/dist/components/Toolbar/index.d.ts +0 -2
  59. package/dist/components/ZoomControl/ZoomControl.d.ts +0 -5
  60. package/dist/components/ZoomControl/hooks.d.ts +0 -7
  61. package/dist/components/ZoomControl/index.d.ts +0 -2
  62. package/dist/components/hooks.d.ts +0 -13
  63. package/dist/i18n/index.d.ts +0 -12
  64. package/dist/icons/ChevronLeft.d.ts +0 -3
  65. package/dist/icons/ChevronRight.d.ts +0 -3
  66. package/dist/icons/FilePlus.d.ts +0 -3
  67. package/dist/icons/Minus.d.ts +0 -3
  68. package/dist/icons/Plus.d.ts +0 -3
  69. package/dist/icons/Redo.d.ts +0 -3
  70. package/dist/icons/Reset.d.ts +0 -3
  71. package/dist/icons/Undo.d.ts +0 -3
  72. package/dist/icons/index.d.ts +0 -7
  73. package/dist/index.d.ts +0 -9
  74. package/dist/internal/helpers.d.ts +0 -16
  75. package/dist/internal/hooks.d.ts +0 -3
  76. package/dist/internal/index.d.ts +0 -2
  77. package/dist/theme.d.ts +0 -16
  78. package/dist/typings.d.ts +0 -10
package/dist/index.js CHANGED
@@ -640,58 +640,21 @@ function ZoomControl({
640
640
 
641
641
  // src/components/PageControl/hooks.ts
642
642
  var import_react16 = require("react");
643
- function usePageControl(room, manager) {
644
- const [pageIndex, setPageIndex] = (0, import_react16.useState)(0);
645
- const [pageCount, setPageCount] = (0, import_react16.useState)(0);
643
+ function usePageControl() {
644
+ const app = useFastboardApp();
645
+ const pageIndex = useFastboardValue(app.sceneIndex);
646
+ const pageCount = useFastboardValue(app.sceneLength);
646
647
  const addPage = (0, import_react16.useCallback)(async () => {
647
- if (manager && room) {
648
- await manager.switchMainViewToWriter();
649
- const path = room.state.sceneState.contextPath;
650
- room.putScenes(path, [{}], pageIndex + 1);
651
- await manager.setMainViewSceneIndex(pageIndex + 1);
652
- } else if (!manager && room) {
653
- const path = room.state.sceneState.contextPath;
654
- room.putScenes(path, [{}], pageIndex + 1);
655
- room.setSceneIndex(pageIndex + 1);
656
- }
657
- }, [room, manager, pageIndex]);
658
- const prevPage = (0, import_react16.useCallback)(() => {
659
- if (manager) {
660
- manager.setMainViewSceneIndex(pageIndex - 1);
661
- } else if (room) {
662
- room.pptPreviousStep();
663
- }
664
- }, [room, manager, pageIndex]);
665
- const nextPage = (0, import_react16.useCallback)(() => {
666
- if (manager) {
667
- manager.setMainViewSceneIndex(pageIndex + 1);
668
- } else if (room) {
669
- room.pptNextStep();
670
- }
671
- }, [room, manager, pageIndex]);
672
- (0, import_react16.useEffect)(() => {
673
- if (room) {
674
- setPageIndex(room.state.sceneState.index);
675
- setPageCount(room.state.sceneState.scenes.length);
676
- if (manager) {
677
- manager.emitter.on("mainViewSceneIndexChange", setPageIndex);
678
- return () => {
679
- manager.emitter.off("mainViewSceneIndexChange", setPageIndex);
680
- };
681
- } else {
682
- const onRoomStateChanged = (modifyState) => {
683
- if (modifyState.sceneState) {
684
- setPageIndex(modifyState.sceneState.index);
685
- setPageCount(modifyState.sceneState.scenes.length);
686
- }
687
- };
688
- room.callbacks.on("onRoomStateChanged", onRoomStateChanged);
689
- return () => {
690
- room.callbacks.off("onRoomStateChanged", onRoomStateChanged);
691
- };
692
- }
693
- }
694
- }, [room, manager]);
648
+ await app.manager.switchMainViewToWriter();
649
+ app.room.putScenes(app.manager.mainViewSceneDir, [{}], pageIndex + 1);
650
+ await app.manager.setMainViewSceneIndex(pageIndex + 1);
651
+ }, [app, pageIndex]);
652
+ const prevPage = (0, import_react16.useCallback)(async () => {
653
+ await app.manager.setMainViewSceneIndex(pageIndex - 1);
654
+ }, [app, pageIndex]);
655
+ const nextPage = (0, import_react16.useCallback)(async () => {
656
+ await app.manager.setMainViewSceneIndex(pageIndex + 1);
657
+ }, [app, pageIndex]);
695
658
  return { pageIndex, pageCount, prevPage, nextPage, addPage };
696
659
  }
697
660
 
@@ -756,11 +719,10 @@ function PageControl({
756
719
  nextIcon,
757
720
  nextIconDisable
758
721
  }) {
759
- const app = useFastboardApp();
760
722
  theme = useTheme(theme);
761
723
  const { t } = useTranslation();
762
724
  const writable = useWritable();
763
- const _a = usePageControl(app.room, app.manager), { pageIndex, pageCount } = _a, actions = __objRest(_a, ["pageIndex", "pageCount"]);
725
+ const _a = usePageControl(), { pageIndex, pageCount } = _a, actions = __objRest(_a, ["pageIndex", "pageCount"]);
764
726
  const disabled = !writable;
765
727
  return import_react21.default.createElement("div", {
766
728
  className: (0, import_clsx3.default)(name3, theme)
@@ -2059,23 +2021,34 @@ function renderSpeeds({ speed: current, setSpeed }) {
2059
2021
 
2060
2022
  // src/components/Fastboard.tsx
2061
2023
  var import_react70 = __toESM(require("react"));
2062
- function Fastboard(_a) {
2063
- var _b = _a, { app } = _b, restProps = __objRest(_b, ["app"]);
2024
+ var Fastboard = (0, import_react70.forwardRef)(function Fastboard2(_a, ref) {
2025
+ var _b = _a, { app, theme, layout, language } = _b, restProps = __objRest(_b, ["app", "theme", "layout", "language"]);
2064
2026
  if (!app) {
2065
- return import_react70.default.createElement("div", {
2066
- className: "fastboard-root"
2067
- });
2027
+ return import_react70.default.createElement("div", __spreadValues({
2028
+ className: "fastboard-root",
2029
+ ref
2030
+ }, restProps));
2068
2031
  }
2069
2032
  return import_react70.default.createElement(FastboardAppContext.Provider, {
2070
2033
  value: app
2071
- }, import_react70.default.createElement(FastboardInternal, __spreadValues({}, restProps)));
2072
- }
2073
- function FastboardInternal({
2074
- language,
2075
- layout = {},
2076
- theme = "light",
2077
- children
2078
- }) {
2034
+ }, import_react70.default.createElement(FastboardInternal, __spreadValues(__spreadValues({
2035
+ forwardedRef: ref
2036
+ }, { theme, layout, language }), restProps)));
2037
+ });
2038
+ function FastboardInternal(_a) {
2039
+ var _b = _a, {
2040
+ forwardedRef,
2041
+ language,
2042
+ layout = {},
2043
+ theme = "light",
2044
+ children
2045
+ } = _b, restProps = __objRest(_b, [
2046
+ "forwardedRef",
2047
+ "language",
2048
+ "layout",
2049
+ "theme",
2050
+ "children"
2051
+ ]);
2079
2052
  const app = useFastboardApp();
2080
2053
  const forceUpdate = useForceUpdate();
2081
2054
  const i18n = useAsyncValue(() => createI18n({ language }));
@@ -2084,8 +2057,12 @@ function FastboardInternal({
2084
2057
  i18n.changeLanguage(language);
2085
2058
  forceUpdate();
2086
2059
  }, [forceUpdate, i18n, language]);
2060
+ (0, import_react70.useEffect)(() => {
2061
+ app.manager.setPrefersColorScheme(theme);
2062
+ }, [app, theme]);
2087
2063
  const useWhiteboard = (0, import_react70.useCallback)((container) => {
2088
- container && app && app.manager.bindContainer(container);
2064
+ if (container && app)
2065
+ app.manager.bindContainer(container);
2089
2066
  }, [app]);
2090
2067
  const hideControls = useHideControls();
2091
2068
  const showControls = !hideControls;
@@ -2099,9 +2076,10 @@ function FastboardInternal({
2099
2076
  value: theme
2100
2077
  }, import_react70.default.createElement(I18nContext.Provider, {
2101
2078
  value: i18n
2102
- }, import_react70.default.createElement("div", {
2103
- className: "fastboard-root"
2104
- }, import_react70.default.createElement("div", {
2079
+ }, import_react70.default.createElement("div", __spreadProps(__spreadValues({}, restProps), {
2080
+ className: "fastboard-root",
2081
+ ref: forwardedRef
2082
+ }), import_react70.default.createElement("div", {
2105
2083
  className: "fastboard-view",
2106
2084
  ref: useWhiteboard
2107
2085
  }), children ? children : import_react70.default.createElement(import_react70.default.Fragment, null, toolbar && import_react70.default.createElement("div", {