@microsoft/live-share-react 1.2.0-preview.0 → 1.2.1-preview.0

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.
@@ -17,7 +17,8 @@ import { IUseMediaSynchronizerResults } from "../types";
17
17
  * @param initialTrack initial track to load. Either ExtendedMediaMetadata, trackId string, or null.
18
18
  * @param allowedRoles Optional. Array of user roles that are eligible to modify group playback state.
19
19
  * @param viewOnly Optional. Flag for whether or not the media synchronizer should be in viewOnly mode.
20
+ * @param canSendPositionUpdates Optional. Controls whether or not the local client is allowed to send position updates to the group.
20
21
  * @returns IUseMediaSynchronizerResults object.
21
22
  */
22
- export declare function useMediaSynchronizer(uniqueKey: string, mediaPlayerElement: React.RefObject<IMediaPlayer> | IMediaPlayer | string | null, initialTrack: Partial<ExtendedMediaMetadata> | string | null, allowedRoles?: UserMeetingRole[], viewOnly?: boolean): IUseMediaSynchronizerResults;
23
+ export declare function useMediaSynchronizer(uniqueKey: string, mediaPlayerElement: React.RefObject<IMediaPlayer> | IMediaPlayer | string | null, initialTrack: Partial<ExtendedMediaMetadata> | string | null, allowedRoles?: UserMeetingRole[], viewOnly?: boolean, canSendPositionUpdates?: boolean): IUseMediaSynchronizerResults;
23
24
  //# sourceMappingURL=useMediaSynchronizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaSynchronizer.d.ts","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEH,eAAe,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEH,qBAAqB,EACrB,YAAY,EAIf,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAOxD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,kBAAkB,EACZ,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,GAC7B,YAAY,GACZ,MAAM,GACN,IAAI,EACV,YAAY,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,MAAM,GAAG,IAAI,EAC5D,YAAY,CAAC,EAAE,eAAe,EAAE,EAChC,QAAQ,CAAC,EAAE,OAAO,GACnB,4BAA4B,CA8N9B"}
1
+ {"version":3,"file":"useMediaSynchronizer.d.ts","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEH,eAAe,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEH,qBAAqB,EACrB,YAAY,EAIf,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAOxD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,kBAAkB,EACZ,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,GAC7B,YAAY,GACZ,MAAM,GACN,IAAI,EACV,YAAY,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,MAAM,GAAG,IAAI,EAC5D,YAAY,CAAC,EAAE,eAAe,EAAE,EAChC,QAAQ,CAAC,EAAE,OAAO,EAClB,sBAAsB,CAAC,EAAE,OAAO,GACjC,4BAA4B,CAiP9B"}
@@ -29,9 +29,10 @@ import { ActionContainerNotJoinedError, ActionLiveDataObjectUndefinedError, } fr
29
29
  * @param initialTrack initial track to load. Either ExtendedMediaMetadata, trackId string, or null.
30
30
  * @param allowedRoles Optional. Array of user roles that are eligible to modify group playback state.
31
31
  * @param viewOnly Optional. Flag for whether or not the media synchronizer should be in viewOnly mode.
32
+ * @param canSendPositionUpdates Optional. Controls whether or not the local client is allowed to send position updates to the group.
32
33
  * @returns IUseMediaSynchronizerResults object.
33
34
  */
