@stream-io/video-react-native-sdk 0.8.7 → 0.8.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 (42) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/commonjs/components/Call/CallControls/ScreenShareToggleButton.js +6 -76
  3. package/dist/commonjs/components/Call/CallControls/ScreenShareToggleButton.js.map +1 -1
  4. package/dist/commonjs/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.js +7 -69
  5. package/dist/commonjs/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.js.map +1 -1
  6. package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamPlayer.js +6 -5
  7. package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamPlayer.js.map +1 -1
  8. package/dist/commonjs/hooks/index.js +11 -0
  9. package/dist/commonjs/hooks/index.js.map +1 -1
  10. package/dist/commonjs/hooks/useScreenShareButton.js +89 -0
  11. package/dist/commonjs/hooks/useScreenShareButton.js.map +1 -0
  12. package/dist/commonjs/version.js +1 -1
  13. package/dist/module/components/Call/CallControls/ScreenShareToggleButton.js +8 -78
  14. package/dist/module/components/Call/CallControls/ScreenShareToggleButton.js.map +1 -1
  15. package/dist/module/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.js +7 -68
  16. package/dist/module/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.js.map +1 -1
  17. package/dist/module/components/Livestream/LivestreamPlayer/LivestreamPlayer.js +3 -2
  18. package/dist/module/components/Livestream/LivestreamPlayer/LivestreamPlayer.js.map +1 -1
  19. package/dist/module/hooks/index.js +1 -0
  20. package/dist/module/hooks/index.js.map +1 -1
  21. package/dist/module/hooks/useScreenShareButton.js +83 -0
  22. package/dist/module/hooks/useScreenShareButton.js.map +1 -0
  23. package/dist/module/version.js +1 -1
  24. package/dist/typescript/components/Call/CallControls/ScreenShareToggleButton.d.ts.map +1 -1
  25. package/dist/typescript/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.d.ts +1 -1
  26. package/dist/typescript/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.d.ts.map +1 -1
  27. package/dist/typescript/components/Livestream/LivestreamPlayer/LivestreamPlayer.d.ts +1 -1
  28. package/dist/typescript/components/Livestream/LivestreamPlayer/LivestreamPlayer.d.ts.map +1 -1
  29. package/dist/typescript/hooks/index.d.ts +1 -0
  30. package/dist/typescript/hooks/index.d.ts.map +1 -1
  31. package/dist/typescript/hooks/useScreenShareButton.d.ts +9 -0
  32. package/dist/typescript/hooks/useScreenShareButton.d.ts.map +1 -0
  33. package/dist/typescript/version.d.ts +1 -1
  34. package/expo-config-plugin/dist/withAndroidManifest.js +6 -6
  35. package/expo-config-plugin/dist/withMainActivity.js +17 -0
  36. package/package.json +3 -3
  37. package/src/components/Call/CallControls/ScreenShareToggleButton.tsx +9 -95
  38. package/src/components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.tsx +6 -91
  39. package/src/components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx +4 -3
  40. package/src/hooks/index.ts +1 -0
  41. package/src/hooks/useScreenShareButton.ts +128 -0
  42. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ### [0.8.8](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.8.7...@stream-io/video-react-native-sdk-0.8.8) (2024-06-28)
6
+
7
+
8
+ ### Features
9
+
10
+ * **react-native:** enable android 14 compatibility for screensharing foreground service ([#1425](https://github.com/GetStream/stream-video-js/issues/1425)) ([f41aa10](https://github.com/GetStream/stream-video-js/commit/f41aa100b4a5f3ea72a3628407a5d101e9aea342))
11
+
5
12
  ### [0.8.7](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.8.6...@stream-io/video-react-native-sdk-0.8.7) (2024-06-25)
6
13
 
7
14
  ### Dependency Updates
@@ -11,17 +11,9 @@ var _ScreenShare = require("../../../icons/ScreenShare");
11
11
  var _StopScreenShare = require("../../../icons/StopScreenShare");
12
12
  var _CallControlsButton = require("./CallControlsButton");
13
13
  var _ThemeContext = require("../../../contexts/ThemeContext");
14
- var _videoReactBindings = require("@stream-io/video-react-bindings");
15
- var _useIsIosScreenshareBroadcastStarted = require("../../../hooks/useIsIosScreenshareBroadcastStarted");
16
- var _videoClient = require("@stream-io/video-client");
17
- var _usePrevious = require("../../../utils/hooks/usePrevious");
14
+ var _useScreenShareButton = require("../../../hooks/useScreenShareButton");
18
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); }
19
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; }
20
- // ios >= 14.0 or android - platform restrictions
21
- const CanDeviceScreenShare = _reactNative.Platform.OS === 'ios' &&
22
- // @ts-ignore
23
- Number.parseInt(_reactNative.Platform.Version.split('.')[0], 10) >= 14 || _reactNative.Platform.OS === 'android';
24
-
25
17
  /**
26
18
  * The props for the Screen Share button in the Call Controls.
27
19
  */
@@ -40,75 +32,13 @@ const ScreenShareToggleButton = ({
40
32
  screenShareToggleButton
41
33
  }
42
34
  } = (0, _ThemeContext.useTheme)();
