@netless/fastboard-react 0.2.13-canary.0 → 0.3.0-canary.2
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.
- package/README.md +49 -0
- package/dist/index.d.ts +11 -140
- package/dist/index.js +73 -2130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -2129
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -23
- package/src/Fastboard.tsx +12 -0
- package/src/PageControl.tsx +11 -0
- package/src/RedoUndo.tsx +8 -0
- package/src/Toolbar.tsx +8 -0
- package/src/ZoomControl.tsx +11 -0
- package/src/hooks.tsx +53 -0
- package/src/index.tsx +19 -0
- package/src/style.scss +3 -26
- package/src/behaviors/style.ts +0 -4
- package/src/components/Fastboard.scss +0 -46
- package/src/components/Fastboard.tsx +0 -108
- package/src/components/PageControl/PageControl.scss +0 -84
- package/src/components/PageControl/PageControl.tsx +0 -101
- package/src/components/PageControl/hooks.ts +0 -24
- package/src/components/PageControl/index.ts +0 -2
- package/src/components/PlayerControl/PlayerControl.scss +0 -146
- package/src/components/PlayerControl/PlayerControl.tsx +0 -131
- package/src/components/PlayerControl/components/Button.tsx +0 -44
- package/src/components/PlayerControl/hooks.ts +0 -88
- package/src/components/PlayerControl/icons/Loading.tsx +0 -13
- package/src/components/PlayerControl/icons/Pause.tsx +0 -13
- package/src/components/PlayerControl/icons/Play.tsx +0 -13
- package/src/components/PlayerControl/icons/index.ts +0 -10
- package/src/components/PlayerControl/index.ts +0 -2
- package/src/components/RedoUndo/RedoUndo.scss +0 -56
- package/src/components/RedoUndo/RedoUndo.tsx +0 -76
- package/src/components/RedoUndo/hooks.ts +0 -18
- package/src/components/RedoUndo/index.ts +0 -2
- package/src/components/ReplayFastboard.tsx +0 -36
- package/src/components/Toolbar/Content.tsx +0 -89
- package/src/components/Toolbar/Toolbar.scss +0 -343
- package/src/components/Toolbar/Toolbar.tsx +0 -84
- package/src/components/Toolbar/components/ApplianceButtons.tsx +0 -108
- package/src/components/Toolbar/components/AppsButton.tsx +0 -134
- package/src/components/Toolbar/components/Button.tsx +0 -45
- package/src/components/Toolbar/components/ColorBox.tsx +0 -55
- package/src/components/Toolbar/components/CutLine.tsx +0 -8
- package/src/components/Toolbar/components/PencilButton.tsx +0 -66
- package/src/components/Toolbar/components/ShapesButton.tsx +0 -135
- package/src/components/Toolbar/components/Slider.tsx +0 -26
- package/src/components/Toolbar/components/TextButton.tsx +0 -62
- package/src/components/Toolbar/components/UpDownButtons.tsx +0 -49
- package/src/components/Toolbar/components/assets/cocos.png +0 -0
- package/src/components/Toolbar/components/assets/collapsed.png +0 -0
- package/src/components/Toolbar/components/assets/countdown.png +0 -0
- package/src/components/Toolbar/components/assets/expanded.png +0 -0
- package/src/components/Toolbar/components/assets/geogebra.png +0 -0
- package/src/components/Toolbar/components/assets/vscode.png +0 -0
- package/src/components/Toolbar/const.ts +0 -32
- package/src/components/Toolbar/hooks.ts +0 -89
- package/src/components/Toolbar/icons/Apps.tsx +0 -16
- package/src/components/Toolbar/icons/Arrow.tsx +0 -13
- package/src/components/Toolbar/icons/Circle.tsx +0 -13
- package/src/components/Toolbar/icons/Clean.tsx +0 -16
- package/src/components/Toolbar/icons/Clicker.tsx +0 -19
- package/src/components/Toolbar/icons/Collapse.tsx +0 -13
- package/src/components/Toolbar/icons/Diamond.tsx +0 -13
- package/src/components/Toolbar/icons/Down.tsx +0 -13
- package/src/components/Toolbar/icons/Eraser.tsx +0 -16
- package/src/components/Toolbar/icons/Expand.tsx +0 -13
- package/src/components/Toolbar/icons/Laser.tsx +0 -21
- package/src/components/Toolbar/icons/Line.tsx +0 -13
- package/src/components/Toolbar/icons/Loading.tsx +0 -13
- package/src/components/Toolbar/icons/Pencil.tsx +0 -16
- package/src/components/Toolbar/icons/Rectangle.tsx +0 -13
- package/src/components/Toolbar/icons/Selector.tsx +0 -13
- package/src/components/Toolbar/icons/SpeechBalloon.tsx +0 -17
- package/src/components/Toolbar/icons/Star.tsx +0 -17
- package/src/components/Toolbar/icons/Text.tsx +0 -13
- package/src/components/Toolbar/icons/Triangle.tsx +0 -13
- package/src/components/Toolbar/icons/Up.tsx +0 -13
- package/src/components/Toolbar/icons/index.ts +0 -42
- package/src/components/Toolbar/index.ts +0 -2
- package/src/components/ZoomControl/ZoomControl.scss +0 -84
- package/src/components/ZoomControl/ZoomControl.tsx +0 -96
- package/src/components/ZoomControl/hooks.ts +0 -50
- package/src/components/ZoomControl/index.ts +0 -2
- package/src/components/hooks.ts +0 -66
- package/src/components/tippy-util.ts +0 -8
- package/src/i18n/en.json +0 -31
- package/src/i18n/index.ts +0 -29
- package/src/i18n/zh-CN.json +0 -32
- package/src/icons/Left.tsx +0 -15
- package/src/icons/Minus.tsx +0 -15
- package/src/icons/Plus.tsx +0 -15
- package/src/icons/Redo.tsx +0 -19
- package/src/icons/Reset.tsx +0 -17
- package/src/icons/Right.tsx +0 -15
- package/src/icons/Undo.tsx +0 -19
- package/src/icons/WhiteboardAdd.tsx +0 -26
- package/src/icons/index.tsx +0 -11
- package/src/index.ts +0 -12
- package/src/internal/helpers.ts +0 -31
- package/src/internal/hooks.ts +0 -23
- package/src/internal/index.ts +0 -2
- package/src/theme.ts +0 -36
- package/src/typings.ts +0 -15
- package/src/vanilla/index.tsx +0 -28
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
## @netless/fastboard-react
|
|
2
|
+
|
|
3
|
+
The React wrapper of [@netless/fastboard-ui](https://github.com/netless-io/fastboard/tree/main/packages/fastboard-ui).
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
import React, { useEffect, useState } from "react";
|
|
9
|
+
import ReactDOM from "react-dom";
|
|
10
|
+
import { createFastboard, Fastboard } from "@netless/fastboard-react";
|
|
11
|
+
|
|
12
|
+
function App() {
|
|
13
|
+
const [app, setApp] = useState(null);
|
|
14
|
+
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
let app_instance;
|
|
17
|
+
|
|
18
|
+
createFastboard({
|
|
19
|
+
sdkConfig: {
|
|
20
|
+
appIdentifier: "whiteboard_app_id",
|
|
21
|
+
},
|
|
22
|
+
joinRoom: {
|
|
23
|
+
uid: "unique_user_id",
|
|
24
|
+
uuid: "room-uuid",
|
|
25
|
+
roomToken: "NETLESSROOM_...",
|
|
26
|
+
},
|
|
27
|
+
managerConfig: {
|
|
28
|
+
cursor: true,
|
|
29
|
+
},
|
|
30
|
+
}).then(app => {
|
|
31
|
+
setApp((app_instance = app));
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return () => {
|
|
35
|
+
if (app_instance) {
|
|
36
|
+
app_instance.destroy();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}, []);
|
|
40
|
+
|
|
41
|
+
return <Fastboard app={app} />;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
ReactDOM.render(<App />, document.getElementById("app"));
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### License
|
|
48
|
+
|
|
49
|
+
MIT @ [netless](https://github.com/netless-io)
|
package/dist/index.d.ts
CHANGED
|
@@ -1,146 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import
|
|
1
|
+
export * from '@netless/fastboard-core';
|
|
2
|
+
import { RedoUndoProps, ZoomControlProps, PageControlProps, ToolbarProps, FastboardProps, ReplayFastboardProps } from '@netless/fastboard-ui';
|
|
3
|
+
export { FastboardProps, GenericIcon, Language, PageControlProps, RedoUndoProps, ReplayFastboardProps, Theme, ToolbarProps, ZoomControlProps } from '@netless/fastboard-ui';
|
|
4
|
+
import * as react from 'react';
|
|
5
5
|
|
|
6
|
-
declare
|
|
7
|
-
declare type Language = "en" | "zh-CN";
|
|
8
|
-
interface IconProps {
|
|
9
|
-
theme?: Theme;
|
|
10
|
-
active?: boolean;
|
|
11
|
-
}
|
|
12
|
-
interface CommonProps {
|
|
13
|
-
theme?: Theme;
|
|
14
|
-
}
|
|
15
|
-
declare type GenericIcon<K extends string, E extends string = "disable"> = Partial<Record<`${K}Icon${Capitalize<E | "">}`, string>>;
|
|
6
|
+
declare const RedoUndo: react.FunctionComponent<RedoUndoProps>;
|
|
16
7
|
|
|
17
|
-
declare const
|
|
18
|
-
declare const ThemeContext: React.Context<Theme>;
|
|
19
|
-
declare function useTheme(userTheme?: Theme | null): Theme;
|
|
20
|
-
declare function useFastboardApp(): FastboardApp;
|
|
21
|
-
declare function useFastboardValue<T>(val: FastboardReadable<T>): T;
|
|
22
|
-
declare function useWritable(): boolean;
|
|
23
|
-
declare function useBoxState(): "normal" | "minimized" | "maximized" | undefined;
|
|
24
|
-
declare function useFocusedApp(): string | undefined;
|
|
25
|
-
declare function useMaximized(): boolean;
|
|
26
|
-
declare function useHideControls(): boolean | "toolbar-only";
|
|
8
|
+
declare const ZoomControl: react.FunctionComponent<ZoomControlProps>;
|
|
27
9
|
|
|
28
|
-
declare
|
|
29
|
-
redoSteps: number;
|
|
30
|
-
undoSteps: number;
|
|
31
|
-
redo: () => void;
|
|
32
|
-
undo: () => void;
|
|
33
|
-
};
|
|
10
|
+
declare const PageControl: react.FunctionComponent<PageControlProps>;
|
|
34
11
|
|
|
35
|
-
declare
|
|
36
|
-
declare function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable }: RedoUndoProps): JSX.Element;
|
|
12
|
+
declare const Toolbar: react.FunctionComponent<ToolbarProps>;
|
|
37
13
|
|
|
38
|
-
declare const
|
|
39
|
-
declare
|
|
40
|
-
scale: number;
|
|
41
|
-
resetCamera: () => void;
|
|
42
|
-
zoomIn: () => void;
|
|
43
|
-
zoomOut: () => void;
|
|
44
|
-
};
|
|
14
|
+
declare const Fastboard: react.FunctionComponent<FastboardProps>;
|
|
15
|
+
declare const ReplayFastboard: react.FunctionComponent<ReplayFastboardProps>;
|
|
45
16
|
|
|
46
|
-
|
|
47
|
-
declare function ZoomControl({ theme, resetIcon, resetIconDisable, minusIcon, minusIconDisable, plusIcon, plusIconDisable, }: ZoomControlProps): JSX.Element;
|
|
48
|
-
|
|
49
|
-
declare function usePageControl(): {
|
|
50
|
-
pageIndex: number;
|
|
51
|
-
pageCount: number;
|
|
52
|
-
prevPage: () => Promise<void>;
|
|
53
|
-
nextPage: () => Promise<void>;
|
|
54
|
-
addPage: () => Promise<void>;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
declare type PageControlProps = CommonProps & GenericIcon<"add" | "prev" | "next">;
|
|
58
|
-
declare function PageControl({ theme, addIcon, addIconDisable, prevIcon, prevIconDisable, nextIcon, nextIconDisable, }: PageControlProps): JSX.Element;
|
|
59
|
-
|
|
60
|
-
declare const ShapesMap: {
|
|
61
|
-
readonly rectangle: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
62
|
-
readonly ellipse: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
63
|
-
readonly straight: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
64
|
-
readonly arrow: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
65
|
-
readonly pentagram: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
66
|
-
readonly rhombus: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
67
|
-
readonly triangle: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
68
|
-
readonly speechBalloon: React.MemoExoticComponent<(props: IconProps) => JSX.Element>;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
declare type UnifiedShape = keyof typeof ShapesMap;
|
|
72
|
-
interface ToolbarHook {
|
|
73
|
-
readonly writable: boolean;
|
|
74
|
-
readonly memberState: MemberState | undefined;
|
|
75
|
-
readonly lastShape: UnifiedShape;
|
|
76
|
-
readonly appsStatus: AppsStatus;
|
|
77
|
-
cleanCurrentScene(): void;
|
|
78
|
-
setAppliance(appliance: ApplianceNames, shape?: ShapeType): void;
|
|
79
|
-
setStrokeWidth(width: number): void;
|
|
80
|
-
setStrokeColor(color: Color): void;
|
|
81
|
-
}
|
|
82
|
-
declare function useRoomState(): MemberState;
|
|
83
|
-
declare function useAppsStatus(): AppsStatus;
|
|
84
|
-
declare function useToolbar(): ToolbarHook;
|
|
85
|
-
declare const EmptyToolbarHook: ToolbarHook;
|
|
86
|
-
|
|
87
|
-
declare type ToolbarProps = CommonProps & {
|
|
88
|
-
icons?: GenericIcon<"clicker" | "selector" | "pencil" | "eraser" | "clean" | "expand" | "collapse" | "up" | "down" | "text" | "apps">;
|
|
89
|
-
};
|
|
90
|
-
declare function Toolbar({ theme, icons }: ToolbarProps): JSX.Element;
|
|
91
|
-
|
|
92
|
-
declare function usePlayerControl(player?: Player | null): {
|
|
93
|
-
phase: PlayerPhase;
|
|
94
|
-
currentTime: number;
|
|
95
|
-
totalTime: number;
|
|
96
|
-
speed: number;
|
|
97
|
-
setSpeed: (speed: number) => void;
|
|
98
|
-
togglePlay: () => void;
|
|
99
|
-
seekToProgressTime: (time: number) => void;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
declare type PlayerControlProps = {
|
|
103
|
-
autoHide?: boolean;
|
|
104
|
-
player?: FastboardPlayer;
|
|
105
|
-
} & Omit<CommonProps, "room"> & GenericIcon<"play" | "pause" | "loading">;
|
|
106
|
-
declare function PlayerControl({ theme, autoHide, player: player_, ...icons }: PlayerControlProps): JSX.Element;
|
|
107
|
-
|
|
108
|
-
interface FastboardProps {
|
|
109
|
-
app?: FastboardApp | null;
|
|
110
|
-
theme?: Theme;
|
|
111
|
-
layout?: {
|
|
112
|
-
Toolbar?: boolean;
|
|
113
|
-
RedoUndo?: boolean;
|
|
114
|
-
ZoomControl?: boolean;
|
|
115
|
-
PageControl?: boolean;
|
|
116
|
-
};
|
|
117
|
-
language?: Language;
|
|
118
|
-
}
|
|
119
|
-
declare type DivProps = React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
120
|
-
declare type WithForwardedRef<T = HTMLDivElement> = {
|
|
121
|
-
forwardedRef: ForwardedRef<T>;
|
|
122
|
-
};
|
|
123
|
-
declare const Fastboard: React__default.ForwardRefExoticComponent<Pick<FastboardProps & React__default.ClassAttributes<HTMLDivElement> & React__default.HTMLAttributes<HTMLDivElement>, keyof React__default.HTMLAttributes<HTMLDivElement> | "key" | keyof FastboardProps> & React__default.RefAttributes<HTMLDivElement>>;
|
|
124
|
-
|
|
125
|
-
interface ReplayFastboardProps {
|
|
126
|
-
player?: FastboardPlayer | null;
|
|
127
|
-
theme?: Theme;
|
|
128
|
-
autoHideControl?: boolean;
|
|
129
|
-
}
|
|
130
|
-
declare const ReplayFastboard: React__default.ForwardRefExoticComponent<Pick<ReplayFastboardProps & React__default.ClassAttributes<HTMLDivElement> & React__default.HTMLAttributes<HTMLDivElement>, keyof React__default.HTMLAttributes<HTMLDivElement> | "key" | keyof ReplayFastboardProps> & React__default.RefAttributes<HTMLDivElement>>;
|
|
131
|
-
|
|
132
|
-
declare type MountProps = Omit<FastboardProps & DivProps, "ref">;
|
|
133
|
-
/**
|
|
134
|
-
* Mount fastboard app to some dom, returns the updater and disposer.
|
|
135
|
-
* @example
|
|
136
|
-
* let app = await createFastboard({ ...config })
|
|
137
|
-
* const { update, destroy } = mount(app, document.getElementById("whiteboard"))
|
|
138
|
-
* update({ theme: 'dark' })
|
|
139
|
-
* destroy()
|
|
140
|
-
*/
|
|
141
|
-
declare function mount(app: FastboardApp, dom: HTMLElement, props?: MountProps): {
|
|
142
|
-
update(props?: MountProps): void;
|
|
143
|
-
destroy(): void;
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
export { CommonProps, DivProps, EmptyToolbarHook, Fastboard, FastboardAppContext, FastboardProps, GenericIcon, IconProps, Language, MountProps, PageControl, PageControlProps, PlayerControl, PlayerControlProps, RedoUndo, RedoUndoProps, ReplayFastboard, ReplayFastboardProps, ScalePoints, Theme, ThemeContext, Toolbar, ToolbarHook, ToolbarProps, UnifiedShape, WithForwardedRef, ZoomControl, ZoomControlProps, mount, useAppsStatus, useBoxState, useFastboardApp, useFastboardValue, useFocusedApp, useHideControls, useMaximized, usePageControl, usePlayerControl, useRedoUndo, useRoomState, useTheme, useToolbar, useWritable, useZoomControl };
|
|
17
|
+
export { Fastboard, PageControl, RedoUndo, ReplayFastboard, Toolbar, ZoomControl };
|