@stream-io/video-react-native-sdk 1.29.0 → 1.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/commonjs/components/Call/CallContent/CallContent.js +7 -2
- package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js +8 -1
- package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
- package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js +3 -0
- package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
- package/dist/commonjs/utils/internal/registerSDKGlobals.js +12 -0
- package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Call/CallContent/CallContent.js +7 -2
- package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/module/components/Call/CallContent/RTCViewPipIOS.js +8 -1
- package/dist/module/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
- package/dist/module/components/Call/CallContent/RTCViewPipNative.js +3 -0
- package/dist/module/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
- package/dist/module/utils/internal/registerSDKGlobals.js +13 -1
- package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Call/CallContent/CallContent.d.ts +2 -2
- package/dist/typescript/components/Call/CallContent/CallContent.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallContent/RTCViewPipIOS.d.ts +4 -0
- package/dist/typescript/components/Call/CallContent/RTCViewPipIOS.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts +9 -6
- package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts.map +1 -1
- package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/ios/PictureInPicture/StreamAVPictureInPictureVideoCallViewController.swift +8 -0
- package/ios/PictureInPicture/StreamPictureInPictureController.swift +8 -0
- package/ios/PictureInPicture/StreamPictureInPictureVideoRenderer.swift +10 -0
- package/ios/RTCViewPip.swift +6 -0
- package/ios/RTCViewPipManager.mm +1 -0
- package/ios/StreamVideoReactNative.m +20 -0
- package/package.json +3 -3
- package/src/components/Call/CallContent/CallContent.tsx +6 -1
- package/src/components/Call/CallContent/RTCViewPipIOS.tsx +18 -2
- package/src/components/Call/CallContent/RTCViewPipNative.tsx +4 -7
- package/src/utils/internal/registerSDKGlobals.ts +21 -2
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.29.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.29.0...@stream-io/video-react-native-sdk-1.29.1) (2026-02-10)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
- `@stream-io/video-client` updated to version `1.42.1`
|
|
10
|
+
- `@stream-io/video-react-bindings` updated to version `1.13.5`
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- respect device permissions when detecting speech while muted ([#2115](https://github.com/GetStream/stream-video-js/issues/2115)) ([fe98768](https://github.com/GetStream/stream-video-js/commit/fe98768a9bf695fc5355905939884594c11ac2b9)), closes [#2110](https://github.com/GetStream/stream-video-js/issues/2110)
|
|
15
|
+
- **rn:** expose `mirror` prop for Picture-in-Picture ([#2113](https://github.com/GetStream/stream-video-js/issues/2113)) ([da72e48](https://github.com/GetStream/stream-video-js/commit/da72e4812a0177a1059aeecc54dd88894b99a610)), closes [#2106](https://github.com/GetStream/stream-video-js/issues/2106)
|
|
16
|
+
|
|
5
17
|
## [1.29.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.28.3...@stream-io/video-react-native-sdk-1.29.0) (2026-02-06)
|
|
6
18
|
|
|
7
19
|
### Dependency Updates
|
|
@@ -32,6 +32,7 @@ const CallContent = ({
|
|
|
32
32
|
ParticipantVideoFallback,
|
|
33
33
|
ParticipantView,
|
|
34
34
|
VideoRenderer,
|
|
35
|
+
mirror,
|
|
35
36
|
layout = 'grid',
|
|
36
37
|
landscape = false,
|
|
37
38
|
supportedReactions,
|
|
@@ -113,6 +114,7 @@ const CallContent = ({
|
|
|
113
114
|
landscape,
|
|
114
115
|
showLocalParticipant: isRemoteParticipantInFloatingView,
|
|
115
116
|
ParticipantView,
|
|
117
|
+
mirror,
|
|
116
118
|
CallParticipantsList,
|
|
117
119
|
supportedReactions
|
|
118
120
|
};
|
|
@@ -120,6 +122,7 @@ const CallContent = ({
|
|
|
120
122
|
...participantViewProps,
|
|
121
123
|
landscape,
|
|
122
124
|
ParticipantView,
|
|
125
|
+
mirror,
|
|
123
126
|
CallParticipantsList,
|
|
124
127
|
ScreenShareOverlay,
|
|
125
128
|
supportedReactions
|
|
@@ -128,7 +131,8 @@ const CallContent = ({
|
|
|
128
131
|
flexDirection: landscape ? 'row' : 'column'
|
|
129
132
|
};
|
|
130
133
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !disablePictureInPicture && /*#__PURE__*/_react.default.createElement(_RTCViewPipIOS.RTCViewPipIOS, {
|
|
131
|
-
includeLocalParticipantVideo: iOSPiPIncludeLocalParticipantVideo
|
|
134
|
+
includeLocalParticipantVideo: iOSPiPIncludeLocalParticipantVideo,
|
|
135
|
+
mirror: mirror
|
|
132
136
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
133
137
|
style: [styles.container, landscapeStyles, callContent.container]
|
|
134
138
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
@@ -143,7 +147,8 @@ const CallContent = ({
|
|
|
143
147
|
participant: isRemoteParticipantInFloatingView ? remoteParticipants[0] : localParticipant,
|
|
144
148
|
onPressHandler: handleFloatingViewParticipantSwitch,
|
|
145
149
|
supportedReactions: supportedReactions,
|
|
146
|
-
objectFit: "cover"
|
|
150
|
+
objectFit: "cover",
|
|
151
|
+
mirror: mirror
|
|
147
152
|
}, participantViewProps))), showSpotlightLayout ? /*#__PURE__*/_react.default.createElement(_CallLayout.CallParticipantsSpotlight, callParticipantsSpotlightProps) : /*#__PURE__*/_react.default.createElement(_CallLayout.CallParticipantsGrid, callParticipantsGridProps)), !isInPiPMode && CallControls && /*#__PURE__*/_react.default.createElement(CallControls, {
|
|
148
153
|
onHangupCallHandler: onHangupCallHandler,
|
|
149
154
|
landscape: landscape
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CallLayout","_CallControls","_videoReactBindings","_videoClient","_constants","_hooks","_Participant","_contexts","_hooks2","_ScreenShareOverlay","_RTCViewPipIOS","_PrevLibDetection","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","CallContent","onHangupCallHandler","CallParticipantsList","CallControls","DefaultCallControls","FloatingParticipantView","DefaultFloatingParticipantView","ScreenShareOverlay","DefaultScreenShareOverlay","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","initialInCallManagerAudioMode","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","useState","styles","useStyles","theme","callContent","useTheme","useCall","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","useCallStateHooks","useAutoEnterPiPEffect","_remoteParticipants","remoteParticipants","useDebouncedValue","localParticipant","isInPiPMode","useIsInPiPMode","hasScreenShare","showSpotlightLayout","useEffect","Platform","OS","unsubFunc","on","videoLoggerSystem","getLogger","debug","NativeModules","StreamVideoReactNative","exitPipMode","subscription","state","callingState$","subscribe","CallingState","LEFT","unsubscribe","showFloatingView","isRemoteParticipantInFloatingView","incallManagerModeRef","useRef","prevInCallManager","getRNInCallManagerLibNoThrow","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","RTCViewPipIOS","includeLocalParticipantVideo","View","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","participant","onPressHandler","objectFit","CallParticipantsSpotlight","CallParticipantsGrid","exports","useMemo","StyleSheet","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","Z_INDEX","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_CallLayout","_CallControls","_videoReactBindings","_videoClient","_constants","_hooks","_Participant","_contexts","_hooks2","_ScreenShareOverlay","_RTCViewPipIOS","_PrevLibDetection","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","CallContent","onHangupCallHandler","CallParticipantsList","CallControls","DefaultCallControls","FloatingParticipantView","DefaultFloatingParticipantView","ScreenShareOverlay","DefaultScreenShareOverlay","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","mirror","layout","landscape","supportedReactions","initialInCallManagerAudioMode","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","useState","styles","useStyles","theme","callContent","useTheme","useCall","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","useCallStateHooks","useAutoEnterPiPEffect","_remoteParticipants","remoteParticipants","useDebouncedValue","localParticipant","isInPiPMode","useIsInPiPMode","hasScreenShare","showSpotlightLayout","useEffect","Platform","OS","unsubFunc","on","videoLoggerSystem","getLogger","debug","NativeModules","StreamVideoReactNative","exitPipMode","subscription","state","callingState$","subscribe","CallingState","LEFT","unsubscribe","showFloatingView","isRemoteParticipantInFloatingView","incallManagerModeRef","useRef","prevInCallManager","getRNInCallManagerLibNoThrow","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","RTCViewPipIOS","includeLocalParticipantVideo","View","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","participant","onPressHandler","objectFit","CallParticipantsSpotlight","CallParticipantsGrid","exports","useMemo","StyleSheet","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","Z_INDEX","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,aAAA,GAAAH,OAAA;AAKA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAMA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AAKA,IAAAS,SAAA,GAAAT,OAAA;AAKA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AAIA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,iBAAA,GAAAb,OAAA;AAA8F,SAAAD,wBAAAe,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAjB,uBAAA,YAAAA,CAAAe,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAjB,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAC,CAAA,GAAAqB,SAAA,CAAAtB,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAe,QAAA,CAAAK,KAAA,OAAAF,SAAA;AA+DvF,MAAMG,WAAW,GAAGA,CAAC;EAC1BC,mBAAmB;EACnBC,oBAAoB;EACpBC,YAAY,GAAGC,0BAAmB;EAClCC,uBAAuB,GAAGC,oCAA8B;EACxDC,kBAAkB,GAAGC,sCAAyB;EAC9CC,gBAAgB;EAChBC,kCAAkC;EAClCC,mBAAmB;EACnBC,wBAAwB;EACxBC,eAAe;EACfC,aAAa;EACbC,MAAM;EACNC,MAAM,GAAG,MAAM;EACfC,SAAS,GAAG,KAAK;EACjBC,kBAAkB;EAClBC,6BAA6B,GAAG,OAAO;EACvCC,kCAAkC;EAClCC;AACgB,CAAC,KAAK;EACtB,MAAM,CACJC,mCAAmC,EACnCC,sCAAsC,CACvC,GAAG,IAAAC,eAAQ,EAAU,KAAK,CAAC;EAC5B,MAAMC,MAAM,GAAGC,SAAS,CAAC,CAAC;EAC1B,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAY;EACvB,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACd,MAAMvC,IAAI,GAAG,IAAAwC,2BAAO,EAAC,CAAC;EACtB,MAAM;IACJC,wBAAwB;IACxBC,qBAAqB;IACrBC;EACF,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EAEvB,IAAAC,6BAAqB,EAACd,uBAAuB,CAAC;EAE9C,MAAMe,mBAAmB,GAAGJ,qBAAqB,CAAC,CAAC;EACnD,MAAMK,kBAAkB,GAAG,IAAAC,wBAAiB,EAACF,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;EACxE,MAAMG,gBAAgB,GAAGN,mBAAmB,CAAC,CAAC;EAC9C,MAAMO,WAAW,GAAG,IAAAC,sBAAc,EAAC,CAAC;EACpC,MAAMC,cAAc,GAAGX,wBAAwB,CAAC,CAAC;EACjD,MAAMY,mBAAmB,GAAGD,cAAc,IAAI1B,MAAM,KAAK,WAAW;EAEpE,IAAA4B,gBAAS,EAAC,MAAM;IACd,IAAIJ,WAAW,IAAIK,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC5C,MAAMC,SAAS,GAAGzD,IAAI,EAAE0D,EAAE,CAAC,YAAY,EAAE,MAAM;QAC7CC,8BAAiB,CACdC,SAAS,CAAC,aAAa,CAAC,CACxBC,KAAK,CAAC,oCAAoC,CAAC;QAC9CC,0BAAa,CAACC,sBAAsB,CAACC,WAAW,CAAC,CAAC;MACpD,CAAC,CAAC;MACF,MAAMC,YAAY,GAAGjE,IAAI,EAAEkE,KAAK,CAACC,aAAa,CAACC,SAAS,CAAEF,KAAK,IAAK;QAClE,IAAIA,KAAK,KAAKG,yBAAY,CAACC,IAAI,EAAE;UAC/BX,8BAAiB,CACdC,SAAS,CAAC,aAAa,CAAC,CACxBC,KAAK,CAAC,4CAA4C,CAAC;UACtDC,0BAAa,CAACC,sBAAsB,CAACC,WAAW,CAAC,CAAC;QACpD;MACF,CAAC,CAAC;MACF,OAAO,MAAM;QACXP,SAAS,GAAG,CAAC;QACbQ,YAAY,EAAEM,WAAW,CAAC,CAAC;MAC7B,CAAC;IACH;EACF,CAAC,EAAE,CAACrB,WAAW,EAAElD,IAAI,CAAC,CAAC;EAEvB,MAAMwE,gBAAgB,GACpB,CAACnB,mBAAmB,IACpB,CAACH,WAAW,IACZH,kBAAkB,CAACvC,MAAM,GAAG,CAAC,IAC7BuC,kBAAkB,CAACvC,MAAM,GAAG,CAAC;EAE/B,MAAMiE,iCAAiC,GACrCD,gBAAgB,IAChBxC,mCAAmC,IACnCe,kBAAkB,CAACvC,MAAM,KAAK,CAAC;;EAEjC;AACF;AACA;EACE,MAAMkE,oBAAoB,GAAG,IAAAC,aAAM,EAAC9C,6BAA6B,CAAC;EAClE,IAAAyB,gBAAS,EAAC,MAAM;IACd,MAAMsB,iBAAiB,GAAG,IAAAC,8CAA4B,EAAC,CAAC;IACxD,IAAID,iBAAiB,EAAE;MACrBA,iBAAiB,CAACE,KAAK,CAAC;QAAEC,KAAK,EAAEL,oBAAoB,CAACM;MAAQ,CAAC,CAAC;MAChE,OAAO,MAAM;QACXJ,iBAAiB,CAACK,IAAI,CAAC,CAAC;MAC1B,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,mCAAmC,GAAGA,CAAA,KAAM;IAChD,IAAInC,kBAAkB,CAACvC,MAAM,KAAK,CAAC,EAAE;MACnC;IACF;IACAyB,sCAAsC,CAAEkD,SAAS,IAAK,CAACA,SAAS,CAAC;EACnE,CAAC;EAED,MAAMC,oBAAmD,GAAG;IAC1DjE,gBAAgB,EAAE+B,WAAW,GAAG,IAAI,GAAG/B,gBAAgB;IACvDC,kCAAkC,EAAE8B,WAAW,GAC3C,IAAI,GACJ9B,kCAAkC;IACtCC,mBAAmB;IACnBC,wBAAwB;IACxBE;EACF,CAAC;EAED,MAAM6D,yBAAoD,GAAG;IAC3D,GAAGD,oBAAoB;IACvBzD,SAAS;IACT2D,oBAAoB,EAAEb,iCAAiC;IACvDlD,eAAe;IACfE,MAAM;IACNb,oBAAoB;IACpBgB;EACF,CAAC;EAED,MAAM2D,8BAA8D,GAAG;IACrE,GAAGH,oBAAoB;IACvBzD,SAAS;IACTJ,eAAe;IACfE,MAAM;IACNb,oBAAoB;IACpBK,kBAAkB;IAClBW;EACF,CAAC;EAED,MAAM4D,eAA0B,GAAG;IACjCC,aAAa,EAAE9D,SAAS,GAAG,KAAK,GAAG;EACrC,CAAC;EAED,oBACE1D,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAAAzH,MAAA,CAAA0B,OAAA,CAAAgG,QAAA,QACG,CAAC5D,uBAAuB,iBACvB9D,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAAC3G,cAAA,CAAA6G,aAAa;IACZC,4BAA4B,EAAE/D,kCAAmC;IACjEL,MAAM,EAAEA;EAAO,CAChB,CACF,eACDxD,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAACtH,YAAA,CAAA0H,IAAI;IAACC,KAAK,EAAE,CAAC5D,MAAM,CAAC6D,SAAS,EAAER,eAAe,EAAElD,WAAW,CAAC0D,SAAS;EAAE,gBACtE/H,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAACtH,YAAA,CAAA0H,IAAI;IAACC,KAAK,EAAE,CAAC5D,MAAM,CAAC8D,OAAO,EAAE3D,WAAW,CAAC4D,yBAAyB;EAAE,gBACnEjI,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAACtH,YAAA,CAAA0H,IAAI;IACHC,KAAK,EAAE,CAAC5D,MAAM,CAACgE,IAAI,EAAE7D,WAAW,CAAC8D,YAAY;IAC7C;IACA;IAAA;IACAC,aAAa,EAAC;EAAU,GAEvB7B,gBAAgB,IAAIzD,uBAAuB,iBAC1C9C,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAAC3E,uBAAuB,EAAAX,QAAA;IACtBkG,WAAW,EACT7B,iCAAiC,GAC7B1B,kBAAkB,CAAC,CAAC,CAAC,GACrBE,gBACL;IACDsD,cAAc,EAAErB,mCAAoC;IACpDtD,kBAAkB,EAAEA,kBAAmB;IACvC4E,SAAS,EAAC,OAAO;IACjB/E,MAAM,EAAEA;EAAO,GACX2D,oBAAoB,CACzB,CAEC,CAAC,EACN/B,mBAAmB,gBAClBpF,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAACrH,WAAA,CAAAoI,yBAAyB,EAAKlB,8BAAiC,CAAC,gBAEjEtH,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAACrH,WAAA,CAAAqI,oBAAoB,EAAKrB,yBAA4B,CAEpD,CAAC,EAEN,CAACnC,WAAW,IAAIrC,YAAY,iBAC3B5C,MAAA,CAAA0B,OAAA,CAAA+F,aAAA,CAAC7E,YAAY;IACXF,mBAAmB,EAAEA,mBAAoB;IACzCgB,SAAS,EAAEA;EAAU,CACtB,CAEC,CACN,CAAC;AAEP,CAAC;AAACgF,OAAA,CAAAjG,WAAA,GAAAA,WAAA;AAEF,MAAM0B,SAAS,GAAGA,CAAA,KAAM;EACtB,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAE,kBAAQ,EAAC,CAAC;EAC5B,OAAO,IAAAqE,cAAO,EACZ,MACEC,uBAAU,CAACC,MAAM,CAAC;IAChBd,SAAS,EAAE;MACTe,IAAI,EAAE,CAAC;MACPC,aAAa,EAAE3E,KAAK,CAAC4E,QAAQ,CAACC,MAAM,CAACC,MAAM;MAC3CC,WAAW,EAAE/E,KAAK,CAAC4E,QAAQ,CAACC,MAAM,CAACG,IAAI;MACvCC,YAAY,EAAEjF,KAAK,CAAC4E,QAAQ,CAACC,MAAM,CAACK,KAAK;MACzCC,UAAU,EAAEnF,KAAK,CAAC4E,QAAQ,CAACC,MAAM,CAACO,GAAG;MACrCC,eAAe,EAAErF,KAAK,CAACsF,MAAM,CAACC;IAChC,CAAC;IACD3B,OAAO,EAAE;MAAEc,IAAI,EAAE;IAAE,CAAC;IACpBZ,IAAI,EAAE;MACJ,GAAGU,uBAAU,CAACgB,kBAAkB;MAChCC,MAAM,EAAEC,kBAAO,CAACC;IAClB;EACF,CAAC,CAAC,EACJ,CAAC3F,KAAK,CACR,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -17,15 +17,20 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
17
17
|
const RTCViewPipIOS = exports.RTCViewPipIOS = /*#__PURE__*/_react.default.memo(props => {
|
|
18
18
|
const {
|
|
19
19
|
includeLocalParticipantVideo,
|
|
20
|
+
mirror: mirrorOverride,
|
|
20
21
|
onPiPChange
|
|
21
22
|
} = props;
|
|
22
23
|
const call = (0, _videoReactBindings.useCall)();
|
|
23
24
|
const {
|
|
24
|
-
useParticipants
|
|
25
|
+
useParticipants,
|
|
26
|
+
useCameraState
|
|
25
27
|
} = (0, _videoReactBindings.useCallStateHooks)();
|
|
26
28
|
const _allParticipants = useParticipants({
|
|
27
29
|
sortBy: _videoClient.speakerLayoutSortPreset
|
|
28
30
|
});
|
|
31
|
+
const {
|
|
32
|
+
direction
|
|
33
|
+
} = useCameraState();
|
|
29
34
|
const allParticipants = (0, _hooks.useDebouncedValue)(_allParticipants, 300); // we debounce the participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
|
|
30
35
|
|
|
31
36
|
const [dominantSpeaker, dominantSpeaker2] = allParticipants.filter(participant => includeLocalParticipantVideo ? true : !participant.isLocalParticipant);
|
|
@@ -81,6 +86,7 @@ const RTCViewPipIOS = exports.RTCViewPipIOS = /*#__PURE__*/_react.default.memo(p
|
|
|
81
86
|
} = participantInSpotlight || {};
|
|
82
87
|
const isScreenSharing = participantInSpotlight ? (0, _videoClient.hasScreenShare)(participantInSpotlight) : false;
|
|
83
88
|
const videoStreamToRender = isScreenSharing ? screenShareStream : videoStream;
|
|
89
|
+
const mirror = isScreenSharing ? false : mirrorOverride !== undefined ? mirrorOverride : !!participantInSpotlight?.isLocalParticipant && direction === 'front';
|
|
84
90
|
const streamURL = (0, _react.useMemo)(() => {
|
|
85
91
|
if (!videoStreamToRender) {
|
|
86
92
|
return undefined;
|
|
@@ -93,6 +99,7 @@ const RTCViewPipIOS = exports.RTCViewPipIOS = /*#__PURE__*/_react.default.memo(p
|
|
|
93
99
|
};
|
|
94
100
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_RTCViewPipNative.RTCViewPipNative, {
|
|
95
101
|
streamURL: streamURL,
|
|
102
|
+
mirror: mirror,
|
|
96
103
|
ref: nativeRef,
|
|
97
104
|
onPiPChange: handlePiPChange
|
|
98
105
|
}), participantInSpotlight && /*#__PURE__*/_react.default.createElement(DimensionsUpdatedRenderless, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoClient","require","_videoReactBindings","_react","_interopRequireWildcard","_reactNative","_RTCViewPipNative","_hooks","_shouldDisableIOSLocalVideoOnBackground","_useTrackDimensions","_rxSubjects","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RTCViewPipIOS","exports","React","memo","props","includeLocalParticipantVideo","onPiPChange","useCall","useParticipants","useCallStateHooks","_allParticipants","sortBy","speakerLayoutSortPreset","allParticipants","useDebouncedValue","dominantSpeaker","dominantSpeaker2","filter","participant","isLocalParticipant","participantInSpotlight","useEffect","shouldDisableIOSLocalVideoOnBackgroundRef","current","nativeRef","useRef","callClosedInvokedOnce","onCallClosed","node","findNodeHandle","onNativeCallClosed","unsubFunc","on","videoLoggerSystem","getLogger","debug","subscription","state","callingState$","subscribe","CallingState","LEFT","unsubscribe","onDimensionsUpdated","useCallback","width","height","onNativeDimensionsUpdated","videoStream","screenShareStream","isScreenSharing","hasScreenShare","videoStreamToRender","
|
|
1
|
+
{"version":3,"names":["_videoClient","require","_videoReactBindings","_react","_interopRequireWildcard","_reactNative","_RTCViewPipNative","_hooks","_shouldDisableIOSLocalVideoOnBackground","_useTrackDimensions","_rxSubjects","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RTCViewPipIOS","exports","React","memo","props","includeLocalParticipantVideo","mirror","mirrorOverride","onPiPChange","useCall","useParticipants","useCameraState","useCallStateHooks","_allParticipants","sortBy","speakerLayoutSortPreset","direction","allParticipants","useDebouncedValue","dominantSpeaker","dominantSpeaker2","filter","participant","isLocalParticipant","participantInSpotlight","useEffect","shouldDisableIOSLocalVideoOnBackgroundRef","current","nativeRef","useRef","callClosedInvokedOnce","onCallClosed","node","findNodeHandle","onNativeCallClosed","unsubFunc","on","videoLoggerSystem","getLogger","debug","subscription","state","callingState$","subscribe","CallingState","LEFT","unsubscribe","onDimensionsUpdated","useCallback","width","height","onNativeDimensionsUpdated","videoStream","screenShareStream","isScreenSharing","hasScreenShare","videoStreamToRender","undefined","streamURL","useMemo","toURL","handlePiPChange","event","isInPiPMode$","next","nativeEvent","active","createElement","Fragment","RTCViewPipNative","ref","DimensionsUpdatedRenderless","trackType","key","useTrackDimensions","displayName"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipIOS.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,9 @@ const RTCViewPipNative = exports.RTCViewPipNative = /*#__PURE__*/_react.default.
|
|
|
40
40
|
streamURL: props.streamURL
|
|
41
41
|
// eslint-disable-next-line react/prop-types
|
|
42
42
|
,
|
|
43
|
+
mirror: props.mirror
|
|
44
|
+
// eslint-disable-next-line react/prop-types
|
|
45
|
+
,
|
|
43
46
|
onPiPChange: props.onPiPChange
|
|
44
47
|
// @ts-expect-error - types issue
|
|
45
48
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_videoClient","e","__esModule","default","COMPONENT_NAME","NativeComponent","requireNativeComponent","onNativeCallClosed","reactTag","videoLoggerSystem","getLogger","debug","commandId","UIManager","getViewManagerConfig","Commands","onCallClosed","dispatchViewManagerCommand","onNativeDimensionsUpdated","width","height","setPreferredContentSize","RTCViewPipNative","exports","React","memo","forwardRef","props","ref","Platform","OS","createElement","style","StyleSheet","absoluteFill","pointerEvents","streamURL","onPiPChange"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipNative.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,YAAA,GAAAF,OAAA;AAA4D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D,MAAMG,cAAc,GAAG,YAAY;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_videoClient","e","__esModule","default","COMPONENT_NAME","NativeComponent","requireNativeComponent","onNativeCallClosed","reactTag","videoLoggerSystem","getLogger","debug","commandId","UIManager","getViewManagerConfig","Commands","onCallClosed","dispatchViewManagerCommand","onNativeDimensionsUpdated","width","height","setPreferredContentSize","RTCViewPipNative","exports","React","memo","forwardRef","props","ref","Platform","OS","createElement","style","StyleSheet","absoluteFill","pointerEvents","streamURL","mirror","onPiPChange"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipNative.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,YAAA,GAAAF,OAAA;AAA4D,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D,MAAMG,cAAc,GAAG,YAAY;AAYnC,MAAMC,eAAqD,GACzD,IAAAC,mCAAsB,EAACF,cAAc,CAAC;AAEjC,SAASG,kBAAkBA,CAACC,QAAgB,EAAE;EACnDC,8BAAiB,CAACC,SAAS,CAAC,kBAAkB,CAAC,CAACC,KAAK,CAAC,oBAAoB,CAAC;EAC3E,MAAMC,SAAS,GACbC,sBAAS,CAACC,oBAAoB,CAACV,cAAc,CAAC,CAACW,QAAQ,CAACC,YAAY;EACtE,IAAI,CAACJ,SAAS,EAAE;EAChBC,sBAAS,CAACI,0BAA0B,CAACT,QAAQ,EAAEI,SAAS,EAAE,EAAE,CAAC;AAC/D;AAEO,SAASM,yBAAyBA,CACvCV,QAAgB,EAChBW,KAAa,EACbC,MAAc,EACd;EACAX,8BAAiB,CACdC,SAAS,CAAC,kBAAkB,CAAC,CAC7BC,KAAK,CAAC,2BAA2B,EAAE;IAClCQ,KAAK;IACLC;EACF,CAAC,CAAC;EACJ,MAAMR,SAAS,GACbC,sBAAS,CAACC,oBAAoB,CAACV,cAAc,CAAC,CAACW,QAAQ,CACpDM,uBAAuB;EAC5B,IAAI,CAACT,SAAS,EAAE;EAChBC,sBAAS,CAACI,0BAA0B,CAACT,QAAQ,EAAEI,SAAS,EAAE,CAACO,KAAK,EAAEC,MAAM,CAAC,CAAC;AAC5E;;AAEA;AACA;AACO,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAGE,cAAK,CAACC,IAAI,cACxCD,cAAK,CAACE,UAAU,CAAwC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACtE,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;EAEtC,oBACElC,MAAA,CAAAO,OAAA,CAAA4B,aAAA,CAAC1B,eAAe;IACd2B,KAAK,EAAEC,uBAAU,CAACC,YAAa;IAC/BC,aAAa,EAAE;IACf;IAAA;IACAC,SAAS,EAAET,KAAK,CAACS;IACjB;IAAA;IACAC,MAAM,EAAEV,KAAK,CAACU;IACd;IAAA;IACAC,WAAW,EAAEX,KAAK,CAACW;IACnB;IAAA;IACAV,GAAG,EAAEA;EAAI,CACV,CAAC;AAEN,CAAC,CACH,CAAC","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.registerSDKGlobals = registerSDKGlobals;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
const StreamInCallManagerNativeModule = _reactNative.NativeModules.StreamInCallManager;
|
|
9
|
+
const StreamVideoReactNativeModule = _reactNative.NativeModules.StreamVideoReactNative;
|
|
9
10
|
const streamRNVideoSDKGlobals = {
|
|
10
11
|
callManager: {
|
|
11
12
|
setup: ({
|
|
@@ -20,6 +21,17 @@ const streamRNVideoSDKGlobals = {
|
|
|
20
21
|
stop: () => {
|
|
21
22
|
StreamInCallManagerNativeModule.stop();
|
|
22
23
|
}
|
|
24
|
+
},
|
|
25
|
+
permissions: {
|
|
26
|
+
check: async permission => {
|
|
27
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
28
|
+
const nativeAndroidPermission = permission === 'camera' ? _reactNative.PermissionsAndroid.PERMISSIONS.CAMERA : _reactNative.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
29
|
+
return _reactNative.PermissionsAndroid.check(nativeAndroidPermission);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// use our own service on iOS
|
|
33
|
+
return Boolean(await StreamVideoReactNativeModule.checkPermission?.(permission));
|
|
34
|
+
}
|
|
23
35
|
}
|
|
24
36
|
};
|
|
25
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","StreamInCallManagerNativeModule","NativeModules","StreamInCallManager","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,+BAA+B,GAAGC,0BAAa,CAACC,mBAAmB;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","StreamInCallManagerNativeModule","NativeModules","StreamInCallManager","StreamVideoReactNativeModule","StreamVideoReactNative","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","permissions","check","permission","Platform","OS","nativeAndroidPermission","PermissionsAndroid","PERMISSIONS","CAMERA","RECORD_AUDIO","Boolean","checkPermission","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,+BAA+B,GAAGC,0BAAa,CAACC,mBAAmB;AACzE,MAAMC,4BAA4B,GAAGF,0BAAa,CAACG,sBAElD;AAED,MAAMC,uBAAgD,GAAG;EACvDC,WAAW,EAAE;IACXC,KAAK,EAAEA,CAAC;MAAEC;IAAc,CAAC,KAAK;MAC5BR,+BAA+B,CAACS,iCAAiC,CAC/DD,aACF,CAAC;MACDR,+BAA+B,CAACO,KAAK,CAAC,CAAC;IACzC,CAAC;IACDG,KAAK,EAAEA,CAAA,KAAM;MACXV,+BAA+B,CAACU,KAAK,CAAC,CAAC;IACzC,CAAC;IACDC,IAAI,EAAEA,CAAA,KAAM;MACVX,+BAA+B,CAACW,IAAI,CAAC,CAAC;IACxC;EACF,CAAC;EACDC,WAAW,EAAE;IACXC,KAAK,EAAE,MAAOC,UAAU,IAAK;MAC3B,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7B,MAAMC,uBAAuB,GAC3BH,UAAU,KAAK,QAAQ,GACnBI,+BAAkB,CAACC,WAAW,CAACC,MAAM,GACrCF,+BAAkB,CAACC,WAAW,CAACE,YAAY;QACjD,OAAOH,+BAAkB,CAACL,KAAK,CAACI,uBAAuB,CAAC;MAC1D;;MAEA;MACA,OAAOK,OAAO,CACZ,MAAMnB,4BAA4B,CAACoB,eAAe,GAAGT,UAAU,CACjE,CAAC;IACH;EACF;AACF,CAAC;;AAED;AACA;AACA;AACO,SAASU,kBAAkBA,CAAA,EAAG;EACnC,IAAI,CAACC,MAAM,CAACC,gBAAgB,EAAE;IAC5BD,MAAM,CAACC,gBAAgB,GAAGrB,uBAAuB;EACnD;AACF","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -25,6 +25,7 @@ export const CallContent = ({
|
|
|
25
25
|
ParticipantVideoFallback,
|
|
26
26
|
ParticipantView,
|
|
27
27
|
VideoRenderer,
|
|
28
|
+
mirror,
|
|
28
29
|
layout = 'grid',
|
|
29
30
|
landscape = false,
|
|
30
31
|
supportedReactions,
|
|
@@ -106,6 +107,7 @@ export const CallContent = ({
|
|
|
106
107
|
landscape,
|
|
107
108
|
showLocalParticipant: isRemoteParticipantInFloatingView,
|
|
108
109
|
ParticipantView,
|
|
110
|
+
mirror,
|
|
109
111
|
CallParticipantsList,
|
|
110
112
|
supportedReactions
|
|
111
113
|
};
|
|
@@ -113,6 +115,7 @@ export const CallContent = ({
|
|
|
113
115
|
...participantViewProps,
|
|
114
116
|
landscape,
|
|
115
117
|
ParticipantView,
|
|
118
|
+
mirror,
|
|
116
119
|
CallParticipantsList,
|
|
117
120
|
ScreenShareOverlay,
|
|
118
121
|
supportedReactions
|
|
@@ -121,7 +124,8 @@ export const CallContent = ({
|
|
|
121
124
|
flexDirection: landscape ? 'row' : 'column'
|
|
122
125
|
};
|
|
123
126
|
return /*#__PURE__*/React.createElement(React.Fragment, null, !disablePictureInPicture && /*#__PURE__*/React.createElement(RTCViewPipIOS, {
|
|
124
|
-
includeLocalParticipantVideo: iOSPiPIncludeLocalParticipantVideo
|
|
127
|
+
includeLocalParticipantVideo: iOSPiPIncludeLocalParticipantVideo,
|
|
128
|
+
mirror: mirror
|
|
125
129
|
}), /*#__PURE__*/React.createElement(View, {
|
|
126
130
|
style: [styles.container, landscapeStyles, callContent.container]
|
|
127
131
|
}, /*#__PURE__*/React.createElement(View, {
|
|
@@ -136,7 +140,8 @@ export const CallContent = ({
|
|
|
136
140
|
participant: isRemoteParticipantInFloatingView ? remoteParticipants[0] : localParticipant,
|
|
137
141
|
onPressHandler: handleFloatingViewParticipantSwitch,
|
|
138
142
|
supportedReactions: supportedReactions,
|
|
139
|
-
objectFit: "cover"
|
|
143
|
+
objectFit: "cover",
|
|
144
|
+
mirror: mirror
|
|
140
145
|
}, participantViewProps))), showSpotlightLayout ? /*#__PURE__*/React.createElement(CallParticipantsSpotlight, callParticipantsSpotlightProps) : /*#__PURE__*/React.createElement(CallParticipantsGrid, callParticipantsGridProps)), !isInPiPMode && CallControls && /*#__PURE__*/React.createElement(CallControls, {
|
|
141
146
|
onHangupCallHandler: onHangupCallHandler,
|
|
142
147
|
landscape: landscape
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useRef","useState","NativeModules","Platform","StyleSheet","View","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCall","useCallStateHooks","CallingState","videoLoggerSystem","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","useAutoEnterPiPEffect","useIsInPiPMode","ScreenShareOverlay","DefaultScreenShareOverlay","RTCViewPipIOS","getRNInCallManagerLibNoThrow","CallContent","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","initialInCallManagerAudioMode","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","styles","useStyles","theme","callContent","call","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","_remoteParticipants","remoteParticipants","localParticipant","isInPiPMode","hasScreenShare","showSpotlightLayout","OS","unsubFunc","on","getLogger","debug","StreamVideoReactNative","exitPipMode","subscription","state","callingState$","subscribe","LEFT","unsubscribe","showFloatingView","length","isRemoteParticipantInFloatingView","incallManagerModeRef","prevInCallManager","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","objectFit","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnE,SACEC,aAAa,EACbC,QAAQ,EACRC,UAAU,EACVC,IAAI,QAEC,cAAc;AACrB,SACEC,oBAAoB,EAEpBC,yBAAyB,QAEpB,eAAe;AACtB,SAEEC,YAAY,IAAIC,mBAAmB,QAE9B,iBAAiB;AACxB,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SACEC,YAAY,EAEZC,iBAAiB,QACZ,yBAAyB;AAEhC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SACEC,uBAAuB,IAAIC,8BAA8B,QAGpD,mBAAmB;AAC1B,SAASC,QAAQ,QAAQ,mBAAmB;AAK5C,SAASC,qBAAqB,EAAEC,cAAc,QAAQ,gBAAgB;AACtE,SACEC,kBAAkB,IAAIC,yBAAyB,QAE1C,kCAAkC;AACzC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,4BAA4B,QAAQ,gDAAgD;AA+D7F,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC,mBAAmB;EACnBC,oBAAoB;EACpBnB,YAAY,GAAGC,mBAAmB;EAClCO,uBAAuB,GAAGC,8BAA8B;EACxDI,kBAAkB,GAAGC,yBAAyB;EAC9CM,gBAAgB;EAChBC,kCAAkC;EAClCC,mBAAmB;EACnBC,wBAAwB;EACxBC,eAAe;EACfC,aAAa;EACbC,MAAM,GAAG,MAAM;EACfC,SAAS,GAAG,KAAK;EACjBC,kBAAkB;EAClBC,6BAA6B,GAAG,OAAO;EACvCC,kCAAkC;EAClCC;AACgB,CAAC,KAAK;EACtB,MAAM,CACJC,mCAAmC,EACnCC,sCAAsC,CACvC,
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useRef","useState","NativeModules","Platform","StyleSheet","View","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCall","useCallStateHooks","CallingState","videoLoggerSystem","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","useAutoEnterPiPEffect","useIsInPiPMode","ScreenShareOverlay","DefaultScreenShareOverlay","RTCViewPipIOS","getRNInCallManagerLibNoThrow","CallContent","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","mirror","layout","landscape","supportedReactions","initialInCallManagerAudioMode","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","styles","useStyles","theme","callContent","call","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","_remoteParticipants","remoteParticipants","localParticipant","isInPiPMode","hasScreenShare","showSpotlightLayout","OS","unsubFunc","on","getLogger","debug","StreamVideoReactNative","exitPipMode","subscription","state","callingState$","subscribe","LEFT","unsubscribe","showFloatingView","length","isRemoteParticipantInFloatingView","incallManagerModeRef","prevInCallManager","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","objectFit","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,15 +10,20 @@ import { isInPiPMode$ } from '../../../utils/internal/rxSubjects';
|
|
|
10
10
|
export const RTCViewPipIOS = /*#__PURE__*/React.memo(props => {
|
|
11
11
|
const {
|
|
12
12
|
includeLocalParticipantVideo,
|
|
13
|
+
mirror: mirrorOverride,
|
|
13
14
|
onPiPChange
|
|
14
15
|
} = props;
|
|
15
16
|
const call = useCall();
|
|
16
17
|
const {
|
|
17
|
-
useParticipants
|
|
18
|
+
useParticipants,
|
|
19
|
+
useCameraState
|
|
18
20
|
} = useCallStateHooks();
|
|
19
21
|
const _allParticipants = useParticipants({
|
|
20
22
|
sortBy: speakerLayoutSortPreset
|
|
21
23
|
});
|
|
24
|
+
const {
|
|
25
|
+
direction
|
|
26
|
+
} = useCameraState();
|
|
22
27
|
const allParticipants = useDebouncedValue(_allParticipants, 300); // we debounce the participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
|
|
23
28
|
|
|
24
29
|
const [dominantSpeaker, dominantSpeaker2] = allParticipants.filter(participant => includeLocalParticipantVideo ? true : !participant.isLocalParticipant);
|
|
@@ -74,6 +79,7 @@ export const RTCViewPipIOS = /*#__PURE__*/React.memo(props => {
|
|
|
74
79
|
} = participantInSpotlight || {};
|
|
75
80
|
const isScreenSharing = participantInSpotlight ? hasScreenShare(participantInSpotlight) : false;
|
|
76
81
|
const videoStreamToRender = isScreenSharing ? screenShareStream : videoStream;
|
|
82
|
+
const mirror = isScreenSharing ? false : mirrorOverride !== undefined ? mirrorOverride : !!participantInSpotlight?.isLocalParticipant && direction === 'front';
|
|
77
83
|
const streamURL = useMemo(() => {
|
|
78
84
|
if (!videoStreamToRender) {
|
|
79
85
|
return undefined;
|
|
@@ -86,6 +92,7 @@ export const RTCViewPipIOS = /*#__PURE__*/React.memo(props => {
|
|
|
86
92
|
};
|
|
87
93
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RTCViewPipNative, {
|
|
88
94
|
streamURL: streamURL,
|
|
95
|
+
mirror: mirror,
|
|
89
96
|
ref: nativeRef,
|
|
90
97
|
onPiPChange: handlePiPChange
|
|
91
98
|
}), participantInSpotlight && /*#__PURE__*/React.createElement(DimensionsUpdatedRenderless, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CallingState","hasScreenShare","speakerLayoutSortPreset","videoLoggerSystem","useCall","useCallStateHooks","React","useEffect","useMemo","useCallback","findNodeHandle","onNativeCallClosed","onNativeDimensionsUpdated","RTCViewPipNative","useDebouncedValue","shouldDisableIOSLocalVideoOnBackgroundRef","useTrackDimensions","isInPiPMode$","RTCViewPipIOS","memo","props","includeLocalParticipantVideo","onPiPChange","call","useParticipants","_allParticipants","sortBy","allParticipants","dominantSpeaker","dominantSpeaker2","filter","participant","isLocalParticipant","participantInSpotlight","current","nativeRef","useRef","callClosedInvokedOnce","onCallClosed","node","unsubFunc","on","getLogger","debug","subscription","state","callingState$","subscribe","LEFT","unsubscribe","onDimensionsUpdated","width","height","videoStream","screenShareStream","isScreenSharing","videoStreamToRender","
|
|
1
|
+
{"version":3,"names":["CallingState","hasScreenShare","speakerLayoutSortPreset","videoLoggerSystem","useCall","useCallStateHooks","React","useEffect","useMemo","useCallback","findNodeHandle","onNativeCallClosed","onNativeDimensionsUpdated","RTCViewPipNative","useDebouncedValue","shouldDisableIOSLocalVideoOnBackgroundRef","useTrackDimensions","isInPiPMode$","RTCViewPipIOS","memo","props","includeLocalParticipantVideo","mirror","mirrorOverride","onPiPChange","call","useParticipants","useCameraState","_allParticipants","sortBy","direction","allParticipants","dominantSpeaker","dominantSpeaker2","filter","participant","isLocalParticipant","participantInSpotlight","current","nativeRef","useRef","callClosedInvokedOnce","onCallClosed","node","unsubFunc","on","getLogger","debug","subscription","state","callingState$","subscribe","LEFT","unsubscribe","onDimensionsUpdated","width","height","videoStream","screenShareStream","isScreenSharing","videoStreamToRender","undefined","streamURL","toURL","handlePiPChange","event","next","nativeEvent","active","createElement","Fragment","ref","DimensionsUpdatedRenderless","trackType","key","displayName"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipIOS.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,6 +31,9 @@ export const RTCViewPipNative = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwa
|
|
|
31
31
|
streamURL: props.streamURL
|
|
32
32
|
// eslint-disable-next-line react/prop-types
|
|
33
33
|
,
|
|
34
|
+
mirror: props.mirror
|
|
35
|
+
// eslint-disable-next-line react/prop-types
|
|
36
|
+
,
|
|
34
37
|
onPiPChange: props.onPiPChange
|
|
35
38
|
// @ts-expect-error - types issue
|
|
36
39
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","requireNativeComponent","StyleSheet","UIManager","videoLoggerSystem","COMPONENT_NAME","NativeComponent","onNativeCallClosed","reactTag","getLogger","debug","commandId","getViewManagerConfig","Commands","onCallClosed","dispatchViewManagerCommand","onNativeDimensionsUpdated","width","height","setPreferredContentSize","RTCViewPipNative","memo","forwardRef","props","ref","OS","createElement","style","absoluteFill","pointerEvents","streamURL","onPiPChange"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipNative.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,QAAQ,EACRC,sBAAsB,EACtBC,UAAU,EACVC,SAAS,QACJ,cAAc;AACrB,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3D,MAAMC,cAAc,GAAG,YAAY;
|
|
1
|
+
{"version":3,"names":["React","Platform","requireNativeComponent","StyleSheet","UIManager","videoLoggerSystem","COMPONENT_NAME","NativeComponent","onNativeCallClosed","reactTag","getLogger","debug","commandId","getViewManagerConfig","Commands","onCallClosed","dispatchViewManagerCommand","onNativeDimensionsUpdated","width","height","setPreferredContentSize","RTCViewPipNative","memo","forwardRef","props","ref","OS","createElement","style","absoluteFill","pointerEvents","streamURL","mirror","onPiPChange"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/RTCViewPipNative.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,QAAQ,EACRC,sBAAsB,EACtBC,UAAU,EACVC,SAAS,QACJ,cAAc;AACrB,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3D,MAAMC,cAAc,GAAG,YAAY;AAYnC,MAAMC,eAAqD,GACzDL,sBAAsB,CAACI,cAAc,CAAC;AAExC,OAAO,SAASE,kBAAkBA,CAACC,QAAgB,EAAE;EACnDJ,iBAAiB,CAACK,SAAS,CAAC,kBAAkB,CAAC,CAACC,KAAK,CAAC,oBAAoB,CAAC;EAC3E,MAAMC,SAAS,GACbR,SAAS,CAACS,oBAAoB,CAACP,cAAc,CAAC,CAACQ,QAAQ,CAACC,YAAY;EACtE,IAAI,CAACH,SAAS,EAAE;EAChBR,SAAS,CAACY,0BAA0B,CAACP,QAAQ,EAAEG,SAAS,EAAE,EAAE,CAAC;AAC/D;AAEA,OAAO,SAASK,yBAAyBA,CACvCR,QAAgB,EAChBS,KAAa,EACbC,MAAc,EACd;EACAd,iBAAiB,CACdK,SAAS,CAAC,kBAAkB,CAAC,CAC7BC,KAAK,CAAC,2BAA2B,EAAE;IAClCO,KAAK;IACLC;EACF,CAAC,CAAC;EACJ,MAAMP,SAAS,GACbR,SAAS,CAACS,oBAAoB,CAACP,cAAc,CAAC,CAACQ,QAAQ,CACpDM,uBAAuB;EAC5B,IAAI,CAACR,SAAS,EAAE;EAChBR,SAAS,CAACY,0BAA0B,CAACP,QAAQ,EAAEG,SAAS,EAAE,CAACM,KAAK,EAAEC,MAAM,CAAC,CAAC;AAC5E;;AAEA;AACA;AACA,OAAO,MAAME,gBAAgB,gBAAGrB,KAAK,CAACsB,IAAI,cACxCtB,KAAK,CAACuB,UAAU,CAAwC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACtE,IAAIxB,QAAQ,CAACyB,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;EAEtC,oBACE1B,KAAA,CAAA2B,aAAA,CAACpB,eAAe;IACdqB,KAAK,EAAEzB,UAAU,CAAC0B,YAAa;IAC/BC,aAAa,EAAE;IACf;IAAA;IACAC,SAAS,EAAEP,KAAK,CAACO;IACjB;IAAA;IACAC,MAAM,EAAER,KAAK,CAACQ;IACd;IAAA;IACAC,WAAW,EAAET,KAAK,CAACS;IACnB;IAAA;IACAR,GAAG,EAAEA;EAAI,CACV,CAAC;AAEN,CAAC,CACH,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { NativeModules } from 'react-native';
|
|
1
|
+
import { NativeModules, PermissionsAndroid, Platform } from 'react-native';
|
|
2
2
|
const StreamInCallManagerNativeModule = NativeModules.StreamInCallManager;
|
|
3
|
+
const StreamVideoReactNativeModule = NativeModules.StreamVideoReactNative;
|
|
3
4
|
const streamRNVideoSDKGlobals = {
|
|
4
5
|
callManager: {
|
|
5
6
|
setup: ({
|
|
@@ -14,6 +15,17 @@ const streamRNVideoSDKGlobals = {
|
|
|
14
15
|
stop: () => {
|
|
15
16
|
StreamInCallManagerNativeModule.stop();
|
|
16
17
|
}
|
|
18
|
+
},
|
|
19
|
+
permissions: {
|
|
20
|
+
check: async permission => {
|
|
21
|
+
if (Platform.OS === 'android') {
|
|
22
|
+
const nativeAndroidPermission = permission === 'camera' ? PermissionsAndroid.PERMISSIONS.CAMERA : PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
23
|
+
return PermissionsAndroid.check(nativeAndroidPermission);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// use our own service on iOS
|
|
27
|
+
return Boolean(await StreamVideoReactNativeModule.checkPermission?.(permission));
|
|
28
|
+
}
|
|
17
29
|
}
|
|
18
30
|
};
|
|
19
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","StreamInCallManagerNativeModule","StreamInCallManager","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":"AACA,SAASA,aAAa,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeModules","PermissionsAndroid","Platform","StreamInCallManagerNativeModule","StreamInCallManager","StreamVideoReactNativeModule","StreamVideoReactNative","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","permissions","check","permission","OS","nativeAndroidPermission","PERMISSIONS","CAMERA","RECORD_AUDIO","Boolean","checkPermission","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":"AACA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,MAAMC,+BAA+B,GAAGH,aAAa,CAACI,mBAAmB;AACzE,MAAMC,4BAA4B,GAAGL,aAAa,CAACM,sBAElD;AAED,MAAMC,uBAAgD,GAAG;EACvDC,WAAW,EAAE;IACXC,KAAK,EAAEA,CAAC;MAAEC;IAAc,CAAC,KAAK;MAC5BP,+BAA+B,CAACQ,iCAAiC,CAC/DD,aACF,CAAC;MACDP,+BAA+B,CAACM,KAAK,CAAC,CAAC;IACzC,CAAC;IACDG,KAAK,EAAEA,CAAA,KAAM;MACXT,+BAA+B,CAACS,KAAK,CAAC,CAAC;IACzC,CAAC;IACDC,IAAI,EAAEA,CAAA,KAAM;MACVV,+BAA+B,CAACU,IAAI,CAAC,CAAC;IACxC;EACF,CAAC;EACDC,WAAW,EAAE;IACXC,KAAK,EAAE,MAAOC,UAAU,IAAK;MAC3B,IAAId,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAE;QAC7B,MAAMC,uBAAuB,GAC3BF,UAAU,KAAK,QAAQ,GACnBf,kBAAkB,CAACkB,WAAW,CAACC,MAAM,GACrCnB,kBAAkB,CAACkB,WAAW,CAACE,YAAY;QACjD,OAAOpB,kBAAkB,CAACc,KAAK,CAACG,uBAAuB,CAAC;MAC1D;;MAEA;MACA,OAAOI,OAAO,CACZ,MAAMjB,4BAA4B,CAACkB,eAAe,GAAGP,UAAU,CACjE,CAAC;IACH;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASQ,kBAAkBA,CAAA,EAAG;EACnC,IAAI,CAACC,MAAM,CAACC,gBAAgB,EAAE;IAC5BD,MAAM,CAACC,gBAAgB,GAAGnB,uBAAuB;EACnD;AACF","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '1.29.
|
|
1
|
+
export const version = '1.29.1';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -7,7 +7,7 @@ import { type ScreenShareOverlayProps } from '../../utility/ScreenShareOverlay';
|
|
|
7
7
|
export type StreamReactionType = StreamReaction & {
|
|
8
8
|
icon: string;
|
|
9
9
|
};
|
|
10
|
-
type CallContentComponentProps = ParticipantViewComponentProps & Pick<CallParticipantsListComponentProps, 'ParticipantView'> & {
|
|
10
|
+
type CallContentComponentProps = ParticipantViewComponentProps & Pick<CallParticipantsListComponentProps, 'ParticipantView' | 'mirror'> & {
|
|
11
11
|
/**
|
|
12
12
|
* Component to customize the CallControls component.
|
|
13
13
|
*/
|
|
@@ -50,6 +50,6 @@ export type CallContentProps = Pick<HangUpCallButtonProps, 'onHangupCallHandler'
|
|
|
50
50
|
*/
|
|
51
51
|
initialInCallManagerAudioMode?: 'video' | 'audio';
|
|
52
52
|
};
|
|
53
|
-
export declare const CallContent: ({ onHangupCallHandler, CallParticipantsList, CallControls, FloatingParticipantView, ScreenShareOverlay, ParticipantLabel, ParticipantNetworkQualityIndicator, ParticipantReaction, ParticipantVideoFallback, ParticipantView, VideoRenderer, layout, landscape, supportedReactions, initialInCallManagerAudioMode, iOSPiPIncludeLocalParticipantVideo, disablePictureInPicture, }: CallContentProps) => React.JSX.Element;
|
|
53
|
+
export declare const CallContent: ({ onHangupCallHandler, CallParticipantsList, CallControls, FloatingParticipantView, ScreenShareOverlay, ParticipantLabel, ParticipantNetworkQualityIndicator, ParticipantReaction, ParticipantVideoFallback, ParticipantView, VideoRenderer, mirror, layout, landscape, supportedReactions, initialInCallManagerAudioMode, iOSPiPIncludeLocalParticipantVideo, disablePictureInPicture, }: CallContentProps) => React.JSX.Element;
|
|
54
54
|
export {};
|
|
55
55
|
//# sourceMappingURL=CallContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/CallContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAI1C,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,yBAAyB,GAAG,6BAA6B,GAC5D,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"CallContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/CallContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAI1C,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,yBAAyB,GAAG,6BAA6B,GAC5D,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,GAAG;IACvE;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC5D;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC;IACnF;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAC7E;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,EACrB,qBAAqB,CACtB,GACC,yBAAyB,GAAG;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;OAEG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAK1C,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;OAOG;IACH,6BAA6B,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACnD,CAAC;AAEJ,eAAO,MAAM,WAAW,GAAI,2XAmBzB,gBAAgB,sBAiKlB,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
type Props = {
|
|
3
3
|
includeLocalParticipantVideo?: boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Optional video mirroring override.
|
|
6
|
+
*/
|
|
7
|
+
mirror?: boolean;
|
|
4
8
|
/**
|
|
5
9
|
* Callback that is called when the PiP mode state changes.
|
|
6
10
|
* @param active - true when PiP started, false when PiP stopped
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTCViewPipIOS.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/RTCViewPipIOS.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAY/D,KAAK,KAAK,GAAG;IACX,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,aAAa,oCAAsB,KAAK,
|
|
1
|
+
{"version":3,"file":"RTCViewPipIOS.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/RTCViewPipIOS.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAY/D,KAAK,KAAK,GAAG;IACX,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,aAAa,oCAAsB,KAAK,uBAyHnD,CAAC"}
|
|
@@ -2,14 +2,17 @@ import React from 'react';
|
|
|
2
2
|
export type PiPChangeEvent = {
|
|
3
3
|
active: boolean;
|
|
4
4
|
};
|
|
5
|
-
|
|
6
|
-
export declare function onNativeDimensionsUpdated(reactTag: number, width: number, height: number): void;
|
|
7
|
-
/** Wrapper for the native view
|
|
8
|
-
* meant to stay private and not exposed */
|
|
9
|
-
export declare const RTCViewPipNative: React.NamedExoticComponent<{
|
|
5
|
+
type RTCViewPipNativeProps = {
|
|
10
6
|
streamURL?: string;
|
|
7
|
+
mirror?: boolean;
|
|
11
8
|
onPiPChange?: (event: {
|
|
12
9
|
nativeEvent: PiPChangeEvent;
|
|
13
10
|
}) => void;
|
|
14
|
-
}
|
|
11
|
+
};
|
|
12
|
+
export declare function onNativeCallClosed(reactTag: number): void;
|
|
13
|
+
export declare function onNativeDimensionsUpdated(reactTag: number, width: number, height: number): void;
|
|
14
|
+
/** Wrapper for the native view
|
|
15
|
+
* meant to stay private and not exposed */
|
|
16
|
+
export declare const RTCViewPipNative: React.NamedExoticComponent<RTCViewPipNativeProps & React.RefAttributes<React.Ref<any>>>;
|
|
17
|
+
export {};
|
|
15
18
|
//# sourceMappingURL=RTCViewPipNative.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTCViewPipNative.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/RTCViewPipNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"RTCViewPipNative.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/RTCViewPipNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;CAChE,CAAC;AAKF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,QAMlD;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,QAaf;AAED;2CAC2C;AAC3C,eAAO,MAAM,gBAAgB,yFAmB5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerSDKGlobals.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/registerSDKGlobals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerSDKGlobals.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/registerSDKGlobals.ts"],"names":[],"mappings":"AA4CA,wBAAgB,kBAAkB,SAIjC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.29.
|
|
1
|
+
export declare const version = "1.29.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -18,6 +18,9 @@ protocol StreamAVPictureInPictureViewControlling: AnyObject {
|
|
|
18
18
|
/// - Important: This should **always** be greater to ``CGSize.zero``. If not, iOS throws
|
|
19
19
|
/// a cryptic error with content `PGPegasus code:-1003`
|
|
20
20
|
var preferredContentSize: CGSize { get set }
|
|
21
|
+
|
|
22
|
+
/// Controls whether the rendered video should be mirrored.
|
|
23
|
+
var isMirrored: Bool { get set }
|
|
21
24
|
|
|
22
25
|
/// The layer that renders the incoming frames from WebRTC.
|
|
23
26
|
var displayLayer: CALayer { get }
|
|
@@ -36,6 +39,11 @@ final class StreamAVPictureInPictureVideoCallViewController: AVPictureInPictureV
|
|
|
36
39
|
get { contentView.track }
|
|
37
40
|
set { contentView.track = newValue }
|
|
38
41
|
}
|
|
42
|
+
|
|
43
|
+
var isMirrored: Bool {
|
|
44
|
+
get { contentView.isMirrored }
|
|
45
|
+
set { contentView.isMirrored = newValue }
|
|
46
|
+
}
|
|
39
47
|
|
|
40
48
|
var displayLayer: CALayer { contentView.displayLayer }
|
|
41
49
|
|
|
@@ -34,6 +34,13 @@ import Foundation
|
|
|
34
34
|
|
|
35
35
|
/// A closure called when the picture-in-picture state changes.
|
|
36
36
|
public var onPiPStateChange: ((Bool) -> Void)?
|
|
37
|
+
|
|
38
|
+
/// Indicates whether the active track should be mirrored.
|
|
39
|
+
public var isMirrored: Bool = false {
|
|
40
|
+
didSet {
|
|
41
|
+
contentViewController?.isMirrored = isMirrored
|
|
42
|
+
}
|
|
43
|
+
}
|
|
37
44
|
|
|
38
45
|
/// A boolean value indicating whether the picture-in-picture session should start automatically when the app enters background.
|
|
39
46
|
public var canStartPictureInPictureAutomaticallyFromInline: Bool
|
|
@@ -80,6 +87,7 @@ import Foundation
|
|
|
80
87
|
}()
|
|
81
88
|
// contentViewController?.preferredContentSize = .init(width: 400, height: 320)
|
|
82
89
|
self.contentViewController = contentViewController
|
|
90
|
+
self.contentViewController?.isMirrored = isMirrored
|
|
83
91
|
self.canStartPictureInPictureAutomaticallyFromInline = canStartPictureInPictureAutomaticallyFromInline
|
|
84
92
|
super.init()
|
|
85
93
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import Combine
|
|
6
6
|
import Foundation
|
|
7
|
+
import UIKit
|
|
7
8
|
|
|
8
9
|
/// A view that can be used to render an instance of `RTCVideoTrack`
|
|
9
10
|
final class StreamPictureInPictureVideoRenderer: UIView, RTCVideoRenderer {
|
|
@@ -23,6 +24,15 @@ final class StreamPictureInPictureVideoRenderer: UIView, RTCVideoRenderer {
|
|
|
23
24
|
/// The layer that renders the track's frames.
|
|
24
25
|
var displayLayer: CALayer { contentView.layer }
|
|
25
26
|
|
|
27
|
+
/// Indicates whether the rendered video should be mirrored.
|
|
28
|
+
var isMirrored: Bool = false {
|
|
29
|
+
didSet {
|
|
30
|
+
contentView.transform = isMirrored
|
|
31
|
+
? CGAffineTransform(scaleX: -1, y: 1)
|
|
32
|
+
: .identity
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
26
36
|
/// A policy defining how the Picture in Picture window should be resized in order to better fit
|
|
27
37
|
/// the rendering frame size.
|
|
28
38
|
var pictureInPictureWindowSizePolicy: PictureInPictureWindowSizePolicy
|
package/ios/RTCViewPip.swift
CHANGED
|
@@ -15,6 +15,11 @@ class RTCViewPip: UIView {
|
|
|
15
15
|
private var webRtcModule: WebRTCModule?
|
|
16
16
|
|
|
17
17
|
@objc var onPiPChange: RCTBubblingEventBlock?
|
|
18
|
+
@objc public var mirror: Bool = false {
|
|
19
|
+
didSet {
|
|
20
|
+
self.pictureInPictureController?.isMirrored = mirror
|
|
21
|
+
}
|
|
22
|
+
}
|
|
18
23
|
|
|
19
24
|
private func setupNotificationObserver() {
|
|
20
25
|
NotificationCenter.default.addObserver(
|
|
@@ -90,6 +95,7 @@ class RTCViewPip: UIView {
|
|
|
90
95
|
setupNotificationObserver()
|
|
91
96
|
DispatchQueue.main.async {
|
|
92
97
|
self.pictureInPictureController?.sourceView = self
|
|
98
|
+
self.pictureInPictureController?.isMirrored = self.mirror
|
|
93
99
|
// Set up PiP state change callback
|
|
94
100
|
self.pictureInPictureController?.onPiPStateChange = { [weak self] isActive in
|
|
95
101
|
self?.sendPiPChangeEvent(isActive: isActive)
|
package/ios/RTCViewPipManager.mm
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
@interface RCT_EXTERN_MODULE(RTCViewPipManager, RCTViewManager)
|
|
12
12
|
|
|
13
13
|
RCT_EXPORT_VIEW_PROPERTY(streamURL, NSString)
|
|
14
|
+
RCT_EXPORT_VIEW_PROPERTY(mirror, BOOL)
|
|
14
15
|
RCT_EXPORT_VIEW_PROPERTY(onPiPChange, RCTBubblingEventBlock)
|
|
15
16
|
RCT_EXTERN_METHOD(onCallClosed:(nonnull NSNumber*) reactTag)
|
|
16
17
|
RCT_EXTERN_METHOD(setPreferredContentSize:(nonnull NSNumber *)reactTag width:(CGFloat)w height:(CGFloat)h);
|
|
@@ -353,6 +353,26 @@ RCT_EXPORT_METHOD(getBatteryState:(RCTPromiseResolveBlock)resolve
|
|
|
353
353
|
});
|
|
354
354
|
}
|
|
355
355
|
|
|
356
|
+
RCT_EXPORT_METHOD(checkPermission:(NSString *)permission
|
|
357
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
358
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
359
|
+
NSString *normalizedPermission = [permission lowercaseString];
|
|
360
|
+
AVMediaType mediaType = nil;
|
|
361
|
+
|
|
362
|
+
if ([normalizedPermission isEqualToString:@"camera"]) {
|
|
363
|
+
mediaType = AVMediaTypeVideo;
|
|
364
|
+
} else if ([normalizedPermission isEqualToString:@"microphone"]) {
|
|
365
|
+
mediaType = AVMediaTypeAudio;
|
|
366
|
+
} else {
|
|
367
|
+
NSString *errorMessage = [NSString stringWithFormat:@"Unsupported media device kind: %@", permission];
|
|
368
|
+
reject(@"UNSUPPORTED_MEDIA_DEVICE_KIND", errorMessage, nil);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
|
|
373
|
+
resolve(@(status == AVAuthorizationStatusAuthorized));
|
|
374
|
+
}
|
|
375
|
+
|
|
356
376
|
-(void)batteryStateDidChange:(NSNotification *)notification {
|
|
357
377
|
UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState;
|
|
358
378
|
BOOL isCharging = (batteryState == UIDeviceBatteryStateCharging ||
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "1.29.
|
|
3
|
+
"version": "1.29.1",
|
|
4
4
|
"description": "Stream Video SDK for React Native",
|
|
5
5
|
"author": "https://getstream.io",
|
|
6
6
|
"homepage": "https://getstream.io/video/docs/react-native/",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"!**/.*"
|
|
51
51
|
],
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@stream-io/video-client": "1.42.
|
|
54
|
-
"@stream-io/video-react-bindings": "1.13.
|
|
53
|
+
"@stream-io/video-client": "1.42.1",
|
|
54
|
+
"@stream-io/video-react-bindings": "1.13.5",
|
|
55
55
|
"intl-pluralrules": "2.0.1",
|
|
56
56
|
"lodash.merge": "^4.6.2",
|
|
57
57
|
"react-native-url-polyfill": "^3.0.0",
|
|
@@ -49,7 +49,7 @@ export type StreamReactionType = StreamReaction & {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
type CallContentComponentProps = ParticipantViewComponentProps &
|
|
52
|
-
Pick<CallParticipantsListComponentProps, 'ParticipantView'> & {
|
|
52
|
+
Pick<CallParticipantsListComponentProps, 'ParticipantView' | 'mirror'> & {
|
|
53
53
|
/**
|
|
54
54
|
* Component to customize the CallControls component.
|
|
55
55
|
*/
|
|
@@ -117,6 +117,7 @@ export const CallContent = ({
|
|
|
117
117
|
ParticipantVideoFallback,
|
|
118
118
|
ParticipantView,
|
|
119
119
|
VideoRenderer,
|
|
120
|
+
mirror,
|
|
120
121
|
layout = 'grid',
|
|
121
122
|
landscape = false,
|
|
122
123
|
supportedReactions,
|
|
@@ -218,6 +219,7 @@ export const CallContent = ({
|
|
|
218
219
|
landscape,
|
|
219
220
|
showLocalParticipant: isRemoteParticipantInFloatingView,
|
|
220
221
|
ParticipantView,
|
|
222
|
+
mirror,
|
|
221
223
|
CallParticipantsList,
|
|
222
224
|
supportedReactions,
|
|
223
225
|
};
|
|
@@ -226,6 +228,7 @@ export const CallContent = ({
|
|
|
226
228
|
...participantViewProps,
|
|
227
229
|
landscape,
|
|
228
230
|
ParticipantView,
|
|
231
|
+
mirror,
|
|
229
232
|
CallParticipantsList,
|
|
230
233
|
ScreenShareOverlay,
|
|
231
234
|
supportedReactions,
|
|
@@ -240,6 +243,7 @@ export const CallContent = ({
|
|
|
240
243
|
{!disablePictureInPicture && (
|
|
241
244
|
<RTCViewPipIOS
|
|
242
245
|
includeLocalParticipantVideo={iOSPiPIncludeLocalParticipantVideo}
|
|
246
|
+
mirror={mirror}
|
|
243
247
|
/>
|
|
244
248
|
)}
|
|
245
249
|
<View style={[styles.container, landscapeStyles, callContent.container]}>
|
|
@@ -260,6 +264,7 @@ export const CallContent = ({
|
|
|
260
264
|
onPressHandler={handleFloatingViewParticipantSwitch}
|
|
261
265
|
supportedReactions={supportedReactions}
|
|
262
266
|
objectFit="cover"
|
|
267
|
+
mirror={mirror}
|
|
263
268
|
{...participantViewProps}
|
|
264
269
|
/>
|
|
265
270
|
)}
|
|
@@ -22,6 +22,10 @@ import { isInPiPMode$ } from '../../../utils/internal/rxSubjects';
|
|
|
22
22
|
|
|
23
23
|
type Props = {
|
|
24
24
|
includeLocalParticipantVideo?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Optional video mirroring override.
|
|
27
|
+
*/
|
|
28
|
+
mirror?: boolean;
|
|
25
29
|
/**
|
|
26
30
|
* Callback that is called when the PiP mode state changes.
|
|
27
31
|
* @param active - true when PiP started, false when PiP stopped
|
|
@@ -30,12 +34,17 @@ type Props = {
|
|
|
30
34
|
};
|
|
31
35
|
|
|
32
36
|
export const RTCViewPipIOS = React.memo((props: Props) => {
|
|
33
|
-
const {
|
|
37
|
+
const {
|
|
38
|
+
includeLocalParticipantVideo,
|
|
39
|
+
mirror: mirrorOverride,
|
|
40
|
+
onPiPChange,
|
|
41
|
+
} = props;
|
|
34
42
|
const call = useCall();
|
|
35
|
-
const { useParticipants } = useCallStateHooks();
|
|
43
|
+
const { useParticipants, useCameraState } = useCallStateHooks();
|
|
36
44
|
const _allParticipants = useParticipants({
|
|
37
45
|
sortBy: speakerLayoutSortPreset,
|
|
38
46
|
});
|
|
47
|
+
const { direction } = useCameraState();
|
|
39
48
|
const allParticipants = useDebouncedValue(_allParticipants, 300); // we debounce the participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
|
|
40
49
|
|
|
41
50
|
const [dominantSpeaker, dominantSpeaker2] = allParticipants.filter(
|
|
@@ -109,6 +118,12 @@ export const RTCViewPipIOS = React.memo((props: Props) => {
|
|
|
109
118
|
? screenShareStream
|
|
110
119
|
: videoStream) as unknown as MediaStream | undefined;
|
|
111
120
|
|
|
121
|
+
const mirror = isScreenSharing
|
|
122
|
+
? false
|
|
123
|
+
: mirrorOverride !== undefined
|
|
124
|
+
? mirrorOverride
|
|
125
|
+
: !!participantInSpotlight?.isLocalParticipant && direction === 'front';
|
|
126
|
+
|
|
112
127
|
const streamURL = useMemo(() => {
|
|
113
128
|
if (!videoStreamToRender) {
|
|
114
129
|
return undefined;
|
|
@@ -125,6 +140,7 @@ export const RTCViewPipIOS = React.memo((props: Props) => {
|
|
|
125
140
|
<>
|
|
126
141
|
<RTCViewPipNative
|
|
127
142
|
streamURL={streamURL}
|
|
143
|
+
mirror={mirror}
|
|
128
144
|
ref={nativeRef}
|
|
129
145
|
onPiPChange={handlePiPChange}
|
|
130
146
|
/>
|
|
@@ -16,6 +16,7 @@ export type PiPChangeEvent = {
|
|
|
16
16
|
|
|
17
17
|
type RTCViewPipNativeProps = {
|
|
18
18
|
streamURL?: string;
|
|
19
|
+
mirror?: boolean;
|
|
19
20
|
onPiPChange?: (event: { nativeEvent: PiPChangeEvent }) => void;
|
|
20
21
|
};
|
|
21
22
|
|
|
@@ -51,13 +52,7 @@ export function onNativeDimensionsUpdated(
|
|
|
51
52
|
/** Wrapper for the native view
|
|
52
53
|
* meant to stay private and not exposed */
|
|
53
54
|
export const RTCViewPipNative = React.memo(
|
|
54
|
-
React.forwardRef<
|
|
55
|
-
React.Ref<any>,
|
|
56
|
-
{
|
|
57
|
-
streamURL?: string;
|
|
58
|
-
onPiPChange?: (event: { nativeEvent: PiPChangeEvent }) => void;
|
|
59
|
-
}
|
|
60
|
-
>((props, ref) => {
|
|
55
|
+
React.forwardRef<React.Ref<any>, RTCViewPipNativeProps>((props, ref) => {
|
|
61
56
|
if (Platform.OS !== 'ios') return null;
|
|
62
57
|
|
|
63
58
|
return (
|
|
@@ -67,6 +62,8 @@ export const RTCViewPipNative = React.memo(
|
|
|
67
62
|
// eslint-disable-next-line react/prop-types
|
|
68
63
|
streamURL={props.streamURL}
|
|
69
64
|
// eslint-disable-next-line react/prop-types
|
|
65
|
+
mirror={props.mirror}
|
|
66
|
+
// eslint-disable-next-line react/prop-types
|
|
70
67
|
onPiPChange={props.onPiPChange}
|
|
71
68
|
// @ts-expect-error - types issue
|
|
72
69
|
ref={ref}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { StreamRNVideoSDKGlobals } from '@stream-io/video-client';
|
|
2
|
-
import { NativeModules } from 'react-native';
|
|
1
|
+
import type { StreamRNVideoSDKGlobals } from '@stream-io/video-client';
|
|
2
|
+
import { NativeModules, PermissionsAndroid, Platform } from 'react-native';
|
|
3
3
|
|
|
4
4
|
const StreamInCallManagerNativeModule = NativeModules.StreamInCallManager;
|
|
5
|
+
const StreamVideoReactNativeModule = NativeModules.StreamVideoReactNative as {
|
|
6
|
+
checkPermission: StreamRNVideoSDKGlobals['permissions']['check'] | undefined;
|
|
7
|
+
};
|
|
5
8
|
|
|
6
9
|
const streamRNVideoSDKGlobals: StreamRNVideoSDKGlobals = {
|
|
7
10
|
callManager: {
|
|
@@ -18,6 +21,22 @@ const streamRNVideoSDKGlobals: StreamRNVideoSDKGlobals = {
|
|
|
18
21
|
StreamInCallManagerNativeModule.stop();
|
|
19
22
|
},
|
|
20
23
|
},
|
|
24
|
+
permissions: {
|
|
25
|
+
check: async (permission) => {
|
|
26
|
+
if (Platform.OS === 'android') {
|
|
27
|
+
const nativeAndroidPermission =
|
|
28
|
+
permission === 'camera'
|
|
29
|
+
? PermissionsAndroid.PERMISSIONS.CAMERA
|
|
30
|
+
: PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;
|
|
31
|
+
return PermissionsAndroid.check(nativeAndroidPermission);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// use our own service on iOS
|
|
35
|
+
return Boolean(
|
|
36
|
+
await StreamVideoReactNativeModule.checkPermission?.(permission),
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
},
|
|
21
40
|
};
|
|
22
41
|
|
|
23
42
|
// Note: The global type declaration for `streamRNVideoSDK` is defined in
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.29.
|
|
1
|
+
export const version = '1.29.1';
|