43
- const call = (0, _videoReactBindings.useCall)();
35
+ const screenCapturePickerViewiOSRef = (0, _react.useRef)(null);
44
36
  const {
45
- useLocalParticipant,
46
- useCallSettings
47
- } = (0, _videoReactBindings.useCallStateHooks)();
48
- const callSettings = useCallSettings();
49
- const isScreenSharingEnabledInCall = callSettings?.screensharing.enabled;
50
- const isScreenSharingAccessRequestEnabled = callSettings?.screensharing.access_request_enabled;
51
- const onScreenShareStartedHandlerRef = (0, _react.useRef)(onScreenShareStartedHandler);
52
- onScreenShareStartedHandlerRef.current = onScreenShareStartedHandler;
53
- const onScreenShareStoppedHandlerRef = (0, _react.useRef)(onScreenShareStoppedHandler);
54
- onScreenShareStoppedHandlerRef.current = onScreenShareStoppedHandler;
55
- const iosScreenShareStartedFromSystem = (0, _useIsIosScreenshareBroadcastStarted.useIsIosScreenshareBroadcastStarted)();
56
- const prevIosScreenShareStartedFromSystem = (0, _usePrevious.usePrevious)(iosScreenShareStartedFromSystem);
57
- const localParticipant = useLocalParticipant();
58
- const hasPublishedScreenShare = localParticipant && (0, _videoClient.hasScreenShare)(localParticipant);
59
-
60
- // listens to iOS screen share broadcast started event from the system
61
- (0, _react.useEffect)(() => {
62
- const run = async () => {
63
- if (_reactNative.Platform.OS !== 'ios') {
64
- return;
65
- }
66
- if (iosScreenShareStartedFromSystem && !prevIosScreenShareStartedFromSystem) {
67
- onScreenShareStartedHandlerRef.current?.();
68
- const media = await navigator.mediaDevices.getDisplayMedia({
69
- // @ts-ignore
70
- deviceId: 'broadcast',
71
- video: true,
72
- audio: true
73
- });
74
- await call?.publishScreenShareStream(media);
75
- } else if (!iosScreenShareStartedFromSystem && prevIosScreenShareStartedFromSystem) {
76
- onScreenShareStoppedHandlerRef.current?.();
77
- await call?.stopPublish(_videoClient.SfuModels.TrackType.SCREEN_SHARE);
78
- }
79
- };
80
- run();
81
- }, [call, iosScreenShareStartedFromSystem, prevIosScreenShareStartedFromSystem]);
82
- const screenCapturePickerViewiOSRef = _react.default.useRef(null);
83
- const onPress = async () => {
84
- if (!hasPublishedScreenShare) {
85
- if (_reactNative.Platform.OS === 'ios') {
86
- const reactTag = (0, _reactNative.findNodeHandle)(screenCapturePickerViewiOSRef.current);
87
- await _reactNative.NativeModules.ScreenCapturePickerViewManager.show(reactTag);
88
- // After this the iOS screen share broadcast started/stopped event will be triggered
89
- // and the useEffect listener will handle the rest
90
- } else {
91
- try {
92
- const media = await navigator.mediaDevices.getDisplayMedia({
93
- video: true,
94
- audio: true
95
- });
96
- onScreenShareStartedHandler?.();
97
- await call?.publishScreenShareStream(media);
98
- } catch (e) {
99
- // ignored.. user didnt allow the screen share in the popup
100
- }
101
- }
102
- } else if (hasPublishedScreenShare) {
103
- onScreenShareStoppedHandler?.();
104
- await call?.stopPublish(_videoClient.SfuModels.TrackType.SCREEN_SHARE);
105
- }
106
- };
107
- if (!isScreenSharingEnabledInCall || !CanDeviceScreenShare) {
108
- return null;
109
- }
37
+ onPress,
38
+ hasPublishedScreenShare
39
+ } = (0, _useScreenShareButton.useScreenShareButton)(screenCapturePickerViewiOSRef, onScreenShareStartedHandler, onScreenShareStoppedHandler);
40
+ if (!onPress) return null;
110
41
  return /*#__PURE__*/_react.default.createElement(_CallControlsButton.CallControlsButton, {
111
- disabled: !isScreenSharingAccessRequestEnabled,
112
42
  onPress: onPress,
113
43
  color: hasPublishedScreenShare ? colors.error : colors.static_white,
114
44
  style: {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebrtc","_ScreenShare","_StopScreenShare","_CallControlsButton","_ThemeContext","_videoReactBindings","_useIsIosScreenshareBroadcastStarted","_videoClient","_usePrevious","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CanDeviceScreenShare","Platform","OS","Number","parseInt","Version","split","ScreenShareToggleButton","onScreenShareStartedHandler","onScreenShareStoppedHandler","theme","colors","screenShareToggleButton","useTheme","useCall","useLocalParticipant","useCallSettings","useCallStateHooks","callSettings","isScreenSharingEnabledInCall","screensharing","enabled","isScreenSharingAccessRequestEnabled","access_request_enabled","onScreenShareStartedHandlerRef","useRef","current","onScreenShareStoppedHandlerRef","iosScreenShareStartedFromSystem","useIsIosScreenshareBroadcastStarted","prevIosScreenShareStartedFromSystem","usePrevious","localParticipant","hasPublishedScreenShare","hasScreenShare","useEffect","run","media","navigator","mediaDevices","getDisplayMedia","deviceId","video","audio","publishScreenShareStream","stopPublish","SfuModels","TrackType","SCREEN_SHARE","screenCapturePickerViewiOSRef","React","onPress","reactTag","findNodeHandle","NativeModules","ScreenCapturePickerViewManager","show","createElement","CallControlsButton","disabled","color","error","static_white","style","container","svgContainer","StopScreenShare","static_black","ScreenShare","ScreenCapturePickerView","ref","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/ScreenShareToggleButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AACA,IAAAQ,oCAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AAA+D,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE/D;AACA,MAAMW,oBAAoB,GACvBC,qBAAQ,CAACC,EAAE,KAAK,KAAK;AACpB;AACAC,MAAM,CAACC,QAAQ,CAACH,qBAAQ,CAACI,OAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAC3DL,qBAAQ,CAACC,EAAE,KAAK,SAAS;;AAE3B;AACA;AACA;;AAcA;AACA;AACA;AACA;AACO,MAAMK,uBAAuB,GAAGA,CAAC;EACtCC,2BAA2B;EAC3BC;AAC4B,CAAC,KAAK;EAClC,MAAM;IACJC,KAAK,EAAE;MAAEC,MAAM;MAAEC;IAAwB;EAC3C,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EAEd,MAAMhB,IAAI,GAAG,IAAAiB,2BAAO,EAAC,CAAC;EACtB,MAAM;IAAEC,mBAAmB;IAAEC;EAAgB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EACpE,MAAMC,YAAY,GAAGF,eAAe,CAAC,CAAC;EACtC,MAAMG,4BAA4B,GAAGD,YAAY,EAAEE,aAAa,CAACC,OAAO;EACxE,MAAMC,mCAAmC,GACvCJ,YAAY,EAAEE,aAAa,CAACG,sBAAsB;EAEpD,MAAMC,8BAA8B,GAAG,IAAAC,aAAM,EAACjB,2BAA2B,CAAC;EAC1EgB,8BAA8B,CAACE,OAAO,GAAGlB,2BAA2B;EACpE,MAAMmB,8BAA8B,GAAG,IAAAF,aAAM,EAAChB,2BAA2B,CAAC;EAC1EkB,8BAA8B,CAACD,OAAO,GAAGjB,2BAA2B;EAEpE,MAAMmB,+BAA+B,GAAG,IAAAC,wEAAmC,EAAC,CAAC;EAC7E,MAAMC,mCAAmC,GAAG,IAAAC,wBAAW,EACrDH,+BACF,CAAC;EAED,MAAMI,gBAAgB,GAAGjB,mBAAmB,CAAC,CAAC;EAC9C,MAAMkB,uBAAuB,GAC3BD,gBAAgB,IAAI,IAAAE,2BAAc,EAACF,gBAAgB,CAAC;;EAEtD;EACA,IAAAG,gBAAS,EAAC,MAAM;IACd,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAY;MACtB,IAAInC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACzB;MACF;MACA,IACE0B,+BAA+B,IAC/B,CAACE,mCAAmC,EACpC;QACAN,8BAA8B,CAACE,OAAO,GAAG,CAAC;QAC1C,MAAMW,KAAK,GAAG,MAAMC,SAAS,CAACC,YAAY,CAACC,eAAe,CAAC;UACzD;UACAC,QAAQ,EAAE,WAAW;UACrBC,KAAK,EAAE,IAAI;UACXC,KAAK,EAAE;QACT,CAAC,CAAC;QACF,MAAM9C,IAAI,EAAE+C,wBAAwB,CAACP,KAAK,CAAC;MAC7C,CAAC,MAAM,IACL,CAACT,+BAA+B,IAChCE,mCAAmC,EACnC;QACAH,8BAA8B,CAACD,OAAO,GAAG,CAAC;QAC1C,MAAM7B,IAAI,EAAEgD,WAAW,CAACC,sBAAS,CAACC,SAAS,CAACC,YAAY,CAAC;MAC3D;IACF,CAAC;IACDZ,GAAG,CAAC,CAAC;EACP,CAAC,EAAE,CACDvC,IAAI,EACJ+B,+BAA+B,EAC/BE,mCAAmC,CACpC,CAAC;EAEF,MAAMmB,6BAA6B,GAAGC,cAAK,CAACzB,MAAM,CAAC,IAAI,CAAC;EAExD,MAAM0B,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC1B,IAAI,CAAClB,uBAAuB,EAAE;MAC5B,IAAIhC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACzB,MAAMkD,QAAQ,GAAG,IAAAC,2BAAc,EAACJ,6BAA6B,CAACvB,OAAO,CAAC;QACtE,MAAM4B,0BAAa,CAACC,8BAA8B,CAACC,IAAI,CAACJ,QAAQ,CAAC;QACjE;QACA;MACF,CAAC,MAAM;QACL,IAAI;UACF,MAAMf,KAAK,GAAG,MAAMC,SAAS,CAACC,YAAY,CAACC,eAAe,CAAC;YACzDE,KAAK,EAAE,IAAI;YACXC,KAAK,EAAE;UACT,CAAC,CAAC;UACFnC,2BAA2B,GAAG,CAAC;UAC/B,MAAMX,IAAI,EAAE+C,wBAAwB,CAACP,KAAK,CAAC;QAC7C,CAAC,CAAC,OAAOxD,CAAC,EAAE;UACV;QAAA;MAEJ;IACF,CAAC,MAAM,IAAIoD,uBAAuB,EAAE;MAClCxB,2BAA2B,GAAG,CAAC;MAC/B,MAAMZ,IAAI,EAAEgD,WAAW,CAACC,sBAAS,CAACC,SAAS,CAACC,YAAY,CAAC;IAC3D;EACF,CAAC;EAED,IAAI,CAAC7B,4BAA4B,IAAI,CAACnB,oBAAoB,EAAE;IAC1D,OAAO,IAAI;EACb;EAEA,oBACEjC,MAAA,CAAAmB,OAAA,CAAAuE,aAAA,CAACnF,mBAAA,CAAAoF,kBAAkB;IACjBC,QAAQ,EAAE,CAACrC,mCAAoC;IAC/C6B,OAAO,EAAEA,OAAQ;IACjBS,KAAK,EAAE3B,uBAAuB,GAAGtB,MAAM,CAACkD,KAAK,GAAGlD,MAAM,CAACmD,YAAa;IACpEC,KAAK,EAAE;MACLC,SAAS,EAAEpD,uBAAuB,CAACoD,SAAS;MAC5CC,YAAY,EAAErD,uBAAuB,CAACqD;IACxC;EAAE,GAEDhC,uBAAuB,gBACtBlE,MAAA,CAAAmB,OAAA,CAAAuE,aAAA,CAACpF,gBAAA,CAAA6F,eAAe;IAACN,KAAK,EAAEjD,MAAM,CAACwD;EAAa,CAAE,CAAC,gBAE/CpG,MAAA,CAAAmB,OAAA,CAAAuE,aAAA,CAACrF,YAAA,CAAAgG,WAAW;IAACR,KAAK,EAAEjD,MAAM,CAACwD;EAAa,CAAE,CAC3C,EACAlE,qBAAQ,CAACC,EAAE,KAAK,KAAK,iBACpBnC,MAAA,CAAAmB,OAAA,CAAAuE,aAAA,CAACtF,kBAAA,CAAAkG,uBAAuB;IAACC,GAAG,EAAErB;EAA8B,CAAE,CAE9C,CAAC;AAEzB,CAAC;AAACsB,OAAA,CAAAhE,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebrtc","_ScreenShare","_StopScreenShare","_CallControlsButton","_ThemeContext","_useScreenShareButton","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ScreenShareToggleButton","onScreenShareStartedHandler","onScreenShareStoppedHandler","theme","colors","screenShareToggleButton","useTheme","screenCapturePickerViewiOSRef","useRef","onPress","hasPublishedScreenShare","useScreenShareButton","createElement","CallControlsButton","color","error","static_white","style","container","svgContainer","StopScreenShare","static_black","ScreenShare","Platform","OS","ScreenCapturePickerView","ref","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/ScreenShareToggleButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LivestreamScreenShareToggleButton = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _ThemeContext = require("../../../contexts/ThemeContext");
9
9
  var _reactNative = require("react-native");
10
10
  var _ScreenShare = require("../../../icons/ScreenShare");
11
11
  var _StopScreenShare = require("../../../icons/StopScreenShare");
12
12
  var _reactNativeWebrtc = require("@stream-io/react-native-webrtc");
13
- var _videoClient = require("@stream-io/video-client");
14
- var _videoReactBindings = require("@stream-io/video-react-bindings");
15
- var _useIsIosScreenshareBroadcastStarted = require("../../../hooks/useIsIosScreenshareBroadcastStarted");
16
- var _usePrevious = require("../../../utils/hooks/usePrevious");
17
- 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); }
18
- 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; }
19
- // ios >= 14.0 or android - platform restrictions
20
- const CanDeviceScreenShare = _reactNative.Platform.OS === 'ios' &&
21
- // @ts-ignore
22
- Number.parseInt(_reactNative.Platform.Version.split('.')[0], 10) >= 14 || _reactNative.Platform.OS === 'android';
23
-
13
+ var _useScreenShareButton = require("../../../hooks/useScreenShareButton");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
15
  /**
25
16
  * The LivestreamVideoControlButton controls the screenshare stream publish/unpublish while in the livestream for the host.
26
17
  */
