@100mslive/react-native-room-kit 1.1.7 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/lib/commonjs/HMSRoomSetup.js +8 -0
  2. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  3. package/lib/commonjs/Icons/Pencil/assets/pencil-board.png +0 -0
  4. package/lib/commonjs/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  5. package/lib/commonjs/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  6. package/lib/commonjs/Icons/Pencil/index.js +2 -1
  7. package/lib/commonjs/Icons/Pencil/index.js.map +1 -1
  8. package/lib/commonjs/components/DisplayView.js +2 -1
  9. package/lib/commonjs/components/DisplayView.js.map +1 -1
  10. package/lib/commonjs/components/Footer.js +1 -1
  11. package/lib/commonjs/components/Footer.js.map +1 -1
  12. package/lib/commonjs/components/FullScreenWhiteboard.js +58 -0
  13. package/lib/commonjs/components/FullScreenWhiteboard.js.map +1 -0
  14. package/lib/commonjs/components/GridView.js +6 -4
  15. package/lib/commonjs/components/GridView.js.map +1 -1
  16. package/lib/commonjs/components/HLSChatView.js +7 -2
  17. package/lib/commonjs/components/HLSChatView.js.map +1 -1
  18. package/lib/commonjs/components/HLSPlayerContainer.js +4 -1
  19. package/lib/commonjs/components/HLSPlayerContainer.js.map +1 -1
  20. package/lib/commonjs/components/MeetingScreenContent.js +22 -2
  21. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  22. package/lib/commonjs/components/RoomSettingsModalContent.js +63 -6
  23. package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
  24. package/lib/commonjs/components/TilesContainer.js +4 -4
  25. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  26. package/lib/commonjs/components/WebrtcView.js +2 -2
  27. package/lib/commonjs/components/WebrtcView.js.map +1 -1
  28. package/lib/commonjs/components/Whiteboard.js +72 -0
  29. package/lib/commonjs/components/Whiteboard.js.map +1 -0
  30. package/lib/commonjs/components/WhiteboardContainer.js +35 -0
  31. package/lib/commonjs/components/WhiteboardContainer.js.map +1 -0
  32. package/lib/commonjs/components/WhiteboardFullScreenButton.js +42 -0
  33. package/lib/commonjs/components/WhiteboardFullScreenButton.js.map +1 -0
  34. package/lib/commonjs/hooks-util.js +36 -6
  35. package/lib/commonjs/hooks-util.js.map +1 -1
  36. package/lib/commonjs/redux/actionTypes.js +3 -0
  37. package/lib/commonjs/redux/actionTypes.js.map +1 -1
  38. package/lib/commonjs/redux/actions/index.js +14 -2
  39. package/lib/commonjs/redux/actions/index.js.map +1 -1
  40. package/lib/commonjs/redux/reducers/appState.js +8 -0
  41. package/lib/commonjs/redux/reducers/appState.js.map +1 -1
  42. package/lib/commonjs/redux/reducers/hmsStates.js +7 -1
  43. package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
  44. package/lib/module/HMSRoomSetup.js +10 -2
  45. package/lib/module/HMSRoomSetup.js.map +1 -1
  46. package/lib/module/Icons/Pencil/assets/pencil-board.png +0 -0
  47. package/lib/module/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  48. package/lib/module/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  49. package/lib/module/Icons/Pencil/index.js +2 -1
  50. package/lib/module/Icons/Pencil/index.js.map +1 -1
  51. package/lib/module/components/DisplayView.js +2 -1
  52. package/lib/module/components/DisplayView.js.map +1 -1
  53. package/lib/module/components/Footer.js +1 -1
  54. package/lib/module/components/Footer.js.map +1 -1
  55. package/lib/module/components/FullScreenWhiteboard.js +48 -0
  56. package/lib/module/components/FullScreenWhiteboard.js.map +1 -0
  57. package/lib/module/components/GridView.js +6 -4
  58. package/lib/module/components/GridView.js.map +1 -1
  59. package/lib/module/components/HLSChatView.js +7 -2
  60. package/lib/module/components/HLSChatView.js.map +1 -1
  61. package/lib/module/components/HLSPlayerContainer.js +4 -1
  62. package/lib/module/components/HLSPlayerContainer.js.map +1 -1
  63. package/lib/module/components/MeetingScreenContent.js +23 -3
  64. package/lib/module/components/MeetingScreenContent.js.map +1 -1
  65. package/lib/module/components/RoomSettingsModalContent.js +65 -8
  66. package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
  67. package/lib/module/components/TilesContainer.js +4 -4
  68. package/lib/module/components/TilesContainer.js.map +1 -1
  69. package/lib/module/components/WebrtcView.js +2 -2
  70. package/lib/module/components/WebrtcView.js.map +1 -1
  71. package/lib/module/components/Whiteboard.js +64 -0
  72. package/lib/module/components/Whiteboard.js.map +1 -0
  73. package/lib/module/components/WhiteboardContainer.js +27 -0
  74. package/lib/module/components/WhiteboardContainer.js.map +1 -0
  75. package/lib/module/components/WhiteboardFullScreenButton.js +33 -0
  76. package/lib/module/components/WhiteboardFullScreenButton.js.map +1 -0
  77. package/lib/module/hooks-util.js +36 -6
  78. package/lib/module/hooks-util.js.map +1 -1
  79. package/lib/module/redux/actionTypes.js +3 -0
  80. package/lib/module/redux/actionTypes.js.map +1 -1
  81. package/lib/module/redux/actions/index.js +10 -0
  82. package/lib/module/redux/actions/index.js.map +1 -1
  83. package/lib/module/redux/reducers/appState.js +8 -0
  84. package/lib/module/redux/reducers/appState.js.map +1 -1
  85. package/lib/module/redux/reducers/hmsStates.js +7 -1
  86. package/lib/module/redux/reducers/hmsStates.js.map +1 -1
  87. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  88. package/lib/typescript/Icons/Pencil/index.d.ts +1 -0
  89. package/lib/typescript/Icons/Pencil/index.d.ts.map +1 -1
  90. package/lib/typescript/components/DisplayView.d.ts.map +1 -1
  91. package/lib/typescript/components/Footer.d.ts.map +1 -1
  92. package/lib/typescript/components/FullScreenWhiteboard.d.ts +3 -0
  93. package/lib/typescript/components/FullScreenWhiteboard.d.ts.map +1 -0
  94. package/lib/typescript/components/GridView.d.ts.map +1 -1
  95. package/lib/typescript/components/HLSChatView.d.ts.map +1 -1
  96. package/lib/typescript/components/HLSPlayerContainer.d.ts.map +1 -1
  97. package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
  98. package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
  99. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  100. package/lib/typescript/components/WebrtcView.d.ts.map +1 -1
  101. package/lib/typescript/components/Whiteboard.d.ts +6 -0
  102. package/lib/typescript/components/Whiteboard.d.ts.map +1 -0
  103. package/lib/typescript/components/WhiteboardContainer.d.ts +6 -0
  104. package/lib/typescript/components/WhiteboardContainer.d.ts.map +1 -0
  105. package/lib/typescript/components/WhiteboardFullScreenButton.d.ts +5 -0
  106. package/lib/typescript/components/WhiteboardFullScreenButton.d.ts.map +1 -0
  107. package/lib/typescript/hooks-util.d.ts.map +1 -1
  108. package/lib/typescript/redux/actionTypes.d.ts +2 -0
  109. package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
  110. package/lib/typescript/redux/actions/index.d.ts +11 -1
  111. package/lib/typescript/redux/actions/index.d.ts.map +1 -1
  112. package/lib/typescript/redux/index.d.ts +2 -0
  113. package/lib/typescript/redux/index.d.ts.map +1 -1
  114. package/lib/typescript/redux/reducers/appState.d.ts +1 -0
  115. package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
  116. package/lib/typescript/redux/reducers/hmsStates.d.ts +7 -2
  117. package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
  118. package/lib/typescript/redux/reducers/index.d.ts +2 -0
  119. package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
  120. package/package.json +4 -3
  121. package/src/HMSRoomSetup.tsx +21 -0
  122. package/src/Icons/Pencil/assets/pencil-board.png +0 -0
  123. package/src/Icons/Pencil/assets/pencil-board@2x.png +0 -0
  124. package/src/Icons/Pencil/assets/pencil-board@3x.png +0 -0
  125. package/src/Icons/Pencil/index.tsx +9 -2
  126. package/src/components/DisplayView.tsx +3 -0
  127. package/src/components/Footer.tsx +5 -2
  128. package/src/components/FullScreenWhiteboard.tsx +59 -0
  129. package/src/components/GridView.tsx +14 -5
  130. package/src/components/HLSChatView.tsx +7 -4
  131. package/src/components/HLSPlayerContainer.tsx +15 -7
  132. package/src/components/MeetingScreenContent.tsx +28 -2
  133. package/src/components/RoomSettingsModalContent.tsx +77 -2
  134. package/src/components/TilesContainer.tsx +7 -5
  135. package/src/components/WebrtcView.tsx +11 -4
  136. package/src/components/Whiteboard.tsx +101 -0
  137. package/src/components/WhiteboardContainer.tsx +35 -0
  138. package/src/components/WhiteboardFullScreenButton.tsx +52 -0
  139. package/src/hooks-util.ts +41 -9
  140. package/src/redux/actionTypes.ts +4 -0
  141. package/src/redux/actions/index.ts +11 -0
  142. package/src/redux/reducers/appState.ts +8 -0
  143. package/src/redux/reducers/hmsStates.ts +15 -1
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WhiteboardFullScreenButton = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactRedux = require("react-redux");
10
+ var _PressableIcon = require("./PressableIcon");
11
+ var _Icons = require("../Icons");
12
+ var _hooksUtil = require("../hooks-util");
13
+ var _theme = require("../utils/theme");
14
+ var _actions = require("../redux/actions");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ const WhiteboardFullScreenButton = () => {
18
+ const dispatch = (0, _reactRedux.useDispatch)();
19
+ const fullScreenWhiteboard = (0, _reactRedux.useSelector)(state => state.app.fullScreenWhiteboard);
20
+ const buttonStyles = (0, _hooksUtil.useHMSRoomStyle)(theme => ({
21
+ backgroundColor: theme.palette.background_dim && (0, _theme.hexToRgbA)(theme.palette.background_dim, 0.64)
22
+ }));
23
+ const maximizeAction = !fullScreenWhiteboard;
24
+ const handleFullScreenPress = () => {
25
+ dispatch((0, _actions.setFullScreenWhiteboard)(!fullScreenWhiteboard));
26
+ };
27
+ return /*#__PURE__*/React.createElement(_PressableIcon.PressableIcon, {
28
+ border: false,
29
+ onPress: handleFullScreenPress,
30
+ style: [styles.container, buttonStyles]
31
+ }, maximizeAction ? /*#__PURE__*/React.createElement(_Icons.MaximizeIcon, null) : /*#__PURE__*/React.createElement(_Icons.MinimizeIcon, null));
32
+ };
33
+ exports.WhiteboardFullScreenButton = WhiteboardFullScreenButton;
34
+ const styles = _reactNative.StyleSheet.create({
35
+ container: {
36
+ position: 'absolute',
37
+ top: 8,
38
+ right: 8,
39
+ padding: 8
40
+ }
41
+ });
42
+ //# sourceMappingURL=WhiteboardFullScreenButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactRedux","_PressableIcon","_Icons","_hooksUtil","_theme","_actions","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WhiteboardFullScreenButton","dispatch","useDispatch","fullScreenWhiteboard","useSelector","state","app","buttonStyles","useHMSRoomStyle","theme","backgroundColor","palette","background_dim","hexToRgbA","maximizeAction","handleFullScreenPress","setFullScreenWhiteboard","createElement","PressableIcon","border","onPress","style","styles","container","MaximizeIcon","MinimizeIcon","exports","StyleSheet","create","position","top","right","padding"],"sourceRoot":"../../../src","sources":["components/WhiteboardFullScreenButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -329,7 +329,8 @@ const useHMSTrackUpdate = (hmsInstance, updateLocalPeer, setPeerTrackNodes) => {
329
329
  const fullScreenPeerTrackNode = reduxState.app.fullScreenPeerTrackNode;
