@azure/communication-react 1.19.0-alpha-202409050015 → 1.19.0-alpha-202409060015

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BmKCaFkS.js');
3
+ var index = require('./index-CKU6pfS7.js');
4
4
  require('react');
5
5
  require('@fluentui/react');
6
6
  require('@fluentui/react-components');
@@ -2,5 +2,5 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT License.
4
4
  // GENERATED FILE. DO NOT EDIT MANUALLY.
5
- module.exports = '1.19.0-alpha-202409050015';
5
+ module.exports = '1.19.0-alpha-202409060015';
6
6
  //# sourceMappingURL=telemetryVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.19.0-alpha-202409050015';\n"]}
1
+ {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.19.0-alpha-202409060015';\n"]}
@@ -28,7 +28,7 @@ export class BreakoutRoomsSubscriber {
28
28
  }
29
29
  };
30
30
  this.onAssignedBreakoutRoomUpdated = (breakoutRoom) => {
31
- var _a, _b, _c;
31
+ var _a, _b, _c, _d, _e;
32
32
  const callState = this._context.getState().calls[this._callIdRef.callId];
33
33
  const currentAssignedBreakoutRoom = (_a = callState === null || callState === void 0 ? void 0 : callState.breakoutRooms) === null || _a === void 0 ? void 0 : _a.assignedBreakoutRoom;
34
34
  // This call won't exist in the calls array in state if this call is a breakout room that was re-assigned.
@@ -37,12 +37,18 @@ export class BreakoutRoomsSubscriber {
37
37
  return;
38
38
  }
39
39
  if (!breakoutRoom) {
40
+ // This scenario covers the case where the user is unassigned from a breakout room.
41
+ if ((_b = currentAssignedBreakoutRoom === null || currentAssignedBreakoutRoom === void 0 ? void 0 : currentAssignedBreakoutRoom.call) === null || _b === void 0 ? void 0 : _b.id) {
42
+ this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomJoined');
43
+ this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomClosingSoon');
44
+ clearTimeout(this._breakoutRoomClosingSoonTimeoutId);
45
+ }
40
46
  this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);
41
47
  return;
42
48
  }