@@ -35,64 +26,11 @@ const LivestreamScreenShareToggleButton = () => {
35
26
  livestreamScreenShareToggleButton
36
27
  }
37
28
  } = (0, _ThemeContext.useTheme)();
38
- const call = (0, _videoReactBindings.useCall)();
39
- const {
40
- useLocalParticipant,
41
- useCallSettings
42
- } = (0, _videoReactBindings.useCallStateHooks)();
43
- const callSettings = useCallSettings();
44
- const isScreenSharingEnabledInCall = callSettings?.screensharing.enabled;
45
- const iosScreenShareStartedFromSystem = (0, _useIsIosScreenshareBroadcastStarted.useIsIosScreenshareBroadcastStarted)();
46
- const prevIosScreenShareStartedFromSystem = (0, _usePrevious.usePrevious)(iosScreenShareStartedFromSystem);
47
- const localParticipant = useLocalParticipant();
48
- const hasPublishedScreenShare = localParticipant && (0, _videoClient.hasScreenShare)(localParticipant);
49
-
50
- // listens to iOS screen share broadcast started event from the system
51
- (0, _react.useEffect)(() => {
52
- const run = async () => {
53
- if (_reactNative.Platform.OS !== 'ios') {
54
- return;
55
- }
56
- if (iosScreenShareStartedFromSystem && !prevIosScreenShareStartedFromSystem) {
57
- const media = await navigator.mediaDevices.getDisplayMedia({
58
- // @ts-ignore
59
- deviceId: 'broadcast',
60
- video: true,
61
- audio: true
62
- });
63
- await call?.publishScreenShareStream(media);
64
- } else if (!iosScreenShareStartedFromSystem && prevIosScreenShareStartedFromSystem) {
65
- await call?.stopPublish(_videoClient.SfuModels.TrackType.SCREEN_SHARE);
66
- }
67
- };
68
- run();
69
- }, [call, iosScreenShareStartedFromSystem, prevIosScreenShareStartedFromSystem]);
70
29
  const screenCapturePickerViewiOSRef = _react.default.useRef(null);