330
330
  const miniviewPeerTrackNode = reduxState.app.miniviewPeerTrackNode;
331
331
  const localPeerTrackNode = reduxState.app.localPeerTrackNode;
332
- const currentLayoutConfig = (0, _hooksUtilSelectors.selectLayoutConfigForRole)(reduxState.hmsStates.layoutConfig, ((_reduxState$hmsStates2 = reduxState.hmsStates.localPeer) === null || _reduxState$hmsStates2 === void 0 ? void 0 : _reduxState$hmsStates2.role) ?? null);
332
+ const localPeerRole = ((_reduxState$hmsStates2 = reduxState.hmsStates.localPeer) === null || _reduxState$hmsStates2 === void 0 ? void 0 : _reduxState$hmsStates2.role) ?? null;
333
+ const currentLayoutConfig = (0, _hooksUtilSelectors.selectLayoutConfigForRole)(reduxState.hmsStates.layoutConfig, localPeerRole);
333
334
  const localTileInsetEnabled = (_selectVideoTileLayou2 = (0, _hooksUtilSelectors.selectVideoTileLayoutConfig)(currentLayoutConfig)) === null || _selectVideoTileLayou2 === void 0 || (_selectVideoTileLayou2 = _selectVideoTileLayou2.grid) === null || _selectVideoTileLayou2 === void 0 ? void 0 : _selectVideoTileLayou2.enable_local_tile_inset;