34
- export function useMediaSynchronizer(uniqueKey, mediaPlayerElement, initialTrack, allowedRoles, viewOnly) {
35
+ export function useMediaSynchronizer(uniqueKey, mediaPlayerElement, initialTrack, allowedRoles, viewOnly, canSendPositionUpdates) {
35
36
  /**
36
37
  * User facing media synchronizer and non-user facing setter
37
38
  */
@@ -152,6 +153,10 @@ export function useMediaSynchronizer(uniqueKey, mediaPlayerElement, initialTrack
152
153
  // Set synchronizer to view only mode provided by developer
153
154
  synchronizer.viewOnly = viewOnly;
154
155
  }
156
+ if (canSendPositionUpdates !== undefined) {
157
+ synchronizer.mediaSession.coordinator.canSendPositionUpdates =
158
+ canSendPositionUpdates;
159
+ }
155
160
  if (mediaSession.initializeState ===
156
161
  LiveDataObjectInitializeState.needed) {
157
162
  // Start synchronizing the media session
@@ -189,12 +194,31 @@ export function useMediaSynchronizer(uniqueKey, mediaPlayerElement, initialTrack
189
194
  * Change view in media synchronizer only if prop changes
190
195
  */
191
196
  React.useEffect(() => {
192
- if ((mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly) !== undefined &&
193
- viewOnly !== undefined &&
194
- mediaSynchronizer.viewOnly !== viewOnly) {
195
- mediaSynchronizer.viewOnly = !!viewOnly;
196
- }
197
+ if (!mediaSynchronizer)
198
+ return;
199
+ if (viewOnly === undefined)
200
+ return;
201
+ if (mediaSynchronizer.viewOnly === viewOnly)
202
+ return;
203
+ mediaSynchronizer.viewOnly = viewOnly;
197
204
  }, [viewOnly, mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.viewOnly]);
205
+ /**
206
+ * Change canSendPositionUpdates when prop changes
207
+ */
208
+ React.useEffect(() => {
209
+ if (!mediaSynchronizer)
210
+ return;
211
+ if (canSendPositionUpdates === undefined)
212
+ return;
213
+ if (mediaSynchronizer.mediaSession.coordinator
214
+ .canSendPositionUpdates === canSendPositionUpdates)
215
+ return;
216
+ mediaSynchronizer.mediaSession.coordinator.canSendPositionUpdates =
217
+ canSendPositionUpdates;
218
+ }, [
219
+ canSendPositionUpdates,
220
+ mediaSynchronizer === null || mediaSynchronizer === void 0 ? void 0 : mediaSynchronizer.mediaSession.coordinator.canSendPositionUpdates,
221
+ ]);
198
222
  return {
199
223
  suspended: !!suspension,
200
224
  mediaSynchronizer,
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaSynchronizer.js","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMediaSynchronizer.js","sourceRoot":"","sources":["../../src/live-hooks/useMediaSynchronizer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/live-share-react",
3
- "version": "1.2.0-preview.0",
3
+ "version": "1.2.1-preview.0",
4
4
  "description": "Build collaborative React apps using Microsoft's Fluid & Live Share frameworks with ease.",
5
5
  "author": "Microsoft",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -12,7 +12,7 @@
12
12
  "typecheck": "tsc"
13
13
  },
14
14
  "dependencies": {
15
- "@microsoft/live-share-turbo": "1.2.0-preview.0",
15
+ "@microsoft/live-share-turbo": "1.2.1-preview.0",
16
16
  "url": "^0.11.0",
17
17
  "uuid": "^9.0.0"
18
18
  },
@@ -20,9 +20,9 @@
20
20
  "@babel/core": "^7.21.8",
21
21
  "@fluidframework/azure-client": "^1.1.1",
22
22
  "@fluidframework/test-client-utils": "^1.3.6",
23
- "@microsoft/live-share": "1.2.0",
24
- "@microsoft/live-share-canvas": "1.2.0",
25
- "@microsoft/live-share-media": "1.2.0",
23
+ "@microsoft/live-share": "1.2.1",
24
+ "@microsoft/live-share-canvas": "1.2.1",
25
+ "@microsoft/live-share-media": "1.2.1",
26
26
  "@types/react": "^18.0.0",
27
27
  "@types/react-dom": "^18.0.0",
28
28
  "@types/uuid": "^9.0.1",
@@ -32,9 +32,9 @@
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@fluidframework/azure-client": "^1.0.0",
35
- "@microsoft/live-share": "1.2.0",
36
- "@microsoft/live-share-canvas": "1.2.0",
37
- "@microsoft/live-share-media": "1.2.0",
35
+ "@microsoft/live-share": "1.2.1",
36
+ "@microsoft/live-share-canvas": "1.2.1",
37
+ "@microsoft/live-share-media": "1.2.1",
38
38
  "fluid-framework": "^1.2.3",
39
39
  "react": "^16.8.0 || ^17 || ^18",
40
40
  "react-dom": "^16.8.0 || ^17 || ^18"
@@ -36,6 +36,7 @@ import {
36
36
  * @param initialTrack initial track to load. Either ExtendedMediaMetadata, trackId string, or null.
37
37
  * @param allowedRoles Optional. Array of user roles that are eligible to modify group playback state.
38
38
  * @param viewOnly Optional. Flag for whether or not the media synchronizer should be in viewOnly mode.
39
+ * @param canSendPositionUpdates Optional. Controls whether or not the local client is allowed to send position updates to the group.
39
40
  * @returns IUseMediaSynchronizerResults object.
40
41
  */
41
42
  export function useMediaSynchronizer(
@@ -47,7 +48,8 @@ export function useMediaSynchronizer(
47
48
  | null,
48
49
  initialTrack: Partial<ExtendedMediaMetadata> | string | null,
49
50
  allowedRoles?: UserMeetingRole[],
50
- viewOnly?: boolean
51
+ viewOnly?: boolean,
52
+ canSendPositionUpdates?: boolean
51
53
  ): IUseMediaSynchronizerResults {
52
54
  /**
53
55
  * User facing media synchronizer and non-user facing setter
@@ -213,6 +215,10 @@ export function useMediaSynchronizer(
213
215
  // Set synchronizer to view only mode provided by developer
214
216
  synchronizer.viewOnly = viewOnly;
215
217
  }
218
+ if (canSendPositionUpdates !== undefined) {
219
+ synchronizer.mediaSession.coordinator.canSendPositionUpdates =
220
+ canSendPositionUpdates;
221
+ }
216
222
 
217
223
  if (
218
224
  mediaSession.initializeState ===
@@ -251,15 +257,30 @@ export function useMediaSynchronizer(
251
257
  * Change view in media synchronizer only if prop changes
252
258
  */
253
259
  React.useEffect(() => {
254
- if (
255
- mediaSynchronizer?.viewOnly !== undefined &&
256
- viewOnly !== undefined &&
257
- mediaSynchronizer.viewOnly !== viewOnly
258
- ) {
259
- mediaSynchronizer.viewOnly = !!viewOnly;
260
- }
260
+ if (!mediaSynchronizer) return;
261
+ if (viewOnly === undefined) return;
262
+ if (mediaSynchronizer.viewOnly === viewOnly) return;
263
+ mediaSynchronizer.viewOnly = viewOnly;
261
264
  }, [viewOnly, mediaSynchronizer?.viewOnly]);
262
265
 
266
+ /**
267
+ * Change canSendPositionUpdates when prop changes
268
+ */
269
+ React.useEffect(() => {
270
+ if (!mediaSynchronizer) return;
271
+ if (canSendPositionUpdates === undefined) return;
272
+ if (
273
+ mediaSynchronizer.mediaSession.coordinator
274
+ .canSendPositionUpdates === canSendPositionUpdates
275
+ )
276
+ return;
277
+ mediaSynchronizer.mediaSession.coordinator.canSendPositionUpdates =
278
+ canSendPositionUpdates;
279
+ }, [
280
+ canSendPositionUpdates,
281
+ mediaSynchronizer?.mediaSession.coordinator.canSendPositionUpdates,
282
+ ]);
283
+
263
284
  return {
264
285
  suspended: !!suspension,
265
286
  mediaSynchronizer,