71
- const onPress = async () => {
72
- if (!hasPublishedScreenShare) {
73
- if (_reactNative.Platform.OS === 'ios') {
74
- const reactTag = (0, _reactNative.findNodeHandle)(screenCapturePickerViewiOSRef.current);
75
- await _reactNative.NativeModules.ScreenCapturePickerViewManager.show(reactTag);
76
- // After this the iOS screen share broadcast started/stopped event will be triggered
77
- // and the useEffect listener will handle the rest
78
- } else {
79
- try {
80
- const media = await navigator.mediaDevices.getDisplayMedia({
81
- video: true,
82
- audio: true
83
- });
84
- await call?.publishScreenShareStream(media);
85
- } catch (e) {
86
- // ignored.. user didnt allow the screen share in the popup
87
- }
88
- }
89
- } else if (hasPublishedScreenShare) {
90
- await call?.stopPublish(_videoClient.SfuModels.TrackType.SCREEN_SHARE);
91
- }
92
- };
93
- if (!isScreenSharingEnabledInCall || !CanDeviceScreenShare) {
94
- return null;
95
- }
30
+ const {
31
+ onPress,
32
+ hasPublishedScreenShare
33
+ } = (0, _useScreenShareButton.useScreenShareButton)(screenCapturePickerViewiOSRef);
96
34
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
97
35
  onPress: onPress,