334
335
  if (type === _reactNativeHms.HMSTrackUpdate.TRACK_ADDED) {
335
336
  const newPeerTrackNode = (0, _functions.createPeerTrackNode)(peer, track);
@@ -337,6 +338,22 @@ const useHMSTrackUpdate = (hmsInstance, updateLocalPeer, setPeerTrackNodes) => {
337
338
  if (!peer.isLocal && track.type === _reactNativeHms.HMSTrackType.VIDEO) {
338
339
  dispatch((0, _actions.addScreenshareTile)(newPeerTrackNode));
339
340
  }
341
+ if (track.type === _reactNativeHms.HMSTrackType.VIDEO) {
342
+ var _localPeerRole$permis;
343
+ const whiteboard = reduxState.hmsStates.whiteboard;
344
+ // If white board is open and local peer is owner, close whiteboard
345
+ if (whiteboard &&
346
+ // Is local peer has whiteboard admin permission
347
+ !!(localPeerRole !== null && localPeerRole !== void 0 && (_localPeerRole$permis = localPeerRole.permissions) !== null && _localPeerRole$permis !== void 0 && (_localPeerRole$permis = _localPeerRole$permis.whiteboard) !== null && _localPeerRole$permis !== void 0 && _localPeerRole$permis.admin) &&
348
+ // Is local peer owner of whiteboard
349
+ whiteboard.isOwner) {
350
+ hmsInstance.interactivityCenter.stopWhiteboard().then(success => {
351
+ console.log('StopWhiteboard on Screenshare: ', success);
352
+ }).catch(error => {
353
+ console.log('StopWhiteboard error: ', error);
354
+ });
355
+ }
356
+ }
340
357
  } else {
341
358
  setPeerTrackNodes(prevPeerTrackNodes => {
342
359
  if ((0, _peerTrackNodeUtils.peerTrackNodeExistForPeerAndTrack)(prevPeerTrackNodes, peer, track)) {
@@ -2188,16 +2205,25 @@ const useCanShowRoomOptionsButton = () => {
2188
2205
  const permissions = (_state$hmsStates$loca10 = state.hmsStates.localPeer) === null || _state$hmsStates$loca10 === void 0 || (_state$hmsStates$loca10 = _state$hmsStates$loca10.role) === null || _state$hmsStates$loca10 === void 0 ? void 0 : _state$hmsStates$loca10.permissions;
2189
2206
  return (permissions === null || permissions === void 0 ? void 0 : permissions.pollRead) || (permissions === null || permissions === void 0 ? void 0 : permissions.pollWrite);
2190
2207
  });
2208
+ const canStartStopWhiteboard = (0, _reactRedux.useSelector)(state => {
2209
+ var _state$hmsStates$loca11, _permissions$whiteboa;
2210
+ const permissions = (_state$hmsStates$loca11 = state.hmsStates.localPeer) === null || _state$hmsStates$loca11 === void 0 || (_state$hmsStates$loca11 = _state$hmsStates$loca11.role) === null || _state$hmsStates$loca11 === void 0 ? void 0 : _state$hmsStates$loca11.permissions;
2211
+ return permissions === null || permissions === void 0 || (_permissions$whiteboa = permissions.whiteboard) === null || _permissions$whiteboa === void 0 ? void 0 : _permissions$whiteboa.admin;
2212
+ });
2191
2213
  const {
2192
2214
  canShowParticipants
2193
2215
  } = useShowChatAndParticipants();
2194
2216
  const canEditUsernameFromRoomModal = isViewer && !editUsernameDisabled;
2195
- const canShowOptions = canShowParticipants || canPublishScreen || canShowBRB || canStartRecording || canEditUsernameFromRoomModal || canReadOrWritePoll || isNoiseCancellationAvailable;
2217
+ const canShowOptions = canShowParticipants || canPublishScreen || canShowBRB || canStartRecording || canEditUsernameFromRoomModal || canReadOrWritePoll || canStartStopWhiteboard || isNoiseCancellationAvailable;
2196
2218
  return canShowOptions;
2197
2219
  };
2198
2220
  exports.useCanShowRoomOptionsButton = useCanShowRoomOptionsButton;
2199
2221
  const useHLSViewsConstraints = () => {
2200
- const hlsFullScreen = (0, _reactRedux.useSelector)(state => state.app.hlsFullScreen);
2222
+ const fullScreenMode = (0, _reactRedux.useSelector)(state => {
2223
+ const hlsFullScreen = state.app.hlsFullScreen;
2224
+ const isPipModeActive = state.app.pipModeStatus === _types.PipModes.ACTIVE;
2225
+ return hlsFullScreen || isPipModeActive;
2226
+ });
2201
2227
  const isLandscapeOrientation = (0, _dimension.useIsLandscapeOrientation)();
2202
2228
  const {
2203
2229
  width: safeAreaWidthFrame,
@@ -2209,7 +2235,7 @@ const useHLSViewsConstraints = () => {
2209
2235
  left: leftInset,
2210
2236
  right: rightInset
2211
2237
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
2212
- const playerWrapperConstraints = hlsFullScreen ? {
2238
+ const playerWrapperConstraints = fullScreenMode ? {
2213
2239
  width: safeAreaWidthFrame - leftInset - rightInset,
2214
2240
  height: isLandscapeOrientation ? safeAreaHeightFrame : safeAreaHeightFrame - topInset - bottomInset
2215
2241
  } : {
@@ -2229,7 +2255,11 @@ const useHLSViewsConstraints = () => {
2229
2255
  };
2230
2256
  exports.useHLSViewsConstraints = useHLSViewsConstraints;
2231
2257
  const useHLSPlayerConstraints = () => {
2232
- const hlsFullScreen = (0, _reactRedux.useSelector)(state => state.app.hlsFullScreen);
2258
+ const fullScreenMode = (0, _reactRedux.useSelector)(state => {
2259
+ const hlsFullScreen = state.app.hlsFullScreen;
2260
+ const isPipModeActive = state.app.pipModeStatus === _types.PipModes.ACTIVE;
2261
+ return hlsFullScreen || isPipModeActive;
2262
+ });
2233
2263
  const isLandscapeOrientation = (0, _dimension.useIsLandscapeOrientation)();
2234
2264
  const resolution = (0, _reactNativeHms.useHMSHLSPlayerResolution)();
2235
2265
  const {
@@ -2262,7 +2292,7 @@ const useHLSPlayerConstraints = () => {
2262
2292
  /**
2263
2293
  * Handling Portrait Orientation
2264
2294
  */
2265
- if (hlsFullScreen) {
2295
+ if (fullScreenMode) {
2266
2296
  return {
2267
2297
  width: sr > wr ? wrapperWidth : wrapperHeight * sr,
2268
2298
  height: sr > wr ? wrapperWidth / sr : wrapperHeight