@microsoft/live-share-react 2.0.0-internal.18 → 2.0.0-internal.19
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 +6 -0
- package/bin/esm/live-hooks/useLiveCanvas.js +29 -30
- package/bin/esm/live-hooks/useLiveCanvas.js.map +1 -1
- package/bin/esm/live-hooks/useLiveEvent.js +6 -15
- package/bin/esm/live-hooks/useLiveEvent.js.map +1 -1
- package/bin/esm/live-hooks/useLiveFollowMode.js +25 -34
- package/bin/esm/live-hooks/useLiveFollowMode.js.map +1 -1
- package/bin/esm/live-hooks/useLivePresence.js +5 -14
- package/bin/esm/live-hooks/useLivePresence.js.map +1 -1
- package/bin/esm/live-hooks/useLiveState.js +4 -13
- package/bin/esm/live-hooks/useLiveState.js.map +1 -1
- package/bin/esm/live-hooks/useLiveTimer.js +22 -31
- package/bin/esm/live-hooks/useLiveTimer.js.map +1 -1
- package/bin/esm/live-hooks/useMediaSynchronizer.js +24 -33
- package/bin/esm/live-hooks/useMediaSynchronizer.js.map +1 -1
- package/bin/esm/providers/AzureProvider.js +22 -27
- package/bin/esm/providers/AzureProvider.js.map +1 -1
- package/bin/esm/providers/LiveShareProvider.js +20 -21
- package/bin/esm/providers/LiveShareProvider.js.map +1 -1
- package/bin/esm/shared-hooks/internals/tree-node-types.js +1 -1
- package/bin/esm/shared-hooks/internals/tree-node-types.js.map +1 -1
- package/bin/esm/shared-hooks/internals/tree-node-utils.js +2 -4
- package/bin/esm/shared-hooks/internals/tree-node-utils.js.map +1 -1
- package/bin/esm/shared-hooks/useDynamicDDS.js +3 -12
- package/bin/esm/shared-hooks/useDynamicDDS.js.map +1 -1
- package/bin/esm/shared-hooks/useSharedMap.js +1 -1
- package/bin/esm/shared-hooks/useSharedMap.js.map +1 -1
- package/bin/esm/shared-hooks/useSharedStateRegistry.js +13 -10
- package/bin/esm/shared-hooks/useSharedStateRegistry.js.map +1 -1
- package/bin/esm/shared-hooks/useSharedTree.js +4 -4
- package/bin/esm/shared-hooks/useSharedTree.js.map +1 -1
- package/bin/esm/types/FluidMap.d.ts +151 -0
- package/bin/esm/types/FluidMap.d.ts.map +1 -0
- package/bin/esm/types/FluidMap.js +24 -0
- package/bin/esm/types/FluidMap.js.map +1 -0
- package/bin/esm/types/ResultTypes.d.ts +15 -1
- package/bin/esm/types/ResultTypes.d.ts.map +1 -1
- package/bin/esm/utils/type-check.js +1 -1
- package/bin/esm/utils/type-check.js.map +1 -1
- package/package.json +11 -21
- package/src/types/FluidMap.ts +169 -0
- package/src/types/ResultTypes.ts +18 -1
- package/tsconfig.json +3 -4
- package/bin/cjs/index.d.ts +0 -7
- package/bin/cjs/index.d.ts.map +0 -1
- package/bin/cjs/index.js +0 -23
- package/bin/cjs/index.js.map +0 -1
- package/bin/cjs/interfaces/LiveInterfaceExtensions.d.ts +0 -26
- package/bin/cjs/interfaces/LiveInterfaceExtensions.d.ts.map +0 -1
- package/bin/cjs/interfaces/LiveInterfaceExtensions.js +0 -7
- package/bin/cjs/interfaces/LiveInterfaceExtensions.js.map +0 -1
- package/bin/cjs/interfaces/index.d.ts +0 -2
- package/bin/cjs/interfaces/index.d.ts.map +0 -1
- package/bin/cjs/interfaces/index.js +0 -18
- package/bin/cjs/interfaces/index.js.map +0 -1
- package/bin/cjs/internal/errors.d.ts +0 -41
- package/bin/cjs/internal/errors.d.ts.map +0 -1
- package/bin/cjs/internal/errors.js +0 -48
- package/bin/cjs/internal/errors.js.map +0 -1
- package/bin/cjs/internal/index.d.ts +0 -3
- package/bin/cjs/internal/index.d.ts.map +0 -1
- package/bin/cjs/internal/index.js +0 -19
- package/bin/cjs/internal/index.js.map +0 -1
- package/bin/cjs/internal/type-guards.d.ts +0 -11
- package/bin/cjs/internal/type-guards.d.ts.map +0 -1
- package/bin/cjs/internal/type-guards.js +0 -24
- package/bin/cjs/internal/type-guards.js.map +0 -1
- package/bin/cjs/live-hooks/index.d.ts +0 -8
- package/bin/cjs/live-hooks/index.d.ts.map +0 -1
- package/bin/cjs/live-hooks/index.js +0 -24
- package/bin/cjs/live-hooks/index.js.map +0 -1
- package/bin/cjs/live-hooks/useLiveCanvas.d.ts +0 -80
- package/bin/cjs/live-hooks/useLiveCanvas.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLiveCanvas.js +0 -244
- package/bin/cjs/live-hooks/useLiveCanvas.js.map +0 -1
- package/bin/cjs/live-hooks/useLiveEvent.d.ts +0 -59
- package/bin/cjs/live-hooks/useLiveEvent.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLiveEvent.js +0 -150
- package/bin/cjs/live-hooks/useLiveEvent.js.map +0 -1
- package/bin/cjs/live-hooks/useLiveFollowMode.d.ts +0 -163
- package/bin/cjs/live-hooks/useLiveFollowMode.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLiveFollowMode.js +0 -360
- package/bin/cjs/live-hooks/useLiveFollowMode.js.map +0 -1
- package/bin/cjs/live-hooks/useLivePresence.d.ts +0 -76
- package/bin/cjs/live-hooks/useLivePresence.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLivePresence.js +0 -170
- package/bin/cjs/live-hooks/useLivePresence.js.map +0 -1
- package/bin/cjs/live-hooks/useLiveState.d.ts +0 -66
- package/bin/cjs/live-hooks/useLiveState.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLiveState.js +0 -134
- package/bin/cjs/live-hooks/useLiveState.js.map +0 -1
- package/bin/cjs/live-hooks/useLiveTimer.d.ts +0 -80
- package/bin/cjs/live-hooks/useLiveTimer.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useLiveTimer.js +0 -233
- package/bin/cjs/live-hooks/useLiveTimer.js.map +0 -1
- package/bin/cjs/live-hooks/useMediaSynchronizer.d.ts +0 -86
- package/bin/cjs/live-hooks/useMediaSynchronizer.d.ts.map +0 -1
- package/bin/cjs/live-hooks/useMediaSynchronizer.js +0 -301
- package/bin/cjs/live-hooks/useMediaSynchronizer.js.map +0 -1
- package/bin/cjs/package.json +0 -1
- package/bin/cjs/providers/AzureProvider.d.ts +0 -113
- package/bin/cjs/providers/AzureProvider.d.ts.map +0 -1
- package/bin/cjs/providers/AzureProvider.js +0 -127
- package/bin/cjs/providers/AzureProvider.js.map +0 -1
- package/bin/cjs/providers/LiveShareProvider.d.ts +0 -193
- package/bin/cjs/providers/LiveShareProvider.d.ts.map +0 -1
- package/bin/cjs/providers/LiveShareProvider.js +0 -205
- package/bin/cjs/providers/LiveShareProvider.js.map +0 -1
- package/bin/cjs/providers/index.d.ts +0 -3
- package/bin/cjs/providers/index.d.ts.map +0 -1
- package/bin/cjs/providers/index.js +0 -19
- package/bin/cjs/providers/index.js.map +0 -1
- package/bin/cjs/shared-hooks/index.d.ts +0 -7
- package/bin/cjs/shared-hooks/index.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/index.js +0 -23
- package/bin/cjs/shared-hooks/index.js.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-constants.d.ts +0 -3
- package/bin/cjs/shared-hooks/internals/tree-node-constants.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-constants.js +0 -6
- package/bin/cjs/shared-hooks/internals/tree-node-constants.js.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-types.d.ts +0 -10
- package/bin/cjs/shared-hooks/internals/tree-node-types.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-types.js +0 -23
- package/bin/cjs/shared-hooks/internals/tree-node-types.js.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-utils.d.ts +0 -33
- package/bin/cjs/shared-hooks/internals/tree-node-utils.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/internals/tree-node-utils.js +0 -193
- package/bin/cjs/shared-hooks/internals/tree-node-utils.js.map +0 -1
- package/bin/cjs/shared-hooks/useDynamicDDS.d.ts +0 -23
- package/bin/cjs/shared-hooks/useDynamicDDS.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useDynamicDDS.js +0 -87
- package/bin/cjs/shared-hooks/useDynamicDDS.js.map +0 -1
- package/bin/cjs/shared-hooks/useSharedMap.d.ts +0 -25
- package/bin/cjs/shared-hooks/useSharedMap.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useSharedMap.js +0 -134
- package/bin/cjs/shared-hooks/useSharedMap.js.map +0 -1
- package/bin/cjs/shared-hooks/useSharedState.d.ts +0 -22
- package/bin/cjs/shared-hooks/useSharedState.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useSharedState.js +0 -80
- package/bin/cjs/shared-hooks/useSharedState.js.map +0 -1
- package/bin/cjs/shared-hooks/useSharedStateRegistry.d.ts +0 -37
- package/bin/cjs/shared-hooks/useSharedStateRegistry.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useSharedStateRegistry.js +0 -120
- package/bin/cjs/shared-hooks/useSharedStateRegistry.js.map +0 -1
- package/bin/cjs/shared-hooks/useSharedTree.d.ts +0 -57
- package/bin/cjs/shared-hooks/useSharedTree.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useSharedTree.js +0 -123
- package/bin/cjs/shared-hooks/useSharedTree.js.map +0 -1
- package/bin/cjs/shared-hooks/useTreeNode.d.ts +0 -96
- package/bin/cjs/shared-hooks/useTreeNode.d.ts.map +0 -1
- package/bin/cjs/shared-hooks/useTreeNode.js +0 -135
- package/bin/cjs/shared-hooks/useTreeNode.js.map +0 -1
- package/bin/cjs/types/ActionTypes.d.ts +0 -112
- package/bin/cjs/types/ActionTypes.d.ts.map +0 -1
- package/bin/cjs/types/ActionTypes.js +0 -7
- package/bin/cjs/types/ActionTypes.js.map +0 -1
- package/bin/cjs/types/PropTypes.d.ts +0 -56
- package/bin/cjs/types/PropTypes.d.ts.map +0 -1
- package/bin/cjs/types/PropTypes.js +0 -7
- package/bin/cjs/types/PropTypes.js.map +0 -1
- package/bin/cjs/types/ResultTypes.d.ts +0 -334
- package/bin/cjs/types/ResultTypes.d.ts.map +0 -1
- package/bin/cjs/types/ResultTypes.js +0 -7
- package/bin/cjs/types/ResultTypes.js.map +0 -1
- package/bin/cjs/types/index.d.ts +0 -4
- package/bin/cjs/types/index.d.ts.map +0 -1
- package/bin/cjs/types/index.js +0 -20
- package/bin/cjs/types/index.js.map +0 -1
- package/bin/cjs/utils/index.d.ts +0 -2
- package/bin/cjs/utils/index.d.ts.map +0 -1
- package/bin/cjs/utils/index.js +0 -18
- package/bin/cjs/utils/index.js.map +0 -1
- package/bin/cjs/utils/type-check.d.ts +0 -15
- package/bin/cjs/utils/type-check.d.ts.map +0 -1
- package/bin/cjs/utils/type-check.js +0 -62
- package/bin/cjs/utils/type-check.js.map +0 -1
- package/bin/index.d.ts +0 -7
- package/bin/index.d.ts.map +0 -1
- package/bin/index.js +0 -7
- package/bin/index.js.map +0 -1
- package/bin/interfaces/LiveInterfaceExtensions.d.ts +0 -26
- package/bin/interfaces/LiveInterfaceExtensions.d.ts.map +0 -1
- package/bin/interfaces/LiveInterfaceExtensions.js +0 -6
- package/bin/interfaces/LiveInterfaceExtensions.js.map +0 -1
- package/bin/interfaces/index.d.ts +0 -2
- package/bin/interfaces/index.d.ts.map +0 -1
- package/bin/interfaces/index.js +0 -2
- package/bin/interfaces/index.js.map +0 -1
- package/bin/internal/errors.d.ts +0 -41
- package/bin/internal/errors.d.ts.map +0 -1
- package/bin/internal/errors.js +0 -42
- package/bin/internal/errors.js.map +0 -1
- package/bin/internal/index.d.ts +0 -3
- package/bin/internal/index.d.ts.map +0 -1
- package/bin/internal/index.js +0 -3
- package/bin/internal/index.js.map +0 -1
- package/bin/internal/type-guards.d.ts +0 -11
- package/bin/internal/type-guards.d.ts.map +0 -1
- package/bin/internal/type-guards.js +0 -20
- package/bin/internal/type-guards.js.map +0 -1
- package/bin/live-hooks/index.d.ts +0 -8
- package/bin/live-hooks/index.d.ts.map +0 -1
- package/bin/live-hooks/index.js +0 -8
- package/bin/live-hooks/index.js.map +0 -1
- package/bin/live-hooks/useLiveCanvas.d.ts +0 -29
- package/bin/live-hooks/useLiveCanvas.d.ts.map +0 -1
- package/bin/live-hooks/useLiveCanvas.js +0 -160
- package/bin/live-hooks/useLiveCanvas.js.map +0 -1
- package/bin/live-hooks/useLiveEvent.d.ts +0 -23
- package/bin/live-hooks/useLiveEvent.d.ts.map +0 -1
- package/bin/live-hooks/useLiveEvent.js +0 -108
- package/bin/live-hooks/useLiveEvent.js.map +0 -1
- package/bin/live-hooks/useLiveFollowMode.d.ts +0 -24
- package/bin/live-hooks/useLiveFollowMode.d.ts.map +0 -1
- package/bin/live-hooks/useLiveFollowMode.js +0 -211
- package/bin/live-hooks/useLiveFollowMode.js.map +0 -1
- package/bin/live-hooks/useLivePresence.d.ts +0 -26
- package/bin/live-hooks/useLivePresence.d.ts.map +0 -1
- package/bin/live-hooks/useLivePresence.js +0 -106
- package/bin/live-hooks/useLivePresence.js.map +0 -1
- package/bin/live-hooks/useLiveState.d.ts +0 -21
- package/bin/live-hooks/useLiveState.d.ts.map +0 -1
- package/bin/live-hooks/useLiveState.js +0 -83
- package/bin/live-hooks/useLiveState.js.map +0 -1
- package/bin/live-hooks/useLiveTimer.d.ts +0 -25
- package/bin/live-hooks/useLiveTimer.d.ts.map +0 -1
- package/bin/live-hooks/useLiveTimer.js +0 -172
- package/bin/live-hooks/useLiveTimer.js.map +0 -1
- package/bin/live-hooks/useMediaSynchronizer.d.ts +0 -25
- package/bin/live-hooks/useMediaSynchronizer.d.ts.map +0 -1
- package/bin/live-hooks/useMediaSynchronizer.js +0 -234
- package/bin/live-hooks/useMediaSynchronizer.js.map +0 -1
- package/bin/providers/AzureProvider.d.ts +0 -113
- package/bin/providers/AzureProvider.d.ts.map +0 -1
- package/bin/providers/AzureProvider.js +0 -119
- package/bin/providers/AzureProvider.js.map +0 -1
- package/bin/providers/LiveShareProvider.d.ts +0 -91
- package/bin/providers/LiveShareProvider.d.ts.map +0 -1
- package/bin/providers/LiveShareProvider.js +0 -95
- package/bin/providers/LiveShareProvider.js.map +0 -1
- package/bin/providers/index.d.ts +0 -3
- package/bin/providers/index.d.ts.map +0 -1
- package/bin/providers/index.js +0 -3
- package/bin/providers/index.js.map +0 -1
- package/bin/shared-hooks/index.d.ts +0 -5
- package/bin/shared-hooks/index.d.ts.map +0 -1
- package/bin/shared-hooks/index.js +0 -5
- package/bin/shared-hooks/index.js.map +0 -1
- package/bin/shared-hooks/useDynamicDDS.d.ts +0 -23
- package/bin/shared-hooks/useDynamicDDS.d.ts.map +0 -1
- package/bin/shared-hooks/useDynamicDDS.js +0 -72
- package/bin/shared-hooks/useDynamicDDS.js.map +0 -1
- package/bin/shared-hooks/useSharedMap.d.ts +0 -23
- package/bin/shared-hooks/useSharedMap.d.ts.map +0 -1
- package/bin/shared-hooks/useSharedMap.js +0 -114
- package/bin/shared-hooks/useSharedMap.js.map +0 -1
- package/bin/shared-hooks/useSharedState.d.ts +0 -22
- package/bin/shared-hooks/useSharedState.d.ts.map +0 -1
- package/bin/shared-hooks/useSharedState.js +0 -74
- package/bin/shared-hooks/useSharedState.js.map +0 -1
- package/bin/shared-hooks/useSharedStateRegistry.d.ts +0 -37
- package/bin/shared-hooks/useSharedStateRegistry.d.ts.map +0 -1
- package/bin/shared-hooks/useSharedStateRegistry.js +0 -105
- package/bin/shared-hooks/useSharedStateRegistry.js.map +0 -1
- package/bin/types/ActionTypes.d.ts +0 -112
- package/bin/types/ActionTypes.d.ts.map +0 -1
- package/bin/types/ActionTypes.js +0 -6
- package/bin/types/ActionTypes.js.map +0 -1
- package/bin/types/PropTypes.d.ts +0 -8
- package/bin/types/PropTypes.d.ts.map +0 -1
- package/bin/types/PropTypes.js +0 -6
- package/bin/types/PropTypes.js.map +0 -1
- package/bin/types/ResultTypes.d.ts +0 -302
- package/bin/types/ResultTypes.d.ts.map +0 -1
- package/bin/types/ResultTypes.js +0 -6
- package/bin/types/ResultTypes.js.map +0 -1
- package/bin/types/index.d.ts +0 -4
- package/bin/types/index.d.ts.map +0 -1
- package/bin/types/index.js +0 -4
- package/bin/types/index.js.map +0 -1
- package/bin/utils/index.d.ts +0 -2
- package/bin/utils/index.d.ts.map +0 -1
- package/bin/utils/index.js +0 -2
- package/bin/utils/index.js.map +0 -1
- package/bin/utils/type-check.d.ts +0 -15
- package/bin/utils/type-check.d.ts.map +0 -1
- package/bin/utils/type-check.js +0 -54
- package/bin/utils/type-check.js.map +0 -1
- package/tsconfig.cjs.json +0 -14
package/README.md
CHANGED
|
@@ -133,6 +133,12 @@ _NOTE:_ While this hook will get you pretty far on its own, carefully consider w
|
|
|
133
133
|
|
|
134
134
|
This hook loads a Fluid `SharedMap` corresponding with the key you provide. Compared to `useSharedState`, this hook allows you to render a collection of items with less risk of conflict when multiple users may be writing to the same object simultaneously. For example, rather than storing an entire list of objects in a single key of `useSharedState`, the map allows each item in the list to have its own unique key.
|
|
135
135
|
|
|
136
|
+
In TypeScript, `useSharedMap<TData>` preserves `TData` for `sharedMap.get`, `forEach`,
|
|
137
|
+
`values`, and `entries` on both Fluid 2.x and 3.x. Its `delete` method returns a boolean and `set`
|
|
138
|
+
remains chainable. With Fluid 3.x, `sharedMap` is not assignable to a built-in `Map`;
|
|
139
|
+
use `new Map(sharedMap)` once it is defined if you need a local, unsynchronized snapshot.
|
|
140
|
+
Use `setEntry` for writes constrained to `TData`.
|
|
141
|
+
|
|
136
142
|
While you write to keys individually, the `map` object exposed through the hook uses React state itself. Lets see an example in action:
|
|
137
143
|
|
|
138
144
|
```javascript
|
|
@@ -81,7 +81,6 @@ export function ExampleLiveCanvas() {
|
|
|
81
81
|
```
|
|
82
82
|
*/
|
|
83
83
|
export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
84
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
85
84
|
/**
|
|
86
85
|
* User facing: inking manager instance
|
|
87
86
|
*/
|
|
@@ -92,7 +91,7 @@ export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
|
92
91
|
const { dds: liveCanvas } = useDynamicDDS(uniqueKey, LiveCanvas);
|
|
93
92
|
// This should change less frequently then node if they are using `useTreeNode`
|
|
94
93
|
// We need the raw node anyways to apply event listeners
|
|
95
|
-
const rawNode = getRawNode(props
|
|
94
|
+
const rawNode = getRawNode(props?.node);
|
|
96
95
|
/**
|
|
97
96
|
* Setup the InkingManager and LiveCanvas
|
|
98
97
|
*/
|
|
@@ -121,7 +120,7 @@ export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
|
121
120
|
// Create the InkingManager and initialize the liveCanvas with it
|
|
122
121
|
const inkingManager = new InkingManager(htmlElement);
|
|
123
122
|
setInkingManager(inkingManager);
|
|
124
|
-
liveCanvas.initialize(inkingManager, props
|
|
123
|
+
liveCanvas.initialize(inkingManager, props?.allowedRoles, rawNode);
|
|
125
124
|
// cleanup function to be called when the component is unmount
|
|
126
125
|
return () => {
|
|
127
126
|
inkingManager.removeAllListeners();
|
|
@@ -129,13 +128,13 @@ export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
|
129
128
|
},
|
|
130
129
|
// Intentionally ommitting rawNode from deps because we only want to initialize once,
|
|
131
130
|
// whereas rawNode may change many times.
|
|
132
|
-
[liveCanvas, props
|
|
131
|
+
[liveCanvas, props?.allowedRoles]);
|
|
133
132
|
/**
|
|
134
133
|
* Set the node if it changes while LiveCanvas is initialized
|
|
135
134
|
*/
|
|
136
135
|
React.useEffect(() => {
|
|
137
136
|
if (!rawNode ||
|
|
138
|
-
|
|
137
|
+
liveCanvas?.initializeState !==
|
|
139
138
|
LiveDataObjectInitializeState.succeeded)
|
|
140
139
|
return;
|
|
141
140
|
liveCanvas.setTreeNode(rawNode);
|
|
@@ -144,55 +143,55 @@ export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
|
144
143
|
* Activate or deactivate the inkingManager based on the 'active' prop
|
|
145
144
|
*/
|
|
146
145
|
React.useEffect(() => {
|
|
147
|
-
if (inkingManager &&
|
|
148
|
-
if (props
|
|
146
|
+
if (inkingManager && props?.active !== undefined) {
|
|
147
|
+
if (props?.active) {
|
|
149
148
|
inkingManager.activate();
|
|
150
149
|
}
|
|
151
150
|
else {
|
|
152
151
|
inkingManager.deactivate();
|
|
153
152
|
}
|
|
154
153
|
}
|
|
155
|
-
}, [props
|
|
154
|
+
}, [props?.active, inkingManager]);
|
|
156
155
|
/**
|
|
157
156
|
* Sets the tool of the inkingManager based on the 'tool' prop
|
|
158
157
|
*/
|
|
159
158
|
React.useEffect(() => {
|
|
160
|
-
if (inkingManager &&
|
|
159
|
+
if (inkingManager && props?.tool !== undefined) {
|
|
161
160
|
inkingManager.tool = props.tool;
|
|
162
161
|
}
|
|
163
|
-
}, [props
|
|
162
|
+
}, [props?.tool, inkingManager]);
|
|
164
163
|
/**
|
|
165
164
|
* Sets the offset of the inkingManager based on the 'offset' prop
|
|
166
165
|
*/
|
|
167
166
|
React.useEffect(() => {
|
|
168
|
-
if (inkingManager &&
|
|
167
|
+
if (inkingManager && props?.offset !== undefined) {
|
|
169
168
|
inkingManager.offset = {
|
|
170
|
-
x: props
|
|
171
|
-
y: props
|
|
169
|
+
x: props?.offset.x,
|
|
170
|
+
y: props?.offset.y,
|
|
172
171
|
};
|
|
173
172
|
}
|
|
174
|
-
}, [
|
|
173
|
+
}, [props?.offset?.x, props?.offset?.y, inkingManager]);
|
|
175
174
|
/**
|
|
176
175
|
* Sets the scale of the inkingManager based on the 'scale' prop
|
|
177
176
|
*/
|
|
178
177
|
React.useEffect(() => {
|
|
179
|
-
if (inkingManager &&
|
|
180
|
-
inkingManager.scale = props
|
|
178
|
+
if (inkingManager && props?.scale !== undefined) {
|
|
179
|
+
inkingManager.scale = props?.scale;
|
|
181
180
|
}
|
|
182
|
-
}, [props
|
|
181
|
+
}, [props?.scale, inkingManager]);
|
|
183
182
|
/**
|
|
184
183
|
* Sets the referencePoint of the inkingManager based on the 'referencePoint' prop
|
|
185
184
|
*/
|
|
186
185
|
React.useEffect(() => {
|
|
187
|
-
if (inkingManager &&
|
|
188
|
-
inkingManager.referencePoint = props
|
|
186
|
+
if (inkingManager && props?.referencePoint !== undefined) {
|
|
187
|
+
inkingManager.referencePoint = props?.referencePoint;
|
|
189
188
|
}
|
|
190
|
-
}, [props
|
|
189
|
+
}, [props?.referencePoint, inkingManager]);
|
|
191
190
|
/**
|
|
192
191
|
* Sets the lineBrush of the inkingManager based on the 'lineBrush' prop
|
|
193
192
|
*/
|
|
194
193
|
React.useEffect(() => {
|
|
195
|
-
if (inkingManager &&
|
|
194
|
+
if (inkingManager && props?.lineBrush) {
|
|
196
195
|
inkingManager.lineBrush = {
|
|
197
196
|
color: props.lineBrush.color,
|
|
198
197
|
tip: props.lineBrush.tip,
|
|
@@ -202,31 +201,31 @@ export function useLiveCanvas(uniqueKey, canvasElementRef, props) {
|
|
|
202
201
|
};
|
|
203
202
|
}
|
|
204
203
|
}, [
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
204
|
+
props?.lineBrush?.color,
|
|
205
|
+
props?.lineBrush?.tip,
|
|
206
|
+
props?.lineBrush?.tipSize,
|
|
207
|
+
props?.lineBrush?.type,
|
|
208
|
+
props?.lineBrush?.endArrow,
|
|
210
209
|
inkingManager,
|
|
211
210
|
]);
|
|
212
211
|
/**
|
|
213
212
|
* Sets the isCursorShared of the liveCanvas based on the 'isCursorShared' prop
|
|
214
213
|
*/
|
|
215
214
|
React.useEffect(() => {
|
|
216
|
-
if (liveCanvas &&
|
|
215
|
+
if (liveCanvas && props?.isCursorShared !== undefined) {
|
|
217
216
|
liveCanvas.isCursorShared = props.isCursorShared;
|
|
218
217
|
}
|
|
219
|
-
}, [props
|
|
218
|
+
}, [props?.isCursorShared, liveCanvas]);
|
|
220
219
|
/**
|
|
221
220
|
* Sets the onGetLocalUserInfo method of the liveCanvas based on the 'localUserCursor' prop
|
|
222
221
|
*/
|
|
223
222
|
React.useEffect(() => {
|
|
224
|
-
if (liveCanvas &&
|
|
223
|
+
if (liveCanvas && props?.localUserPictureUrl) {
|
|
225
224
|
liveCanvas.onGetLocalUserPictureUrl = () => {
|
|
226
225
|
return props.localUserPictureUrl;
|
|
227
226
|
};
|
|
228
227
|
}
|
|
229
|
-
}, [props
|
|
228
|
+
}, [props?.localUserPictureUrl, liveCanvas]);
|
|
230
229
|
/**
|
|
231
230
|
* Return hook response
|
|
232
231
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveCanvas.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveCanvas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,MAAM,UAAU,aAAa,CACzB,SAAiB,EACjB,gBAA8D,EAC9D,KAAmC
|
|
1
|
+
{"version":3,"file":"useLiveCanvas.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveCanvas.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
5
|
import { LiveEventEvents, LiveEvent, LiveDataObjectInitializeState, } from "@microsoft/live-share";
|
|
15
6
|
import React from "react";
|
|
16
7
|
import { useDynamicDDS } from "../shared-hooks/index.js";
|
|
@@ -85,7 +76,7 @@ export function useLiveEvent(uniqueKey, allowedRoles, onReceivedEvent) {
|
|
|
85
76
|
/**
|
|
86
77
|
* User facing: callback to send event through `LiveEvent`
|
|
87
78
|
*/
|
|
88
|
-
const sendEvent = React.useCallback((event, targetClientId) =>
|
|
79
|
+
const sendEvent = React.useCallback(async (event, targetClientId) => {
|
|
89
80
|
if (!container) {
|
|
90
81
|
throw new ActionContainerNotJoinedError("liveEvent", "sendEvent");
|
|
91
82
|
}
|
|
@@ -95,19 +86,19 @@ export function useLiveEvent(uniqueKey, allowedRoles, onReceivedEvent) {
|
|
|
95
86
|
if (!liveEvent.isInitialized) {
|
|
96
87
|
throw new ActionLiveDataObjectInitializedError("liveEvent", "sendEvent");
|
|
97
88
|
}
|
|
98
|
-
return
|
|
99
|
-
}
|
|
89
|
+
return await liveEvent.send(event, targetClientId);
|
|
90
|
+
}, [container, liveEvent]);
|
|
100
91
|
/**
|
|
101
92
|
* Setup change listeners and start `LiveEvent` if needed
|
|
102
93
|
*/
|
|
103
94
|
React.useEffect(() => {
|
|
104
|
-
if (
|
|
95
|
+
if (liveEvent?.isInitialized === undefined)
|
|
105
96
|
return;
|
|
106
97
|
// Register event listener
|
|
107
98
|
const onEventReceived = (event, local, clientId, timestamp) => {
|
|
108
99
|
// If developer passed the optional onReceivedEvent callback, we
|
|
109
100
|
// call it.
|
|
110
|
-
onReceivedEvent
|
|
101
|
+
onReceivedEvent?.(event, local);
|
|
111
102
|
// Set the received event to our local state
|
|
112
103
|
const received = {
|
|
113
104
|
value: event,
|
|
@@ -131,7 +122,7 @@ export function useLiveEvent(uniqueKey, allowedRoles, onReceivedEvent) {
|
|
|
131
122
|
}
|
|
132
123
|
return () => {
|
|
133
124
|
// on unmount, remove event listeners
|
|
134
|
-
liveEvent
|
|
125
|
+
liveEvent?.off(LiveEventEvents.received, onEventReceived);
|
|
135
126
|
};
|
|
136
127
|
}, [liveEvent]);
|
|
137
128
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveEvent.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"useLiveEvent.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
5
|
import { LiveDataObjectInitializeState, LiveFollowMode, } from "@microsoft/live-share";
|
|
15
6
|
import React from "react";
|
|
16
7
|
import { useDynamicDDS } from "../shared-hooks/index.js";
|
|
@@ -200,7 +191,7 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
200
191
|
/**
|
|
201
192
|
* User facing: callback to update the local user's custom data for their follow state.
|
|
202
193
|
*/
|
|
203
|
-
const update = React.useCallback((stateValue) =>
|
|
194
|
+
const update = React.useCallback(async (stateValue) => {
|
|
204
195
|
if (!container) {
|
|
205
196
|
throw new ActionContainerNotJoinedError("liveFollowMode", "update");
|
|
206
197
|
}
|
|
@@ -210,12 +201,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
210
201
|
if (!liveFollowMode.isInitialized) {
|
|
211
202
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "update");
|
|
212
203
|
}
|
|
213
|
-
return
|
|
214
|
-
}
|
|
204
|
+
return await liveFollowMode.update(stateValue);
|
|
205
|
+
}, [container, liveFollowMode]);
|
|
215
206
|
/**
|
|
216
207
|
* User facing: callback to start presenting.
|
|
217
208
|
*/
|
|
218
|
-
const startPresenting = React.useCallback(() =>
|
|
209
|
+
const startPresenting = React.useCallback(async () => {
|
|
219
210
|
if (!container) {
|
|
220
211
|
throw new ActionContainerNotJoinedError("liveFollowMode", "startPresenting");
|
|
221
212
|
}
|
|
@@ -225,12 +216,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
225
216
|
if (!liveFollowMode.isInitialized) {
|
|
226
217
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "startPresenting");
|
|
227
218
|
}
|
|
228
|
-
return
|
|
229
|
-
}
|
|
219
|
+
return await liveFollowMode.startPresenting();
|
|
220
|
+
}, [container, liveFollowMode]);
|
|
230
221
|
/**
|
|
231
222
|
* User facing: callback to stop presenting.
|
|
232
223
|
*/
|
|
233
|
-
const stopPresenting = React.useCallback(() =>
|
|
224
|
+
const stopPresenting = React.useCallback(async () => {
|
|
234
225
|
if (!container) {
|
|
235
226
|
throw new ActionContainerNotJoinedError("liveFollowMode", "stopPresenting");
|
|
236
227
|
}
|
|
@@ -240,12 +231,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
240
231
|
if (!liveFollowMode.isInitialized) {
|
|
241
232
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "stopPresenting");
|
|
242
233
|
}
|
|
243
|
-
return
|
|
244
|
-
}
|
|
234
|
+
return await liveFollowMode.stopPresenting();
|
|
235
|
+
}, [container, liveFollowMode]);
|
|
245
236
|
/**
|
|
246
237
|
* User facing: callback to suspend sync.
|
|
247
238
|
*/
|
|
248
|
-
const beginSuspension = React.useCallback(() =>
|
|
239
|
+
const beginSuspension = React.useCallback(async () => {
|
|
249
240
|
if (!container) {
|
|
250
241
|
throw new ActionContainerNotJoinedError("liveFollowMode", "syncToPresenter");
|
|
251
242
|
}
|
|
@@ -255,12 +246,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
255
246
|
if (!liveFollowMode.isInitialized) {
|
|
256
247
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "syncToPresenter");
|
|
257
248
|
}
|
|
258
|
-
return
|
|
259
|
-
}
|
|
249
|
+
return await liveFollowMode.beginSuspension();
|
|
250
|
+
}, [container, liveFollowMode]);
|
|
260
251
|
/**
|
|
261
252
|
* User facing: callback to end current suspension.
|
|
262
253
|
*/
|
|
263
|
-
const endSuspension = React.useCallback(() =>
|
|
254
|
+
const endSuspension = React.useCallback(async () => {
|
|
264
255
|
if (!container) {
|
|
265
256
|
throw new ActionContainerNotJoinedError("liveFollowMode", "syncToPresenter");
|
|
266
257
|
}
|
|
@@ -270,12 +261,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
270
261
|
if (!liveFollowMode.isInitialized) {
|
|
271
262
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "syncToPresenter");
|
|
272
263
|
}
|
|
273
|
-
return
|
|
274
|
-
}
|
|
264
|
+
return await liveFollowMode.endSuspension();
|
|
265
|
+
}, [container, liveFollowMode]);
|
|
275
266
|
/**
|
|
276
267
|
* User facing: callback to follow a specific user.
|
|
277
268
|
*/
|
|
278
|
-
const followUser = React.useCallback((userId) =>
|
|
269
|
+
const followUser = React.useCallback(async (userId) => {
|
|
279
270
|
if (!container) {
|
|
280
271
|
throw new ActionContainerNotJoinedError("liveFollowMode", "followUser");
|
|
281
272
|
}
|
|
@@ -285,12 +276,12 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
285
276
|
if (!liveFollowMode.isInitialized) {
|
|
286
277
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "followUser");
|
|
287
278
|
}
|
|
288
|
-
return
|
|
289
|
-
}
|
|
279
|
+
return await liveFollowMode.followUser(userId);
|
|
280
|
+
}, [container, liveFollowMode]);
|
|
290
281
|
/**
|
|
291
282
|
* User facing: callback to stop following a user.
|
|
292
283
|
*/
|
|
293
|
-
const stopFollowing = React.useCallback(() =>
|
|
284
|
+
const stopFollowing = React.useCallback(async () => {
|
|
294
285
|
if (!container) {
|
|
295
286
|
throw new ActionContainerNotJoinedError("liveFollowMode", "stopFollowing");
|
|
296
287
|
}
|
|
@@ -300,8 +291,8 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
300
291
|
if (!liveFollowMode.isInitialized) {
|
|
301
292
|
throw new ActionLiveDataObjectInitializedError("liveFollowMode", "stopFollowing");
|
|
302
293
|
}
|
|
303
|
-
return
|
|
304
|
-
}
|
|
294
|
+
return await liveFollowMode.stopFollowing();
|
|
295
|
+
}, [container, liveFollowMode]);
|
|
305
296
|
/**
|
|
306
297
|
* Setup change listeners and start `LiveFollowMode` if needed
|
|
307
298
|
*/
|
|
@@ -310,14 +301,14 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
310
301
|
return;
|
|
311
302
|
const onPresenceChanged = () => {
|
|
312
303
|
const updatedLocalUsers = [];
|
|
313
|
-
liveFollowMode
|
|
304
|
+
liveFollowMode?.getUsers().forEach((user) => {
|
|
314
305
|
updatedLocalUsers.push(user);
|
|
315
306
|
});
|
|
316
307
|
setAllUsers(updatedLocalUsers);
|
|
317
308
|
};
|
|
318
309
|
liveFollowMode.on("presenceChanged", onPresenceChanged);
|
|
319
310
|
const onStateChanged = () => {
|
|
320
|
-
setState(liveFollowMode
|
|
311
|
+
setState(liveFollowMode?.state);
|
|
321
312
|
};
|
|
322
313
|
liveFollowMode.on("stateChanged", onStateChanged);
|
|
323
314
|
if (liveFollowMode.initializeState ===
|
|
@@ -329,8 +320,8 @@ export function useLiveFollowMode(uniqueKey, initialData, allowedRoles) {
|
|
|
329
320
|
onPresenceChanged();
|
|
330
321
|
onStateChanged();
|
|
331
322
|
return () => {
|
|
332
|
-
liveFollowMode
|
|
333
|
-
liveFollowMode
|
|
323
|
+
liveFollowMode?.off("presenceChanged", onPresenceChanged);
|
|
324
|
+
liveFollowMode?.off("stateChanged", onStateChanged);
|
|
334
325
|
};
|
|
335
326
|
}, [liveFollowMode]);
|
|
336
327
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveFollowMode.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveFollowMode.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"useLiveFollowMode.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveFollowMode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGH,6BAA6B,EAC7B,cAAc,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACH,6BAA6B,EAC7B,oCAAoC,EACpC,kCAAkC,GACrC,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0JG;AACH,MAAM,UAAU,iBAAiB,CAC7B,SAAiB,EACjB,WAAkC,EAClC,YAAgC;IAEhC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,EAA2B,CAAC;IACpE;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAE5C,EAAE,CAAC,CAAC;IACN;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,aAAa,CACzC,SAAS,EACT,CAAA,cAAqB,CAAA,CACxB,CAAC;IAEF;;OAEG;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf;;OAEG;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE/C;;OAEG;IACH,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC5B,KAAK,EAAE,UAAiB,EAAE,EAAE;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,QAAQ,CACX,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,QAAQ,CACX,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,QAAQ,CACX,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,SAAS,EAAE,cAAc,CAAC,CAC9B,CAAC;IAEF;;OAEG;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,gBAAgB,CACnB,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,gBAAgB,CACnB,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,gBAAgB,CACnB,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,eAAe,EAAE,CAAC;IAClD,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,iBAAiB,CACpB,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAChC,KAAK,EAAE,MAAc,EAAE,EAAE;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,YAAY,CACf,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,YAAY,CACf,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,YAAY,CACf,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,SAAS,EAAE,cAAc,CAAC,CAC9B,CAAC;IAEF;;OAEG;IACH,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,gBAAgB,EAChB,eAAe,CAClB,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,kCAAkC,CACxC,gBAAgB,EAChB,eAAe,CAClB,CAAC;QACN,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,IAAI,oCAAoC,CAC1C,gBAAgB,EAChB,eAAe,CAClB,CAAC;QACN,CAAC;QACD,OAAO,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO;QAEzC,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC3B,MAAM,iBAAiB,GAEjB,EAAE,CAAC;YACT,cAAc,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAElD,IACI,cAAc,CAAC,eAAe;YAC9B,6BAA6B,CAAC,MAAM,EACtC,CAAC;YACC,cAAc,CAAC,UAAU,CACrB,qBAAqB,CAAQ,WAAW,CAAC;gBACrC,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,WAAW,EACjB,YAAY,CACf,CAAC;QACN,CAAC;QACD,iBAAiB,EAAE,CAAC;QACpB,cAAc,EAAE,CAAC;QAEjB,OAAO,GAAG,EAAE;YACR,cAAc,EAAE,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;YAC1D,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO;QACH,KAAK;QACL,SAAS;QACT,UAAU;QACV,QAAQ;QACR,cAAc;QACd,MAAM;QACN,eAAe;QACf,cAAc;QACd,eAAe;QACf,aAAa;QACb,UAAU;QACV,aAAa;KAChB,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAQ,KAAU;IAC5C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACvC,CAAC"}
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
5
|
import { LivePresence, LiveDataObjectInitializeState, PresenceStatus, } from "@microsoft/live-share";
|
|
15
6
|
import React from "react";
|
|
16
7
|
import { useDynamicDDS } from "../shared-hooks/index.js";
|
|
@@ -112,7 +103,7 @@ export function useLivePresence(uniqueKey, initialData, allowedRoles) {
|
|
|
112
103
|
/**
|
|
113
104
|
* User facing: callback to update the local user's presence.
|
|
114
105
|
*/
|
|
115
|
-
const updatePresence = React.useCallback((data) =>
|
|
106
|
+
const updatePresence = React.useCallback(async (data) => {
|
|
116
107
|
if (!container) {
|
|
117
108
|
throw new ActionContainerNotJoinedError("livePresence", "updatePresence");
|
|
118
109
|
}
|
|
@@ -122,8 +113,8 @@ export function useLivePresence(uniqueKey, initialData, allowedRoles) {
|
|
|
122
113
|
if (!livePresence.isInitialized) {
|
|
123
114
|
throw new ActionLiveDataObjectInitializedError("livePresence", "updatePresence");
|
|
124
115
|
}
|
|
125
|
-
return
|
|
126
|
-
}
|
|
116
|
+
return await livePresence.update(data);
|
|
117
|
+
}, [container, livePresence]);
|
|
127
118
|
/**
|
|
128
119
|
* Setup change listeners and start `LivePresence` if needed
|
|
129
120
|
*/
|
|
@@ -132,7 +123,7 @@ export function useLivePresence(uniqueKey, initialData, allowedRoles) {
|
|
|
132
123
|
return;
|
|
133
124
|
const onPresenceChanged = () => {
|
|
134
125
|
const updatedLocalUsers = [];
|
|
135
|
-
livePresence
|
|
126
|
+
livePresence?.getUsers().forEach((user) => {
|
|
136
127
|
updatedLocalUsers.push(user);
|
|
137
128
|
});
|
|
138
129
|
setAllUsers(updatedLocalUsers);
|
|
@@ -146,7 +137,7 @@ export function useLivePresence(uniqueKey, initialData, allowedRoles) {
|
|
|
146
137
|
}
|
|
147
138
|
onPresenceChanged();
|
|
148
139
|
return () => {
|
|
149
|
-
livePresence
|
|
140
|
+
livePresence?.off("presenceChanged", onPresenceChanged);
|
|
150
141
|
};
|
|
151
142
|
}, [livePresence]);
|
|
152
143
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLivePresence.js","sourceRoot":"","sources":["../../../src/live-hooks/useLivePresence.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"useLivePresence.js","sourceRoot":"","sources":["../../../src/live-hooks/useLivePresence.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
5
|
import { LiveDataObjectInitializeState, LiveState, } from "@microsoft/live-share";
|
|
15
6
|
import React from "react";
|
|
16
7
|
import { useDynamicDDS } from "../shared-hooks/index.js";
|
|
@@ -86,7 +77,7 @@ export function useLiveState(uniqueKey, initialState, allowedRoles) {
|
|
|
86
77
|
* @param state TState to set
|
|
87
78
|
* @returns void promise, which will throw if the user does not have the required roles
|
|
88
79
|
*/
|
|
89
|
-
const setState = React.useCallback((state) =>
|
|
80
|
+
const setState = React.useCallback(async (state) => {
|
|
90
81
|
if (!container) {
|
|
91
82
|
throw new ActionContainerNotJoinedError("liveState", "setState");
|
|
92
83
|
}
|
|
@@ -99,8 +90,8 @@ export function useLiveState(uniqueKey, initialState, allowedRoles) {
|
|
|
99
90
|
const valueToSet = isPrevStateCallback(state)
|
|
100
91
|
? state(liveState.state)
|
|
101
92
|
: state;
|
|
102
|
-
return
|
|
103
|
-
}
|
|
93
|
+
return await liveState.set(valueToSet);
|
|
94
|
+
}, [container, liveState]);
|
|
104
95
|
/**
|
|
105
96
|
* Setup change listeners and start `LiveState` if needed
|
|
106
97
|
*/
|
|
@@ -120,7 +111,7 @@ export function useLiveState(uniqueKey, initialState, allowedRoles) {
|
|
|
120
111
|
onStateChanged(liveState.state);
|
|
121
112
|
}
|
|
122
113
|
return () => {
|
|
123
|
-
liveState
|
|
114
|
+
liveState?.off("stateChanged", onStateChanged);
|
|
124
115
|
};
|
|
125
116
|
}, [liveState]);
|
|
126
117
|
return [currentState, setState, liveState];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveState.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveState.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"useLiveState.js","sourceRoot":"","sources":["../../../src/live-hooks/useLiveState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,6BAA6B,EAC7B,SAAS,GAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACH,6BAA6B,EAC7B,oCAAoC,EACpC,kCAAkC,EAClC,mBAAmB,GACtB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,YAAY,CACxB,SAAiB,EACjB,YAAoB,EACpB,YAAgC;IAEhC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GACjC,KAAK,CAAC,QAAQ,CAAS,YAAY,CAAC,CAAC;IACzC;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,aAAa,CACpC,SAAS,EACT,CAAA,SAAiB,CAAA,CACpB,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAC9B,KAAK,EAAE,KAA+C,EAAE,EAAE;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,6BAA6B,CACnC,WAAW,EACX,UAAU,CACb,CAAC;QACN,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,kCAAkC,CACxC,WAAW,EACX,UAAU,CACb,CAAC;QACN,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,oCAAoC,CAC1C,WAAW,EACX,UAAU,CACb,CAAC;QACN,CAAC;QACD,MAAM,UAAU,GAAG,mBAAmB,CAAS,KAAK,CAAC;YACjD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;YACxB,CAAC,CAAC,KAAK,CAAC;QACZ,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,EACD,CAAC,SAAS,EAAE,SAAS,CAAC,CACzB,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;YACrC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC7C,IACI,SAAS,CAAC,eAAe,KAAK,6BAA6B,CAAC,MAAM,EACpE,CAAC;YACC,SAAS;iBACJ,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC;iBACtC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,GAAG,EAAE;YACR,SAAS,EAAE,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC"}
|