98
36
  style: [styles.container, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_ThemeContext","_reactNative","_ScreenShare","_StopScreenShare","_reactNativeWebrtc","_videoClient","_videoReactBindings","_useIsIosScreenshareBroadcastStarted","_usePrevious","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CanDeviceScreenShare","Platform","OS","Number","parseInt","Version","split","LivestreamScreenShareToggleButton","theme","colors","variants","iconSizes","buttonSizes","livestreamScreenShareToggleButton","useTheme","useCall","useLocalParticipant","useCallSettings","useCallStateHooks","callSettings","isScreenSharingEnabledInCall","screensharing","enabled","iosScreenShareStartedFromSystem","useIsIosScreenshareBroadcastStarted","prevIosScreenShareStartedFromSystem","usePrevious","localParticipant","hasPublishedScreenShare","hasScreenShare","useEffect","run","media","navigator","mediaDevices","getDisplayMedia","deviceId","video","audio","publishScreenShareStream","stopPublish","SfuModels","TrackType","SCREEN_SHARE","screenCapturePickerViewiOSRef","React","useRef","onPress","reactTag","findNodeHandle","current","NativeModules","ScreenCapturePickerViewManager","show","createElement","Pressable","style","styles","container","backgroundColor","error","dark_gray","height","xs","width","View","icon","sm","StopScreenShare","color","static_white","ScreenShare","ScreenCapturePickerView","ref","exports","StyleSheet","create","justifyContent","alignItems","marginHorizontal","borderRadius"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_reactNative","_ScreenShare","_StopScreenShare","_reactNativeWebrtc","_useScreenShareButton","e","__esModule","default","LivestreamScreenShareToggleButton","theme","colors","variants","iconSizes","buttonSizes","livestreamScreenShareToggleButton","useTheme","screenCapturePickerViewiOSRef","React","useRef","onPress","hasPublishedScreenShare","useScreenShareButton","createElement","Pressable","style","styles","container","backgroundColor","error","dark_gray","height","xs","width","View","icon","sm","StopScreenShare","color","static_white","ScreenShare","Platform","OS","ScreenCapturePickerView","ref","exports","StyleSheet","create","justifyContent","alignItems","marginHorizontal","borderRadius"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamControls/LivestreamScreenShareToggleButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAA2E,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI3E;AACA;AACA;AACO,MAAMG,iCAAiC,GAAGA,CAAA,KAAM;EACrD,MAAM;IACJC,KAAK,EAAE;MACLC,MAAM;MACNC,QAAQ,EAAE;QAAEC,SAAS;QAAEC;MAAY,CAAC;MACpCC;IACF;EACF,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EAEd,MAAMC,6BAA6B,GAAGC,cAAK,CAACC,MAAM,CAAC,IAAI,CAAC;EAExD,MAAM;IAAEC,OAAO;IAAEC;EAAwB,CAAC,GAAG,IAAAC,0CAAoB,EAC/DL,6BACF,CAAC;EAED,oBACEpB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACtB,YAAA,CAAAuB,SAAS;IACRJ,OAAO,EAAEA,OAAQ;IACjBK,KAAK,EAAE,CACLC,MAAM,CAACC,SAAS,EAChB;MACEC,eAAe,EAAEP,uBAAuB,GACpCV,MAAM,CAACkB,KAAK,GACZlB,MAAM,CAACmB,SAAS;MACpBC,MAAM,EAAEjB,WAAW,CAACkB,EAAE;MACtBC,KAAK,EAAEnB,WAAW,CAACkB;IACrB,CAAC,EACDjB,iCAAiC,CAACY,SAAS;EAC3C,gBAEF9B,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACtB,YAAA,CAAAiC,IAAI;IACHT,KAAK,EAAE,CACLC,MAAM,CAACS,IAAI,EACX;MACEJ,MAAM,EAAElB,SAAS,CAACuB,EAAE;MACpBH,KAAK,EAAEpB,SAAS,CAACuB;IACnB,CAAC,EACDrB,iCAAiC,CAACoB,IAAI;EACtC,GAEDd,uBAAuB,gBACtBxB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACpB,gBAAA,CAAAkC,eAAe;IAACC,KAAK,EAAE3B,MAAM,CAAC4B;EAAa,CAAE,CAAC,gBAE/C1C,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,YAAA,CAAAsC,WAAW;IAACF,KAAK,EAAE3B,MAAM,CAAC4B;EAAa,CAAE,CAExC,CAAC,EACNE,qBAAQ,CAACC,EAAE,KAAK,KAAK,iBACpB7C,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACnB,kBAAA,CAAAuC,uBAAuB;IAACC,GAAG,EAAE3B;EAA8B,CAAE,CAEvD,CAAC;AAEhB,CAAC;AAAC4B,OAAA,CAAApC,iCAAA,GAAAA,iCAAA;AAEF,MAAMiB,MAAM,GAAGoB,uBAAU,CAACC,MAAM,CAAC;EAC/BpB,SAAS,EAAE;IACTqB,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,gBAAgB,EAAE,CAAC;IACnBC,YAAY,EAAE;EAChB,CAAC;EACDhB,IAAI,EAAE,CAAC;AACT,CAAC,CAAC","ignoreList":[]}
@@ -5,17 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.LivestreamPlayer = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _ = require("..");
9
- var _2 = require("../../..");
8
+ var _ViewerLivestream = require("../ViewerLivestream");
10
9
  var _videoClient = require("@stream-io/video-client");
10
+ var _StreamCall = require("../../../providers/StreamCall");
11
+ var _videoReactBindings = require("@stream-io/video-react-bindings");
11
12
  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); }
12
13
  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; }