43
49
  if (breakoutRoom.state === 'open' &&
44
50
  (currentAssignedBreakoutRoom === null || currentAssignedBreakoutRoom === void 0 ? void 0 : currentAssignedBreakoutRoom.state) === 'open' &&
45
- ((_b = currentAssignedBreakoutRoom === null || currentAssignedBreakoutRoom === void 0 ? void 0 : currentAssignedBreakoutRoom.call) === null || _b === void 0 ? void 0 : _b.id) !== ((_c = breakoutRoom.call) === null || _c === void 0 ? void 0 : _c.id)) {
51
+ ((_c = currentAssignedBreakoutRoom === null || currentAssignedBreakoutRoom === void 0 ? void 0 : currentAssignedBreakoutRoom.call) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = breakoutRoom.call) === null || _d === void 0 ? void 0 : _d.id)) {
46
52
  if (!this._context.getState().latestNotifications['assignedBreakoutRoomOpened'] &&
47
53
  !this._context.getState().latestNotifications['assignedBreakoutRoomOpenedPromptJoin']) {
48
54
  this._context.setLatestNotification(this._callIdRef.callId, {
@@ -65,6 +71,12 @@ export class BreakoutRoomsSubscriber {
65
71
  this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');
66
72
  this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomChanged');
67
73
  }
74
+ else if (breakoutRoom.state === 'closed' && ((_e = currentAssignedBreakoutRoom === null || currentAssignedBreakoutRoom === void 0 ? void 0 : currentAssignedBreakoutRoom.call) === null || _e === void 0 ? void 0 : _e.id)) {
75
+ // This scenario covers the case where the breakout room is changed to a closed breakout room.
76
+ this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomJoined');
77
+ this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomClosingSoon');
78
+ clearTimeout(this._breakoutRoomClosingSoonTimeoutId);
79
+ }
68
80
  this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);
69
81
  };
70
82
  this.onBreakoutRoomsJoined = (call) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BreakoutRoomsSubscriber.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/BreakoutRoomsSubscriber.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(breakout-rooms) */\nimport {\n BreakoutRoom,\n BreakoutRoomsCallFeature,\n BreakoutRoomsEventData,\n BreakoutRoomsSettings,\n Call,\n TeamsCall\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CallContext } from './CallContext';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CallIdRef } from './CallIdRef';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { NotificationTarget } from './CallClientState';\n\n/* @conditional-compile-remove(breakout-rooms) */\nconst MILLSECONDS_BEFORE_END_TIME_TO_SHOW_CLOSING_NOTIFICATION = 30000;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport class BreakoutRoomsSubscriber {\n private _callIdRef: CallIdRef;\n private _context: CallContext;\n private _breakoutRoomsFeature: BreakoutRoomsCallFeature;\n private _breakoutRoomClosingSoonTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n constructor(callIdRef: CallIdRef, context: CallContext, breakoutRoomsFeature: BreakoutRoomsCallFeature) {\n this._callIdRef = callIdRef;\n this._context = context;\n this._breakoutRoomsFeature = breakoutRoomsFeature;\n\n this.subscribe();\n }\n\n public unsubscribe = (): void => {\n this._breakoutRoomsFeature.off('breakoutRoomsUpdated', this.onBreakoutRoomsUpdated);\n // Clear breakout room joined notification for this call.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'breakoutRoomJoined');\n // Clear breakout room closing soon notification for this call.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'breakoutRoomClosingSoon');\n clearTimeout(this._breakoutRoomClosingSoonTimeoutId);\n };\n\n private subscribe(): void {\n this._breakoutRoomsFeature.on('breakoutRoomsUpdated', this.onBreakoutRoomsUpdated);\n }\n\n private onBreakoutRoomsUpdated = (eventData: BreakoutRoomsEventData): void => {\n if (eventData.type === 'assignedBreakoutRooms') {\n this.onAssignedBreakoutRoomUpdated(eventData.data);\n } else if (eventData.type === 'join') {\n this.onBreakoutRoomsJoined(eventData.data);\n } else if (eventData.type === 'breakoutRoomsSettings' && eventData.data) {\n this.onBreakoutRoomSettingsUpdated(eventData.data);\n }\n };\n\n private onAssignedBreakoutRoomUpdated = (breakoutRoom?: BreakoutRoom): void => {\n const callState = this._context.getState().calls[this._callIdRef.callId];\n const currentAssignedBreakoutRoom = callState?.breakoutRooms?.assignedBreakoutRoom;\n\n // This call won't exist in the calls array in state if this call is a breakout room that was re-assigned.\n // If so, do nothing.\n if (callState === undefined) {\n return;\n }\n\n if (!breakoutRoom) {\n this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);\n return;\n }\n\n if (\n breakoutRoom.state === 'open' &&\n currentAssignedBreakoutRoom?.state === 'open' &&\n currentAssignedBreakoutRoom?.call?.id !== breakoutRoom.call?.id\n ) {\n if (\n !this._context.getState().latestNotifications['assignedBreakoutRoomOpened'] &&\n !this._context.getState().latestNotifications['assignedBreakoutRoomOpenedPromptJoin']\n ) {\n this._context.setLatestNotification(this._callIdRef.callId, {\n target: 'assignedBreakoutRoomChanged',\n timestamp: new Date(Date.now())\n });\n }\n } else if (breakoutRoom.state === 'open') {\n if (!this._context.getState().latestNotifications['assignedBreakoutRoomChanged']) {\n const target: NotificationTarget =\n breakoutRoom.autoMoveParticipantToBreakoutRoom === false\n ? 'assignedBreakoutRoomOpenedPromptJoin'\n : 'assignedBreakoutRoomOpened';\n this._context.setLatestNotification(this._callIdRef.callId, { target, timestamp: new Date(Date.now()) });\n }\n } else if (breakoutRoom.state === 'closed' && currentAssignedBreakoutRoom?.state === 'closed') {\n // This scenario covers the case where the breakout room is opened but then closed before the user joins.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpened');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomChanged');\n }\n this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);\n };\n\n private onBreakoutRoomsJoined = (call: Call | TeamsCall): void => {\n this._context.setBreakoutRoomOriginCallId(this._callIdRef.callId, call.id);\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpened');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomChanged');\n\n // Send latest notification for breakoutRoomJoined on behalf of the call that was joined.\n this._context.setLatestNotification(call.id, {\n target: 'breakoutRoomJoined',\n timestamp: new Date(Date.now())\n });\n\n // If assigned breakout room has a display name, set the display name for its call state.\n const assignedBreakoutRoomDisplayName =\n this._context.getState().calls[this._callIdRef.callId].breakoutRooms?.assignedBreakoutRoom?.displayName;\n if (assignedBreakoutRoomDisplayName) {\n this._context.setBreakoutRoomDisplayName(call.id, assignedBreakoutRoomDisplayName);\n }\n };\n\n private onBreakoutRoomSettingsUpdated = (breakoutRoomSettings: BreakoutRoomsSettings): void => {\n // If the roomEndTime is available, set a timeout to show a notification before the room closes.\n if (\n typeof breakoutRoomSettings.roomEndTime === 'string' &&\n !Number.isNaN(Date.parse(breakoutRoomSettings.roomEndTime))\n ) {\n const now = new Date(Date.now());\n const roomClosingTime = new Date(breakoutRoomSettings.roomEndTime).getTime();\n const timeBeforeClosing = roomClosingTime - now.getTime();\n const timeBeforeSendingClosingSoonNotification = Math.max(\n timeBeforeClosing - MILLSECONDS_BEFORE_END_TIME_TO_SHOW_CLOSING_NOTIFICATION,\n 0\n );\n if (!this._breakoutRoomClosingSoonTimeoutId) {\n this._breakoutRoomClosingSoonTimeoutId = setTimeout(\n () =>\n this._context.setLatestNotification(this._callIdRef.callId, {\n target: 'breakoutRoomClosingSoon',\n timestamp: now\n }),\n timeBeforeSendingClosingSoonNotification\n );\n }\n }\n this._context.setBreakoutRoomSettings(this._callIdRef.callId, breakoutRoomSettings);\n };\n}\n"]}
1
+ {"version":3,"file":"BreakoutRoomsSubscriber.js","sourceRoot":"","sources":["../../../../../calling-stateful-client/src/BreakoutRoomsSubscriber.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(breakout-rooms) */\nimport {\n BreakoutRoom,\n BreakoutRoomsCallFeature,\n BreakoutRoomsEventData,\n BreakoutRoomsSettings,\n Call,\n TeamsCall\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CallContext } from './CallContext';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { CallIdRef } from './CallIdRef';\n/* @conditional-compile-remove(breakout-rooms) */\nimport { NotificationTarget } from './CallClientState';\n\n/* @conditional-compile-remove(breakout-rooms) */\nconst MILLSECONDS_BEFORE_END_TIME_TO_SHOW_CLOSING_NOTIFICATION = 30000;\n\n/* @conditional-compile-remove(breakout-rooms) */\n/**\n * @private\n */\nexport class BreakoutRoomsSubscriber {\n private _callIdRef: CallIdRef;\n private _context: CallContext;\n private _breakoutRoomsFeature: BreakoutRoomsCallFeature;\n private _breakoutRoomClosingSoonTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n constructor(callIdRef: CallIdRef, context: CallContext, breakoutRoomsFeature: BreakoutRoomsCallFeature) {\n this._callIdRef = callIdRef;\n this._context = context;\n this._breakoutRoomsFeature = breakoutRoomsFeature;\n\n this.subscribe();\n }\n\n public unsubscribe = (): void => {\n this._breakoutRoomsFeature.off('breakoutRoomsUpdated', this.onBreakoutRoomsUpdated);\n // Clear breakout room joined notification for this call.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'breakoutRoomJoined');\n // Clear breakout room closing soon notification for this call.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'breakoutRoomClosingSoon');\n clearTimeout(this._breakoutRoomClosingSoonTimeoutId);\n };\n\n private subscribe(): void {\n this._breakoutRoomsFeature.on('breakoutRoomsUpdated', this.onBreakoutRoomsUpdated);\n }\n\n private onBreakoutRoomsUpdated = (eventData: BreakoutRoomsEventData): void => {\n if (eventData.type === 'assignedBreakoutRooms') {\n this.onAssignedBreakoutRoomUpdated(eventData.data);\n } else if (eventData.type === 'join') {\n this.onBreakoutRoomsJoined(eventData.data);\n } else if (eventData.type === 'breakoutRoomsSettings' && eventData.data) {\n this.onBreakoutRoomSettingsUpdated(eventData.data);\n }\n };\n\n private onAssignedBreakoutRoomUpdated = (breakoutRoom?: BreakoutRoom): void => {\n const callState = this._context.getState().calls[this._callIdRef.callId];\n const currentAssignedBreakoutRoom = callState?.breakoutRooms?.assignedBreakoutRoom;\n\n // This call won't exist in the calls array in state if this call is a breakout room that was re-assigned.\n // If so, do nothing.\n if (callState === undefined) {\n return;\n }\n\n if (!breakoutRoom) {\n // This scenario covers the case where the user is unassigned from a breakout room.\n if (currentAssignedBreakoutRoom?.call?.id) {\n this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomJoined');\n this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomClosingSoon');\n clearTimeout(this._breakoutRoomClosingSoonTimeoutId);\n }\n this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);\n return;\n }\n\n if (\n breakoutRoom.state === 'open' &&\n currentAssignedBreakoutRoom?.state === 'open' &&\n currentAssignedBreakoutRoom?.call?.id !== breakoutRoom.call?.id\n ) {\n if (\n !this._context.getState().latestNotifications['assignedBreakoutRoomOpened'] &&\n !this._context.getState().latestNotifications['assignedBreakoutRoomOpenedPromptJoin']\n ) {\n this._context.setLatestNotification(this._callIdRef.callId, {\n target: 'assignedBreakoutRoomChanged',\n timestamp: new Date(Date.now())\n });\n }\n } else if (breakoutRoom.state === 'open') {\n if (!this._context.getState().latestNotifications['assignedBreakoutRoomChanged']) {\n const target: NotificationTarget =\n breakoutRoom.autoMoveParticipantToBreakoutRoom === false\n ? 'assignedBreakoutRoomOpenedPromptJoin'\n : 'assignedBreakoutRoomOpened';\n this._context.setLatestNotification(this._callIdRef.callId, { target, timestamp: new Date(Date.now()) });\n }\n } else if (breakoutRoom.state === 'closed' && currentAssignedBreakoutRoom?.state === 'closed') {\n // This scenario covers the case where the breakout room is opened but then closed before the user joins.\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpened');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomChanged');\n } else if (breakoutRoom.state === 'closed' && currentAssignedBreakoutRoom?.call?.id) {\n // This scenario covers the case where the breakout room is changed to a closed breakout room.\n this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomJoined');\n this._context.deleteLatestNotification(currentAssignedBreakoutRoom.call.id, 'breakoutRoomClosingSoon');\n clearTimeout(this._breakoutRoomClosingSoonTimeoutId);\n }\n this._context.setAssignedBreakoutRoom(this._callIdRef.callId, breakoutRoom);\n };\n\n private onBreakoutRoomsJoined = (call: Call | TeamsCall): void => {\n this._context.setBreakoutRoomOriginCallId(this._callIdRef.callId, call.id);\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpened');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomOpenedPromptJoin');\n this._context.deleteLatestNotification(this._callIdRef.callId, 'assignedBreakoutRoomChanged');\n\n // Send latest notification for breakoutRoomJoined on behalf of the call that was joined.\n this._context.setLatestNotification(call.id, {\n target: 'breakoutRoomJoined',\n timestamp: new Date(Date.now())\n });\n\n // If assigned breakout room has a display name, set the display name for its call state.\n const assignedBreakoutRoomDisplayName =\n this._context.getState().calls[this._callIdRef.callId].breakoutRooms?.assignedBreakoutRoom?.displayName;\n if (assignedBreakoutRoomDisplayName) {\n this._context.setBreakoutRoomDisplayName(call.id, assignedBreakoutRoomDisplayName);\n }\n };\n\n private onBreakoutRoomSettingsUpdated = (breakoutRoomSettings: BreakoutRoomsSettings): void => {\n // If the roomEndTime is available, set a timeout to show a notification before the room closes.\n if (\n typeof breakoutRoomSettings.roomEndTime === 'string' &&\n !Number.isNaN(Date.parse(breakoutRoomSettings.roomEndTime))\n ) {\n const now = new Date(Date.now());\n const roomClosingTime = new Date(breakoutRoomSettings.roomEndTime).getTime();\n const timeBeforeClosing = roomClosingTime - now.getTime();\n const timeBeforeSendingClosingSoonNotification = Math.max(\n timeBeforeClosing - MILLSECONDS_BEFORE_END_TIME_TO_SHOW_CLOSING_NOTIFICATION,\n 0\n );\n if (!this._breakoutRoomClosingSoonTimeoutId) {\n this._breakoutRoomClosingSoonTimeoutId = setTimeout(\n () =>\n this._context.setLatestNotification(this._callIdRef.callId, {\n target: 'breakoutRoomClosingSoon',\n timestamp: now\n }),\n timeBeforeSendingClosingSoonNotification\n );\n }\n }\n this._context.setBreakoutRoomSettings(this._callIdRef.callId, breakoutRoomSettings);\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/communication-react",
3
- "version": "1.19.0-alpha-202409050015",
3
+ "version": "1.19.0-alpha-202409060015",
4
4
  "sideEffects": false,
5
5
  "description": "React library for building modern communication user experiences utilizing Azure Communication Services",
6
6
  "keywords": [