13
14
  const LivestreamPlayer = ({
14
15
  callType,
15
16
  callId,
16
- ViewerLivestream = _.ViewerLivestream
17
+ ViewerLivestream = _ViewerLivestream.ViewerLivestream
17
18
  }) => {
18
- const client = (0, _2.useStreamVideoClient)();
19
+ const client = (0, _videoReactBindings.useStreamVideoClient)();
19
20
  const [call, setCall] = (0, _react.useState)();
20
21
  (0, _react.useEffect)(() => {
21
22
  if (!client) {
@@ -51,7 +52,7 @@ const LivestreamPlayer = ({
51
52
  if (!call) {
52
53
  return null;
53
54
  }
54
- return /*#__PURE__*/_react.default.createElement(_2.StreamCall, {
55
+ return /*#__PURE__*/_react.default.createElement(_StreamCall.StreamCall, {
55
56
  call: call
56
57
  }, /*#__PURE__*/_react.default.createElement(ViewerLivestream, null));
57
58
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_","_2","_videoClient","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","LivestreamPlayer","callType","callId","ViewerLivestream","DefaultViewerLivestream","client","useStreamVideoClient","setCall","useState","useEffect","myCall","join","catch","logger","getLogger","state","callingState","CallingState","LEFT","leave","undefined","createElement","StreamCall","exports"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_ViewerLivestream","_videoClient","_StreamCall","_videoReactBindings","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","LivestreamPlayer","callType","callId","ViewerLivestream","DefaultViewerLivestream","client","useStreamVideoClient","setCall","useState","useEffect","myCall","join","catch","logger","getLogger","state","callingState","CallingState","LEFT","leave","undefined","createElement","StreamCall","exports"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAAuE,SAAAK,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAkBhE,MAAMW,gBAAgB,GAAGA,CAAC;EAC/BC,QAAQ;EACRC,MAAM;EACNC,gBAAgB,GAAGC;AACE,CAAC,KAAK;EAC3B,MAAMC,MAAM,GAAG,IAAAC,wCAAoB,EAAC,CAAC;EAErC,MAAM,CAACT,IAAI,EAAEU,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAO,CAAC;EAExC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACJ,MAAM,EAAE;MACX;IACF;IACA,MAAMK,MAAM,GAAGL,MAAM,CAACR,IAAI,CAACI,QAAQ,EAAEC,MAAM,CAAC;IAC5CK,OAAO,CAACG,MAAM,CAAC;IACfA,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAE/B,CAAC,IAAK;MACzB,MAAMgC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,kBAAkB,CAAC,CAAC;MAC9CD,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAEhC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAI6B,MAAM,CAACK,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACC,IAAI,EAAE;QACnDR,MAAM,CAACS,KAAK,CAAC,CAAC,CAACP,KAAK,CAAE/B,CAAC,IAAK;UAC1B,MAAMgC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,kBAAkB,CAAC,CAAC;UAC9CD,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAEhC,CAAC,CAAC;QAC3C,CAAC,CAAC;MACJ;MACA0B,OAAO,CAACa,SAAS,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAAClB,MAAM,EAAED,QAAQ,EAAEI,MAAM,CAAC,CAAC;EAE9B,IAAAI,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA,IAAIZ,IAAI,EAAEkB,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACC,IAAI,EAAE;QAClDrB,IAAI,EAAEsB,KAAK,CAAC,CAAC,CAACP,KAAK,CAAE/B,CAAC,IAAK;UACzB,MAAMgC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,kBAAkB,CAAC,CAAC;UAC9CD,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAEhC,CAAC,CAAC;QAC3C,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,EAAE,CAACgB,IAAI,CAAC,CAAC;EAEV,IAAI,CAACA,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,oBACExB,MAAA,CAAAa,OAAA,CAAAmC,aAAA,CAAC3C,WAAA,CAAA4C,UAAU;IAACzB,IAAI,EAAEA;EAAK,gBACrBxB,MAAA,CAAAa,OAAA,CAAAmC,aAAA,CAAClB,gBAAgB,MAAE,CACT,CAAC;AAEjB,CAAC;AAACoB,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -91,4 +91,15 @@ Object.keys(_useApplyDefaultMediaStreamSettings).forEach(function (key) {
91
91
  }
92
92
  });
93
93
  });
94
+ var _useScreenShareButton = require("./useScreenShareButton");
95
+ Object.keys(_useScreenShareButton).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _useScreenShareButton[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _useScreenShareButton[key];
102
+ }
103
+ });
104
+ });
94
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_usePermissionRequest","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_usePermissionNotification","_push","_useAndroidKeepCallAliveEffect","_useIsIosScreenshareBroadcastStarted","_useIsInPiPMode","_useAutoEnterPiPEffect","_useApplyDefaultMediaStreamSettings"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_usePermissionRequest","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_usePermissionNotification","_push","_useAndroidKeepCallAliveEffect","_useIsIosScreenshareBroadcastStarted","_useIsInPiPMode","_useAutoEnterPiPEffect","_useApplyDefaultMediaStreamSettings","_useScreenShareButton"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useScreenShareButton = void 0;
7
+ var _videoClient = require("@stream-io/video-client");
8
+ var _videoReactBindings = require("@stream-io/video-react-bindings");
9
+ var _react = require("react");
10
+ var _reactNative = require("react-native");
11
+ var _hooks = require("../utils/hooks");
12
+ var _useIsIosScreenshareBroadcastStarted = require("./useIsIosScreenshareBroadcastStarted");
13
+ // ios >= 14.0 or android - platform restrictions
14
+ const CanDeviceScreenShare = (_reactNative.Platform.OS === 'ios' &&
15
+ // @ts-ignore
16
+ Number.parseInt(_reactNative.Platform.Version.split('.')[0], 10) >= 14, 10) || _reactNative.Platform.OS === 'android';
17
+ const useScreenShareButton = (screenCapturePickerViewiOSRef, onScreenShareStartedHandler, onScreenShareStoppedHandler, onMissingScreenShareStreamPermission) => {
18
+ const call = (0, _videoReactBindings.useCall)();
19
+ const {
20
+ useLocalParticipant,
21
+ useCallSettings,
22
+ useOwnCapabilities
23
+ } = (0, _videoReactBindings.useCallStateHooks)();
24
+ const callSettings = useCallSettings();
25
+ const ownCapabilities = useOwnCapabilities();
26
+ const hasScreenSharingPermissions = ownCapabilities?.includes(_videoClient.OwnCapability.SCREENSHARE);
27
+ const isScreenSharingEnabledInCall = callSettings?.screensharing.enabled;
28
+ const onScreenShareStartedHandlerRef = (0, _react.useRef)(onScreenShareStartedHandler);
29
+ onScreenShareStartedHandlerRef.current = onScreenShareStartedHandler;
30
+ const onScreenShareStoppedHandlerRef = (0, _react.useRef)(onScreenShareStoppedHandler);
31
+ onScreenShareStoppedHandlerRef.current = onScreenShareStoppedHandler;
32
+ const iosScreenShareStartedFromSystem = (0, _useIsIosScreenshareBroadcastStarted.useIsIosScreenshareBroadcastStarted)();
33
+ const prevIosScreenShareStartedFromSystem = (0, _hooks.usePrevious)(iosScreenShareStartedFromSystem);
34
+ const localParticipant = useLocalParticipant();
35
+ const hasPublishedScreenShare = localParticipant && (0, _videoClient.hasScreenShare)(localParticipant);
36
+
37
+ // listens to iOS screen share broadcast started event from the system
38
+ (0, _react.useEffect)(() => {
39
+ if (_reactNative.Platform.OS !== 'ios') {
40
+ return;
41
+ }
42
+ if (iosScreenShareStartedFromSystem && !prevIosScreenShareStartedFromSystem) {
43
+ onScreenShareStartedHandlerRef.current?.();
44
+ call?.screenShare.enable();
45
+ } else if (!iosScreenShareStartedFromSystem && prevIosScreenShareStartedFromSystem) {
46
+ onScreenShareStoppedHandlerRef.current?.();
47
+ call?.screenShare.disable(true);
48
+ }
49
+ }, [call, iosScreenShareStartedFromSystem, prevIosScreenShareStartedFromSystem]);
50
+ const onPress = async () => {
51
+ if (!hasScreenSharingPermissions) {
52
+ const logger = (0, _videoClient.getLogger)(['useScreenShareButton']);
53
+ logger('info', 'User does not have permissions to stream the screen share media, calling onMissingScreenShareStreamPermission handler if present');
54
+ onMissingScreenShareStreamPermission?.();
55
+ }
56
+ if (!hasPublishedScreenShare) {
57
+ if (_reactNative.Platform.OS === 'ios') {
58
+ const reactTag = (0, _reactNative.findNodeHandle)(screenCapturePickerViewiOSRef.current);
59
+ await _reactNative.NativeModules.ScreenCapturePickerViewManager.show(reactTag);
60
+ // After this the iOS screen share broadcast started/stopped event will be triggered
61
+ // and the useEffect listener will handle the rest
62
+ } else {
63
+ try {
64
+ await call?.screenShare.enable();
65
+ onScreenShareStartedHandler?.();
66
+ } catch (error) {
67
+ // ignored.. user didnt allow the screen share in the popup
68
+ const logger = (0, _videoClient.getLogger)(['useScreenShareButton']);
69
+ logger('info', 'User opted to not give permissions to start a screen share stream', error);
70
+ }
71
+ }
72
+ } else if (hasPublishedScreenShare) {
73
+ onScreenShareStoppedHandler?.();
74
+ await call?.screenShare.disable(true);
75
+ }
76
+ };
77
+ if (!isScreenSharingEnabledInCall || !CanDeviceScreenShare) {
78
+ return {
79
+ onPress: undefined,
80
+ hasPublishedScreenShare: false
81
+ };
82
+ }
83
+ return {
84
+ onPress,
85
+ hasPublishedScreenShare
86
+ };
87
+ };
88
+ exports.useScreenShareButton = useScreenShareButton;
89
+ //# sourceMappingURL=useScreenShareButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_videoClient","require","_videoReactBindings","_react","_reactNative","_hooks","_useIsIosScreenshareBroadcastStarted","CanDeviceScreenShare","Platform","OS","Number","parseInt","Version","split","useScreenShareButton","screenCapturePickerViewiOSRef","onScreenShareStartedHandler","onScreenShareStoppedHandler","onMissingScreenShareStreamPermission","call","useCall","useLocalParticipant","useCallSettings","useOwnCapabilities","useCallStateHooks","callSettings","ownCapabilities","hasScreenSharingPermissions","includes","OwnCapability","SCREENSHARE","isScreenSharingEnabledInCall","screensharing","enabled","onScreenShareStartedHandlerRef","useRef","current","onScreenShareStoppedHandlerRef","iosScreenShareStartedFromSystem","useIsIosScreenshareBroadcastStarted","prevIosScreenShareStartedFromSystem","usePrevious","localParticipant","hasPublishedScreenShare","hasScreenShare","useEffect","screenShare","enable","disable","onPress","logger","getLogger","reactTag","findNodeHandle","NativeModules","ScreenCapturePickerViewManager","show","error","undefined","exports"],"sourceRoot":"../../../src","sources":["hooks/useScreenShareButton.ts"],"mappings":"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","ignoreList":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '0.8.7';
7
+ const version = exports.version = '0.8.8';
8
8
  //# sourceMappingURL=version.js.map
@@ -1,19 +1,11 @@
1
- import React, { useEffect, useRef } from 'react';
2
- import { findNodeHandle, NativeModules, Platform } from 'react-native';
1
+ import React, { useRef } from 'react';
2
+ import { Platform } from 'react-native';
3
3
  import { ScreenCapturePickerView } from '@stream-io/react-native-webrtc';
4
4
  import { ScreenShare } from '../../../icons/ScreenShare';
5
5
  import { StopScreenShare } from '../../../icons/StopScreenShare';
6
6
  import { CallControlsButton } from './CallControlsButton';
7
7
  import { useTheme } from '../../../contexts/ThemeContext';
8
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
9
- import { useIsIosScreenshareBroadcastStarted } from '../../../hooks/useIsIosScreenshareBroadcastStarted';
10
- import { hasScreenShare, SfuModels } from '@stream-io/video-client';
11
- import { usePrevious } from '../../../utils/hooks/usePrevious';
12
-
13
- // ios >= 14.0 or android - platform restrictions
14
- const CanDeviceScreenShare = Platform.OS === 'ios' &&
15
- // @ts-ignore
16
- Number.parseInt(Platform.Version.split('.')[0], 10) >= 14 || Platform.OS === 'android';
8
+ import { useScreenShareButton } from '../../../hooks/useScreenShareButton';
17
9
 
18
10
  /**
19
11
  * The props for the Screen Share button in the Call Controls.
@@ -33,75 +25,13 @@ export const ScreenShareToggleButton = ({
33
25
  screenShareToggleButton
34
26
  }
35
27
  } = useTheme();
36
- const call = useCall();
28
+ const screenCapturePickerViewiOSRef = useRef(null);
37
29
  const {
38
- useLocalParticipant,
39
- useCallSettings
40
- } = useCallStateHooks();
41
- const callSettings = useCallSettings();
42
- const isScreenSharingEnabledInCall = callSettings?.screensharing.enabled;
43
- const isScreenSharingAccessRequestEnabled = callSettings?.screensharing.access_request_enabled;
44
- const onScreenShareStartedHandlerRef = useRef(onScreenShareStartedHandler);
45
- onScreenShareStartedHandlerRef.current = onScreenShareStartedHandler;
46
- const onScreenShareStoppedHandlerRef = useRef(onScreenShareStoppedHandler);
47
- onScreenShareStoppedHandlerRef.current = onScreenShareStoppedHandler;
48
- const iosScreenShareStartedFromSystem = useIsIosScreenshareBroadcastStarted();
49
- const prevIosScreenShareStartedFromSystem = usePrevious(iosScreenShareStartedFromSystem);
50
- const localParticipant = useLocalParticipant();
51
- const hasPublishedScreenShare = localParticipant && hasScreenShare(localParticipant);
52
-
53
- // listens to iOS screen share broadcast started event from the system
54
- useEffect(() => {
55
- const run = async () => {
56
- if (Platform.OS !== 'ios') {
57
- return;
58
- }
59
- if (iosScreenShareStartedFromSystem && !prevIosScreenShareStartedFromSystem) {
60
- onScreenShareStartedHandlerRef.current?.();
61
- const media = await navigator.mediaDevices.getDisplayMedia({
62
- // @ts-ignore
63
- deviceId: 'broadcast',
64
- video: true,
65
- audio: true
66
- });
67
- await call?.publishScreenShareStream(media);
68
- } else if (!iosScreenShareStartedFromSystem && prevIosScreenShareStartedFromSystem) {
69
- onScreenShareStoppedHandlerRef.current?.();
70
- await call?.stopPublish(SfuModels.TrackType.SCREEN_SHARE);
71
- }
72
- };
73
- run();
74
- }, [call, iosScreenShareStartedFromSystem, prevIosScreenShareStartedFromSystem]);
75
- const screenCapturePickerViewiOSRef = React.useRef(null);
76
- const onPress = async () => {
77
- if (!hasPublishedScreenShare) {
78
- if (Platform.OS === 'ios') {
79
- const reactTag = findNodeHandle(screenCapturePickerViewiOSRef.current);
80
- await NativeModules.ScreenCapturePickerViewManager.show(reactTag);
81
- // After this the iOS screen share broadcast started/stopped event will be triggered
82
- // and the useEffect listener will handle the rest
83
- } else {
84
- try {
85
- const media = await navigator.mediaDevices.getDisplayMedia({
86
- video: true,
87
- audio: true
88
- });
89
- onScreenShareStartedHandler?.();
90
- await call?.publishScreenShareStream(media);
91
- } catch (e) {
92
- // ignored.. user didnt allow the screen share in the popup
93
- }
94
- }
95
- } else if (hasPublishedScreenShare) {
96
- onScreenShareStoppedHandler?.();
97
- await call?.stopPublish(SfuModels.TrackType.SCREEN_SHARE);
98
- }
99
- };
100
- if (!isScreenSharingEnabledInCall || !CanDeviceScreenShare) {
101
- return null;
102
- }
30
+ onPress,
31
+ hasPublishedScreenShare
32
+ } = useScreenShareButton(screenCapturePickerViewiOSRef, onScreenShareStartedHandler, onScreenShareStoppedHandler);
33
+ if (!onPress) return null;
103
34
  return /*#__PURE__*/React.createElement(CallControlsButton, {
104
- disabled: !isScreenSharingAccessRequestEnabled,
105
35
  onPress: onPress,
106
36
  color: hasPublishedScreenShare ? colors.error : colors.static_white,
107
37
  style: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","findNodeHandle","NativeModules","Platform","ScreenCapturePickerView","ScreenShare","StopScreenShare","CallControlsButton","useTheme","useCall","useCallStateHooks","useIsIosScreenshareBroadcastStarted","hasScreenShare","SfuModels","usePrevious","CanDeviceScreenShare","OS","Number","parseInt","Version","split","ScreenShareToggleButton","onScreenShareStartedHandler","onScreenShareStoppedHandler","theme","colors","screenShareToggleButton","call","useLocalParticipant","useCallSettings","callSettings","isScreenSharingEnabledInCall","screensharing","enabled","isScreenSharingAccessRequestEnabled","access_request_enabled","onScreenShareStartedHandlerRef","current","onScreenShareStoppedHandlerRef","iosScreenShareStartedFromSystem","prevIosScreenShareStartedFromSystem","localParticipant","hasPublishedScreenShare","run","media","navigator","mediaDevices","getDisplayMedia","deviceId","video","audio","publishScreenShareStream","stopPublish","TrackType","SCREEN_SHARE","screenCapturePickerViewiOSRef","onPress","reactTag","ScreenCapturePickerViewManager","show","e","createElement","disabled","color","error","static_white","style","container","svgContainer","static_black","ref"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/ScreenShareToggleButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","Platform","ScreenCapturePickerView","ScreenShare","StopScreenShare","CallControlsButton","useTheme","useScreenShareButton","ScreenShareToggleButton","onScreenShareStartedHandler","onScreenShareStoppedHandler","theme","colors","screenShareToggleButton","screenCapturePickerViewiOSRef","onPress","hasPublishedScreenShare","createElement","color","error","static_white","style","container","svgContainer","static_black","OS","ref"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/ScreenShareToggleButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,oBAAoB,QAAQ,qCAAqC;;AAE1E;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAAC;EACtCC,2BAA2B;EAC3BC;AAC4B,CAAC,KAAK;EAClC,MAAM;IACJC,KAAK,EAAE;MAAEC,MAAM;MAAEC;IAAwB;EAC3C,CAAC,GAAGP,QAAQ,CAAC,CAAC;EAEd,MAAMQ,6BAA6B,GAAGd,MAAM,CAAC,IAAI,CAAC;EAElD,MAAM;IAAEe,OAAO;IAAEC;EAAwB,CAAC,GAAGT,oBAAoB,CAC/DO,6BAA6B,EAC7BL,2BAA2B,EAC3BC,2BACF,CAAC;EAED,IAAI,CAACK,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACEhB,KAAA,CAAAkB,aAAA,CAACZ,kBAAkB;IACjBU,OAAO,EAAEA,OAAQ;IACjBG,KAAK,EAAEF,uBAAuB,GAAGJ,MAAM,CAACO,KAAK,GAAGP,MAAM,CAACQ,YAAa;IACpEC,KAAK,EAAE;MACLC,SAAS,EAAET,uBAAuB,CAACS,SAAS;MAC5CC,YAAY,EAAEV,uBAAuB,CAACU;IACxC;EAAE,GAEDP,uBAAuB,gBACtBjB,KAAA,CAAAkB,aAAA,CAACb,eAAe;IAACc,KAAK,EAAEN,MAAM,CAACY;EAAa,CAAE,CAAC,gBAE/CzB,KAAA,CAAAkB,aAAA,CAACd,WAAW;IAACe,KAAK,EAAEN,MAAM,CAACY;EAAa,CAAE,CAC3C,EACAvB,QAAQ,CAACwB,EAAE,KAAK,KAAK,iBACpB1B,KAAA,CAAAkB,aAAA,CAACf,uBAAuB;IAACwB,GAAG,EAAEZ;EAA8B,CAAE,CAE9C,CAAC;AAEzB,CAAC","ignoreList":[]}