@stream-io/video-react-native-sdk 1.22.2 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/ProximityManager.kt +183 -0
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +12 -1
- package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamPlayer.js +3 -2
- package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamPlayer.js.map +1 -1
- package/dist/commonjs/components/Participant/FloatingParticipantView/index.js +13 -6
- package/dist/commonjs/components/Participant/FloatingParticipantView/index.js.map +1 -1
- package/dist/commonjs/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.js +30 -0
- package/dist/commonjs/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.js.map +1 -0
- package/dist/commonjs/constants/index.js +1 -6
- package/dist/commonjs/constants/index.js.map +1 -1
- package/dist/commonjs/hooks/useTrackDimensions.js +1 -1
- package/dist/commonjs/hooks/useTrackDimensions.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Livestream/LivestreamPlayer/LivestreamPlayer.js +3 -2
- package/dist/module/components/Livestream/LivestreamPlayer/LivestreamPlayer.js.map +1 -1
- package/dist/module/components/Participant/FloatingParticipantView/index.js +14 -7
- package/dist/module/components/Participant/FloatingParticipantView/index.js.map +1 -1
- package/dist/module/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.js +23 -0
- package/dist/module/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.js.map +1 -0
- package/dist/module/constants/index.js +0 -5
- package/dist/module/constants/index.js.map +1 -1
- package/dist/module/hooks/useTrackDimensions.js +1 -1
- package/dist/module/hooks/useTrackDimensions.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Livestream/LivestreamPlayer/LivestreamPlayer.d.ts +3 -3
- package/dist/typescript/components/Livestream/LivestreamPlayer/LivestreamPlayer.d.ts.map +1 -1
- package/dist/typescript/components/Participant/FloatingParticipantView/index.d.ts.map +1 -1
- package/dist/typescript/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.d.ts +9 -0
- package/dist/typescript/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.d.ts.map +1 -0
- package/dist/typescript/constants/index.d.ts +0 -5
- package/dist/typescript/constants/index.d.ts.map +1 -1
- package/dist/typescript/hooks/useTrackDimensions.d.ts +1 -1
- package/dist/typescript/hooks/useTrackDimensions.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/ios/StreamInCallManager.swift +105 -38
- package/package.json +3 -3
- package/src/components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx +5 -3
- package/src/components/Participant/FloatingParticipantView/index.tsx +20 -6
- package/src/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.tsx +36 -0
- package/src/constants/index.ts +0 -6
- package/src/hooks/useTrackDimensions.ts +2 -2
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.23.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.22.3...@stream-io/video-react-native-sdk-1.23.0) (2025-10-27)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
- `@stream-io/video-client` updated to version `1.35.1`
|
|
10
|
+
- `@stream-io/video-react-bindings` updated to version `1.10.3`
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- adaptive floating video dimensions ([#1969](https://github.com/GetStream/stream-video-js/issues/1969)) ([5a213d2](https://github.com/GetStream/stream-video-js/commit/5a213d2571610846bdcd9b4554a5a8d1a3def6c4))
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **react-native:** restore screen wake lock and proximity sensing ([#1971](https://github.com/GetStream/stream-video-js/issues/1971)) ([f20ef70](https://github.com/GetStream/stream-video-js/commit/f20ef70a5958fddf52075233f9f3d64a2ce01895)), closes [#1840](https://github.com/GetStream/stream-video-js/issues/1840)
|
|
19
|
+
|
|
20
|
+
## [1.22.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.22.2...@stream-io/video-react-native-sdk-1.22.3) (2025-10-24)
|
|
21
|
+
|
|
22
|
+
### Dependency Updates
|
|
23
|
+
|
|
24
|
+
- `@stream-io/video-client` updated to version `1.35.0`
|
|
25
|
+
- `@stream-io/video-react-bindings` updated to version `1.10.2`
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
- accept `children` in LivestreamPlayer components ([#1968](https://github.com/GetStream/stream-video-js/issues/1968)) ([1558f06](https://github.com/GetStream/stream-video-js/commit/1558f060614581964b72e9627e82a8419fc3d570))
|
|
30
|
+
|
|
5
31
|
## [1.22.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.22.1...@stream-io/video-react-native-sdk-1.22.2) (2025-10-24)
|
|
6
32
|
|
|
7
33
|
### Bug Fixes
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
package com.streamvideo.reactnative.callmanager
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.hardware.Sensor
|
|
5
|
+
import android.hardware.SensorEventListener
|
|
6
|
+
import android.hardware.SensorManager
|
|
7
|
+
import android.media.AudioDeviceInfo
|
|
8
|
+
import android.media.AudioManager
|
|
9
|
+
import android.os.PowerManager
|
|
10
|
+
import android.util.Log
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Encapsulates Android proximity sensor handling for in-call UX.
|
|
14
|
+
*
|
|
15
|
+
* Responsibilities:
|
|
16
|
+
* - Initialize proximity sensor + PowerManager wake lock lazily
|
|
17
|
+
* - Register/unregister sensor listener
|
|
18
|
+
* - Acquire/release PROXIMITY_SCREEN_OFF_WAKE_LOCK when near/away
|
|
19
|
+
* - Provide a simple API: start(), stop(), update()
|
|
20
|
+
*/
|
|
21
|
+
class ProximityManager(
|
|
22
|
+
private val context: Context,
|
|
23
|
+
) {
|
|
24
|
+
|
|
25
|
+
companion object {
|
|
26
|
+
const val TAG = "ProximityManager"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
private var sensorManager: SensorManager? = null
|
|
30
|
+
private var proximitySensor: Sensor? = null
|
|
31
|
+
private var proximityListener: SensorEventListener? = null
|
|
32
|
+
|
|
33
|
+
private var powerManager: PowerManager? = null
|
|
34
|
+
private var proximityWakeLock: PowerManager.WakeLock? = null
|
|
35
|
+
|
|
36
|
+
private var proximityRegistered = false
|
|
37
|
+
private var initialized = false
|
|
38
|
+
|
|
39
|
+
fun start() {
|
|
40
|
+
this.update()
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
fun stop() {
|
|
44
|
+
// Unregister listener and release wakelock
|
|
45
|
+
disableProximity()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
fun onDestroy() {
|
|
49
|
+
stop()
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Toggle monitoring state based on higher-level decision.
|
|
54
|
+
*/
|
|
55
|
+
fun update() {
|
|
56
|
+
if (!initialized) init()
|
|
57
|
+
if (isOnEarpiece()) enableProximity() else disableProximity()
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private fun init() {
|
|
61
|
+
if (initialized) return
|
|
62
|
+
try {
|
|
63
|
+
sensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager
|
|
64
|
+
proximitySensor = sensorManager?.getDefaultSensor(Sensor.TYPE_PROXIMITY)
|
|
65
|
+
} catch (t: Throwable) {
|
|
66
|
+
Log.w(TAG, "Proximity sensor init failed", t)
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager
|
|
70
|
+
// Obtain PROXIMITY_SCREEN_OFF_WAKE_LOCK via reflection to avoid compile-time dependency
|
|
71
|
+
val field = PowerManager::class.java.getField("PROXIMITY_SCREEN_OFF_WAKE_LOCK")
|
|
72
|
+
val level = field.getInt(null)
|
|
73
|
+
proximityWakeLock = powerManager?.newWakeLock(level, "$TAG:Proximity")
|
|
74
|
+
} catch (t: Throwable) {
|
|
75
|
+
Log.w(TAG, "Proximity wakelock init failed (may be unsupported on this device)", t)
|
|
76
|
+
proximityWakeLock = null
|
|
77
|
+
}
|
|
78
|
+
initialized = true
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private fun enableProximity() {
|
|
82
|
+
val sensor = proximitySensor
|
|
83
|
+
if (sensor == null) {
|
|
84
|
+
Log.d(TAG, "No proximity sensor available; skipping enable")
|
|
85
|
+
return
|
|
86
|
+
}
|
|
87
|
+
if (proximityRegistered) return
|
|
88
|
+
if (proximityListener == null) {
|
|
89
|
+
proximityListener = object : SensorEventListener {
|
|
90
|
+
override fun onSensorChanged(event: android.hardware.SensorEvent) {
|
|
91
|
+
val max = sensor.maximumRange
|
|
92
|
+
val value = event.values.firstOrNull() ?: max
|
|
93
|
+
val near = value < max
|
|
94
|
+
onProximityChanged(near)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
sensorManager?.registerListener(
|
|
102
|
+
proximityListener,
|
|
103
|
+
sensor,
|
|
104
|
+
SensorManager.SENSOR_DELAY_NORMAL
|
|
105
|
+
)
|
|
106
|
+
proximityRegistered = true
|
|
107
|
+
Log.d(TAG, "Proximity monitoring ENABLED")
|
|
108
|
+
} catch (t: Throwable) {
|
|
109
|
+
Log.w(TAG, "Failed to register proximity listener", t)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
private fun disableProximity() {
|
|
114
|
+
if (proximityRegistered && proximityListener != null) {
|
|
115
|
+
try {
|
|
116
|
+
sensorManager?.unregisterListener(proximityListener)
|
|
117
|
+
} catch (t: Throwable) {
|
|
118
|
+
Log.w(TAG, "Failed to unregister proximity listener", t)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
proximityRegistered = false
|
|
122
|
+
releaseProximityWakeLock()
|
|
123
|
+
Log.d(TAG, "Proximity monitoring DISABLED")
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
private fun onProximityChanged(near: Boolean) {
|
|
127
|
+
if (near) {
|
|
128
|
+
acquireProximityWakeLock()
|
|
129
|
+
} else {
|
|
130
|
+
releaseProximityWakeLock()
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
private fun acquireProximityWakeLock() {
|
|
135
|
+
try {
|
|
136
|
+
val wl = proximityWakeLock
|
|
137
|
+
if (wl != null && !wl.isHeld) {
|
|
138
|
+
wl.acquire()
|
|
139
|
+
Log.d(TAG, "Proximity wakelock ACQUIRED (screen off near ear)")
|
|
140
|
+
}
|
|
141
|
+
} catch (t: Throwable) {
|
|
142
|
+
Log.w(TAG, "Failed to acquire proximity wakelock", t)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private fun releaseProximityWakeLock() {
|
|
147
|
+
try {
|
|
148
|
+
val wl = proximityWakeLock
|
|
149
|
+
if (wl != null && wl.isHeld) {
|
|
150
|
+
wl.release()
|
|
151
|
+
Log.d(TAG, "Proximity wakelock RELEASED (screen on)")
|
|
152
|
+
}
|
|
153
|
+
} catch (t: Throwable) {
|
|
154
|
+
Log.w(TAG, "Failed to release proximity wakelock", t)
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
private fun isOnEarpiece(): Boolean {
|
|
159
|
+
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
|
160
|
+
// If speakerphone is on, not earpiece
|
|
161
|
+
if (audioManager.isSpeakerphoneOn) return false
|
|
162
|
+
|
|
163
|
+
// Check if Bluetooth SCO/A2DP or wired headset is connected
|
|
164
|
+
var hasBt = false
|
|
165
|
+
var hasWired = false
|
|
166
|
+
val outputs = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
|
|
167
|
+
outputs.forEach { dev ->
|
|
168
|
+
val type = dev.type
|
|
169
|
+
if (type == AudioDeviceInfo.TYPE_BLUETOOTH_A2DP ||
|
|
170
|
+
type == AudioDeviceInfo.TYPE_BLUETOOTH_SCO
|
|
171
|
+
) {
|
|
172
|
+
hasBt = true
|
|
173
|
+
} else if (type == AudioDeviceInfo.TYPE_WIRED_HEADPHONES
|
|
174
|
+
|| type == AudioDeviceInfo.TYPE_WIRED_HEADSET
|
|
175
|
+
|| type == AudioDeviceInfo.TYPE_USB_HEADSET
|
|
176
|
+
) {
|
|
177
|
+
hasWired = true
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return !hasBt && !hasWired
|
|
182
|
+
}
|
|
183
|
+
}
|
package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt
CHANGED
|
@@ -20,7 +20,7 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
20
20
|
private var audioManagerActivated = false
|
|
21
21
|
|
|
22
22
|
private val mAudioDeviceManager = AudioDeviceManager(reactContext)
|
|
23
|
-
|
|
23
|
+
private val proximityManager = ProximityManager(reactContext)
|
|
24
24
|
|
|
25
25
|
override fun getName(): String {
|
|
26
26
|
return TAG
|
|
@@ -40,6 +40,8 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
override fun invalidate() {
|
|
43
|
+
// Ensure we cleanup proximity and screen flags too
|
|
44
|
+
stop()
|
|
43
45
|
mAudioDeviceManager.close()
|
|
44
46
|
super.invalidate()
|
|
45
47
|
}
|
|
@@ -87,6 +89,8 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
87
89
|
mAudioDeviceManager.start(it)
|
|
88
90
|
setKeepScreenOn(true)
|
|
89
91
|
audioManagerActivated = true
|
|
92
|
+
// Initialize and evaluate proximity monitoring via controller
|
|
93
|
+
proximityManager.start()
|
|
90
94
|
}
|
|
91
95
|
}
|
|
92
96
|
}
|
|
@@ -99,6 +103,8 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
99
103
|
Log.d(TAG, "stop() mAudioDeviceManager")
|
|
100
104
|
mAudioDeviceManager.stop()
|
|
101
105
|
setMicrophoneMute(false)
|
|
106
|
+
// Disable proximity monitoring via controller and clear keep-screen-on
|
|
107
|
+
proximityManager.stop()
|
|
102
108
|
setKeepScreenOn(false)
|
|
103
109
|
audioManagerActivated = false
|
|
104
110
|
}
|
|
@@ -127,6 +133,8 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
127
133
|
return
|
|
128
134
|
}
|
|
129
135
|
mAudioDeviceManager.setSpeakerphoneOn(enable)
|
|
136
|
+
// Re-evaluate proximity monitoring when route may change
|
|
137
|
+
this.proximityManager.update()
|
|
130
138
|
}
|
|
131
139
|
|
|
132
140
|
@ReactMethod
|
|
@@ -152,6 +160,8 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
152
160
|
mAudioDeviceManager.switchDeviceFromDeviceName(
|
|
153
161
|
endpointDeviceName
|
|
154
162
|
)
|
|
163
|
+
// Re-evaluate proximity monitoring when endpoint changes
|
|
164
|
+
this.proximityManager.update()
|
|
155
165
|
}
|
|
156
166
|
|
|
157
167
|
@ReactMethod
|
|
@@ -164,6 +174,7 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
|
|
|
164
174
|
mAudioDeviceManager.unmuteAudioOutput()
|
|
165
175
|
}
|
|
166
176
|
|
|
177
|
+
|
|
167
178
|
override fun onHostResume() {
|
|
168
179
|
}
|
|
169
180
|
|
|
@@ -14,7 +14,8 @@ const LivestreamPlayer = ({
|
|
|
14
14
|
callType,
|
|
15
15
|
callId,
|
|
16
16
|
ViewerLivestream = _ViewerLivestream.ViewerLivestream,
|
|
17
|
-
joinBehavior = 'asap'
|
|
17
|
+
joinBehavior = 'asap',
|
|
18
|
+
children
|
|
18
19
|
}) => {
|
|
19
20
|
const client = (0, _videoReactBindings.useStreamVideoClient)();
|
|
20
21
|
const [call, setCall] = (0, _react.useState)();
|
|
@@ -52,7 +53,7 @@ const LivestreamPlayer = ({
|
|
|
52
53
|
call: call
|
|
53
54
|
}, /*#__PURE__*/_react.default.createElement(ViewerLivestream, {
|
|
54
55
|
joinBehavior: joinBehavior
|
|
55
|
-
}));
|
|
56
|
+
}), children);
|
|
56
57
|
};
|
|
57
58
|
exports.LivestreamPlayer = LivestreamPlayer;
|
|
58
59
|
//# sourceMappingURL=LivestreamPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_ViewerLivestream","_videoClient","_StreamCall","_videoReactBindings","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LivestreamPlayer","callType","callId","ViewerLivestream","DefaultViewerLivestream","joinBehavior","client","useStreamVideoClient","setCall","useState","useEffect","myCall","state","callingState","CallingState","LEFT","leave","catch","logger","getLogger","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,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,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;AA+BhE,MAAMkB,gBAAgB,GAAGA,CAAC;EAC/BC,QAAQ;EACRC,MAAM;EACNC,gBAAgB,GAAGC,kCAAuB;EAC1CC,YAAY,GAAG;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_ViewerLivestream","_videoClient","_StreamCall","_videoReactBindings","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LivestreamPlayer","callType","callId","ViewerLivestream","DefaultViewerLivestream","joinBehavior","children","client","useStreamVideoClient","setCall","useState","useEffect","myCall","state","callingState","CallingState","LEFT","leave","catch","logger","getLogger","undefined","createElement","StreamCall","exports"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ var _FloatingView = _interopRequireDefault(require("./FloatingView"));
|
|
|
13
13
|
var _common = require("./FloatingView/common");
|
|
14
14
|
var _ParticipantView = require("../ParticipantView");
|
|
15
15
|
var _ThemeContext = require("../../../contexts/ThemeContext");
|
|
16
|
+
var _useFloatingVideoDimensions = require("./useFloatingVideoDimensions");
|
|
16
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
18
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
18
19
|
/**
|
|
@@ -66,7 +67,10 @@ const FloatingParticipantView = ({
|
|
|
66
67
|
const {
|
|
67
68
|
theme: {
|
|
68
69
|
colors,
|
|
69
|
-
floatingParticipantsView
|
|
70
|
+
floatingParticipantsView,
|
|
71
|
+
variants: {
|
|
72
|
+
spacingSizes
|
|
73
|
+
}
|
|
70
74
|
}
|
|
71
75
|
} = (0, _ThemeContext.useTheme)();
|
|
72
76
|
const floatingAlignmentMap = {
|
|
@@ -76,6 +80,7 @@ const FloatingParticipantView = ({
|
|
|
76
80
|
'bottom-right': _common.FloatingViewAlignment.bottomRight
|
|
77
81
|
};
|
|
78
82
|
const [containerDimensions, setContainerDimensions] = _react.default.useState();
|
|
83
|
+
const floatingVideoDimensions = (0, _useFloatingVideoDimensions.useFloatingVideoDimensions)(containerDimensions, participant, 'videoTrack');
|
|
79
84
|
const participantViewProps = {
|
|
80
85
|
ParticipantLabel: null,
|
|
81
86
|
ParticipantNetworkQualityIndicator,
|
|
@@ -108,7 +113,7 @@ const FloatingParticipantView = ({
|
|
|
108
113
|
};
|
|
109
114
|
});
|
|
110
115
|
}
|
|
111
|
-
}, containerDimensions && /*#__PURE__*/_react.default.createElement(_FloatingView.default, {
|
|
116
|
+
}, containerDimensions && floatingVideoDimensions && /*#__PURE__*/_react.default.createElement(_FloatingView.default, {
|
|
112
117
|
containerHeight: containerDimensions.height,
|
|
113
118
|
containerWidth: containerDimensions.width,
|
|
114
119
|
initialAlignment: floatingAlignmentMap[alignment]
|
|
@@ -117,7 +122,12 @@ const FloatingParticipantView = ({
|
|
|
117
122
|
}, ParticipantView && /*#__PURE__*/_react.default.createElement(ParticipantView, _extends({
|
|
118
123
|
participant: participant,
|
|
119
124
|
trackType: "videoTrack",
|
|
120
|
-
style: [styles.participantViewContainer,
|
|
125
|
+
style: [styles.participantViewContainer, {
|
|
126
|
+
width: floatingVideoDimensions.width,
|
|
127
|
+
height: floatingVideoDimensions.height,
|
|
128
|
+
borderRadius: floatingVideoDimensions.width * 0.1,
|
|
129
|
+
marginHorizontal: spacingSizes.md
|
|
130
|
+
}, participantViewStyle, {
|
|
121
131
|
shadowColor: colors.sheetPrimary
|
|
122
132
|
}, floatingParticipantsView.participantViewContainer]
|
|
123
133
|
// video z order must be one above the one used in grid view
|
|
@@ -136,9 +146,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
136
146
|
flex: 1
|
|
137
147
|
},
|
|
138
148
|
participantViewContainer: {
|
|
139
|
-
height: _constants.FLOATING_VIDEO_VIEW_STYLE.height,
|
|
140
|
-
width: _constants.FLOATING_VIDEO_VIEW_STYLE.width,
|
|
141
|
-
borderRadius: _constants.FLOATING_VIDEO_VIEW_STYLE.borderRadius,
|
|
142
149
|
shadowOffset: {
|
|
143
150
|
width: 0,
|
|
144
151
|
height: 2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_constants","_TestIds","_icons","_FloatingView","_common","_ParticipantView","_ThemeContext","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","DefaultLocalParticipantViewVideoFallback","theme","colors","floatingParticipantsView","variants","iconSizes","defaults","useTheme","createElement","View","style","styles","videoFallback","backgroundColor","sheetSecondary","height","md","width","VideoSlash","color","iconPrimary","size","iconSize","FloatingParticipantView","alignment","onPressHandler","participant","participantViewStyle","draggableContainerStyle","ParticipantView","DefaultParticipantView","ParticipantNetworkQualityIndicator","ParticipantVideoFallback","ParticipantReaction","VideoRenderer","supportedReactions","videoZOrder","objectFit","floatingAlignmentMap","FloatingViewAlignment","topLeft","topRight","bottomLeft","bottomRight","containerDimensions","setContainerDimensions","React","useState","participantViewProps","ParticipantLabel","testID","ComponentTestIds","LOCAL_PARTICIPANT","container","pointerEvents","onLayout","event","nativeEvent","layout","prev","containerHeight","containerWidth","initialAlignment","Pressable","onPress","trackType","participantViewContainer","shadowColor","sheetPrimary","exports","StyleSheet","create","zIndex","Z_INDEX","IN_MIDDLE","flex","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_constants","_TestIds","_icons","_FloatingView","_common","_ParticipantView","_ThemeContext","_useFloatingVideoDimensions","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","DefaultLocalParticipantViewVideoFallback","theme","colors","floatingParticipantsView","variants","iconSizes","defaults","useTheme","createElement","View","style","styles","videoFallback","backgroundColor","sheetSecondary","height","md","width","VideoSlash","color","iconPrimary","size","iconSize","FloatingParticipantView","alignment","onPressHandler","participant","participantViewStyle","draggableContainerStyle","ParticipantView","DefaultParticipantView","ParticipantNetworkQualityIndicator","ParticipantVideoFallback","ParticipantReaction","VideoRenderer","supportedReactions","videoZOrder","objectFit","spacingSizes","floatingAlignmentMap","FloatingViewAlignment","topLeft","topRight","bottomLeft","bottomRight","containerDimensions","setContainerDimensions","React","useState","floatingVideoDimensions","useFloatingVideoDimensions","participantViewProps","ParticipantLabel","testID","ComponentTestIds","LOCAL_PARTICIPANT","container","pointerEvents","onLayout","event","nativeEvent","layout","prev","containerHeight","containerWidth","initialAlignment","Pressable","onPress","trackType","participantViewContainer","borderRadius","marginHorizontal","shadowColor","sheetPrimary","exports","StyleSheet","create","zIndex","Z_INDEX","IN_MIDDLE","flex","shadowOffset","shadowOpacity","shadowRadius","elevation","absoluteFillObject","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Participant/FloatingParticipantView/index.tsx"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/components/Participant/FloatingParticipantView/useFloatingVideoDimensions.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useFloatingVideoDimensions = void 0;
|
|
7
|
+
var _useTrackDimensions = require("../../../hooks/useTrackDimensions");
|
|
8
|
+
const useFloatingVideoDimensions = (containerDimensions, participant, trackType) => {
|
|
9
|
+
const containerWidth = containerDimensions?.width ?? 0;
|
|
10
|
+
const {
|
|
11
|
+
width,
|
|
12
|
+
height
|
|
13
|
+
} = (0, _useTrackDimensions.useTrackDimensions)(participant, trackType);
|
|
14
|
+
if (width === 0 || height === 0 || containerWidth === 0) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const aspectRatio = width / height;
|
|
18
|
+
|
|
19
|
+
// based on Android AOSP PiP mode default dimensions algorithm
|
|
20
|
+
// 23% of the container width
|
|
21
|
+
const floatingVideoWidth = containerWidth * 0.23;
|
|
22
|
+
// the height is calculated based on the aspect ratio
|
|
23
|
+
const floatingVideoHeight = floatingVideoWidth / aspectRatio;
|
|
24
|
+
return {
|
|
25
|
+
width: floatingVideoWidth,
|
|
26
|
+
height: floatingVideoHeight
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.useFloatingVideoDimensions = useFloatingVideoDimensions;
|
|
30
|
+
//# sourceMappingURL=useFloatingVideoDimensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_useTrackDimensions","require","useFloatingVideoDimensions","containerDimensions","participant","trackType","containerWidth","width","height","useTrackDimensions","undefined","aspectRatio","floatingVideoWidth","floatingVideoHeight","exports"],"sourceRoot":"../../../../../src","sources":["components/Participant/FloatingParticipantView/useFloatingVideoDimensions.tsx"],"mappings":";;;;;;AAIA,IAAAA,mBAAA,GAAAC,OAAA;AAEO,MAAMC,0BAA0B,GAAGA,CACxCC,mBAKa,EACbC,WAA+C,EAC/CC,SAAyB,KACtB;EACH,MAAMC,cAAc,GAAGH,mBAAmB,EAAEI,KAAK,IAAI,CAAC;EACtD,MAAM;IAAEA,KAAK;IAAEC;EAAO,CAAC,GAAG,IAAAC,sCAAkB,EAACL,WAAW,EAAEC,SAAS,CAAC;EAEpE,IAAIE,KAAK,KAAK,CAAC,IAAIC,MAAM,KAAK,CAAC,IAAIF,cAAc,KAAK,CAAC,EAAE;IACvD,OAAOI,SAAS;EAClB;EAEA,MAAMC,WAAW,GAAGJ,KAAK,GAAGC,MAAM;;EAElC;EACA;EACA,MAAMI,kBAAkB,GAAGN,cAAc,GAAG,IAAI;EAChD;EACA,MAAMO,mBAAmB,GAAGD,kBAAkB,GAAGD,WAAW;EAE5D,OAAO;IACLJ,KAAK,EAAEK,kBAAkB;IACzBJ,MAAM,EAAEK;EACV,CAAC;AACH,CAAC;AAACC,OAAA,CAAAZ,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.defaultEmojiReactions = exports.Z_INDEX =
|
|
7
|
-
const FLOATING_VIDEO_VIEW_STYLE = exports.FLOATING_VIDEO_VIEW_STYLE = {
|
|
8
|
-
height: 140,
|
|
9
|
-
width: 80,
|
|
10
|
-
borderRadius: 10
|
|
11
|
-
};
|
|
6
|
+
exports.defaultEmojiReactions = exports.Z_INDEX = void 0;
|
|
12
7
|
const defaultEmojiReactions = exports.defaultEmojiReactions = [{
|
|
13
8
|
type: 'reaction',
|
|
14
9
|
emoji_code: ':rolling_on_the_floor_laughing:',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["defaultEmojiReactions","exports","type","emoji_code","custom","icon","Z_INDEX","IN_BACK","IN_MIDDLE","IN_FRONT"],"sourceRoot":"../../../src","sources":["constants/index.ts"],"mappings":";;;;;;AAEO,MAAMA,qBAA2C,GAAAC,OAAA,CAAAD,qBAAA,GAAG,CACzD;EACEE,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,iCAAiC;EAC7CC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,UAAU;EACtBC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,WAAW;EACvBC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,aAAa;EACzBC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,gBAAgB;EAC5BC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,EACD;EACEH,IAAI,EAAE,aAAa;EACnBC,UAAU,EAAE,eAAe;EAC3BC,MAAM,EAAE,CAAC,CAAC;EACVC,IAAI,EAAE;AACR,CAAC,CACF;AAEM,MAAMC,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EACrBC,OAAO,EAAE,CAAC;EACVC,SAAS,EAAE,CAAC;EACZC,QAAQ,EAAE;AACZ,CAAC","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ function useTrackDimensions(participant, trackType) {
|
|
|
15
15
|
const {
|
|
16
16
|
videoStream,
|
|
17
17
|
screenShareStream
|
|
18
|
-
} = participant;
|
|
18
|
+
} = participant || {};
|
|
19
19
|
const stream = trackType === 'screenShareTrack' ? screenShareStream : videoStream;
|
|
20
20
|
const [track] = stream?.getVideoTracks() ?? [];
|
|
21
21
|
const trackId = track?.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","useTrackDimensions","participant","trackType","videoStream","screenShareStream","stream","track","getVideoTracks","trackId","id","trackDimensions","setTrackDimensions","useState","settings","getSettings","width","height","useEffect","handleVideoTrackDimensionChanged","eventData","prev","webRTCEventEmitter","NativeEventEmitter","NativeModules","WebRTCModule","subscription","addListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useTrackDimensions.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAChCC,
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","useTrackDimensions","participant","trackType","videoStream","screenShareStream","stream","track","getVideoTracks","trackId","id","trackDimensions","setTrackDimensions","useState","settings","getSettings","width","height","useEffect","handleVideoTrackDimensionChanged","eventData","prev","webRTCEventEmitter","NativeEventEmitter","NativeModules","WebRTCModule","subscription","addListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useTrackDimensions.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAChCC,WAA+C,EAC/CC,SAAyB,EACzB;EACA,MAAM;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGH,WAAW,IAAI,CAAC,CAAC;EAC5D,MAAMI,MAAM,GACVH,SAAS,KAAK,kBAAkB,GAAGE,iBAAiB,GAAGD,WAAW;EACpE,MAAM,CAACG,KAAK,CAAC,GAAGD,MAAM,EAAEE,cAAc,CAAC,CAAC,IAAI,EAAE;EAC9C,MAAMC,OAAO,GAAGF,KAAK,EAAEG,EAAE;EAEzB,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM;IAC3D,MAAMC,QAAQ,GAAGP,KAAK,EAAEQ,WAAW,CAAC,CAAC;IACrC,MAAMC,KAAK,GAAGF,QAAQ,EAAEE,KAAK,IAAI,CAAC;IAClC,MAAMC,MAAM,GAAGH,QAAQ,EAAEG,MAAM,IAAI,CAAC;IACpC,OAAO;MACLD,KAAK;MACLC;IACF,CAAC;EACH,CAAC,CAAC;;EAEF;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACT,OAAO,IAAI,CAACF,KAAK,EAAE;IAExB,MAAMY,gCAAgC,GAAIC,SAKzC,IAAK;MACJ;MACA,IAAIA,SAAS,CAACX,OAAO,KAAKA,OAAO,EAAE;QACjCG,kBAAkB,CAAES,IAAI,IAAK;UAC3B,IACEA,IAAI,CAACL,KAAK,KAAKI,SAAS,CAACJ,KAAK,IAC9BK,IAAI,CAACJ,MAAM,KAAKG,SAAS,CAACH,MAAM,EAChC;YACA,OAAOI,IAAI;UACb;UACA,OAAO;YAAEL,KAAK,EAAEI,SAAS,CAACJ,KAAK;YAAEC,MAAM,EAAEG,SAAS,CAACH;UAAO,CAAC;QAC7D,CAAC,CAAC;MACJ;IACF,CAAC;IAED,MAAM;MAAED,KAAK;MAAEC;IAAO,CAAC,GAAGV,KAAK,CAACQ,WAAW,CAAC,CAAC;IAC7CH,kBAAkB,CAAES,IAAI,IAAK;MAC3B,IAAIA,IAAI,CAACL,KAAK,KAAKA,KAAK,IAAIK,IAAI,CAACJ,MAAM,KAAKA,MAAM,EAAE;QAClD,OAAOI,IAAI;MACb;MACA,OAAO;QACLL,KAAK,EAAEA,KAAK,IAAI,CAAC;QACjBC,MAAM,EAAEA,MAAM,IAAI;MACpB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMK,kBAAkB,GAAG,IAAIC,+BAAkB,CAC/CC,0BAAa,CAACC,YAChB,CAAC;IACD,MAAMC,YAAY,GAAGJ,kBAAkB,CAACK,WAAW,CACjD,4BAA4B,EAC5BR,gCACF,CAAC;IAED,OAAO,MAAM;MACXO,YAAY,CAACE,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACnB,OAAO,EAAEF,KAAK,CAAC,CAAC;EAEpB,OAAOI,eAAe;AACxB","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -7,7 +7,8 @@ export const LivestreamPlayer = ({
|
|
|
7
7
|
callType,
|
|
8
8
|
callId,
|
|
9
9
|
ViewerLivestream = DefaultViewerLivestream,
|
|
10
|
-
joinBehavior = 'asap'
|
|
10
|
+
joinBehavior = 'asap',
|
|
11
|
+
children
|
|
11
12
|
}) => {
|
|
12
13
|
const client = useStreamVideoClient();
|
|
13
14
|
const [call, setCall] = useState();
|
|
@@ -45,6 +46,6 @@ export const LivestreamPlayer = ({
|
|
|
45
46
|
call: call
|
|
46
47
|
}, /*#__PURE__*/React.createElement(ViewerLivestream, {
|
|
47
48
|
joinBehavior: joinBehavior
|
|
48
|
-
}));
|
|
49
|
+
}), children);
|
|
49
50
|
};
|
|
50
51
|
//# sourceMappingURL=LivestreamPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","ViewerLivestream","DefaultViewerLivestream","CallingState","getLogger","StreamCall","useStreamVideoClient","LivestreamPlayer","callType","callId","joinBehavior","client","call","setCall","myCall","state","callingState","LEFT","leave","catch","e","logger","undefined","createElement"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx"],"mappings":"AAAA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","ViewerLivestream","DefaultViewerLivestream","CallingState","getLogger","StreamCall","useStreamVideoClient","LivestreamPlayer","callType","callId","joinBehavior","children","client","call","setCall","myCall","state","callingState","LEFT","leave","catch","e","logger","undefined","createElement"],"sourceRoot":"../../../../../src","sources":["components/Livestream/LivestreamPlayer/LivestreamPlayer.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAuBC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACrE,SACEC,gBAAgB,IAAIC,uBAAuB,QAEtC,qBAAqB;AAC5B,SAAeC,YAAY,EAAEC,SAAS,QAAQ,yBAAyB;AACvE,SAASC,UAAU,QAAQ,+BAA+B;AAC1D,SAASC,oBAAoB,QAAQ,iCAAiC;AA+BtE,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,QAAQ;EACRC,MAAM;EACNR,gBAAgB,GAAGC,uBAAuB;EAC1CQ,YAAY,GAAG,MAAM;EACrBC;AACwC,CAAC,KAAK;EAC9C,MAAMC,MAAM,GAAGN,oBAAoB,CAAC,CAAC;EAErC,MAAM,CAACO,IAAI,EAAEC,OAAO,CAAC,GAAGd,QAAQ,CAAO,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAI,CAACa,MAAM,EAAE;MACX;IACF;IACA,MAAMG,MAAM,GAAGH,MAAM,CAACC,IAAI,CAACL,QAAQ,EAAEC,MAAM,CAAC;IAC5CK,OAAO,CAACC,MAAM,CAAC;IACf,OAAO,MAAM;MACX,IAAIA,MAAM,CAACC,KAAK,CAACC,YAAY,KAAKd,YAAY,CAACe,IAAI,EAAE;QACnDH,MAAM,CAACI,KAAK,CAAC,CAAC,CAACC,KAAK,CAAEC,CAAC,IAAK;UAC1B,MAAMC,MAAM,GAAGlB,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;UAC9CkB,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAED,CAAC,CAAC;QAC3C,CAAC,CAAC;MACJ;MACAP,OAAO,CAACS,SAAS,CAAC;IACpB,CAAC;EACH,CAAC,EAAE,CAACd,MAAM,EAAED,QAAQ,EAAEI,MAAM,CAAC,CAAC;EAE9Bb,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA,IAAIc,IAAI,EAAEG,KAAK,CAACC,YAAY,KAAKd,YAAY,CAACe,IAAI,EAAE;QAClDL,IAAI,EAAEM,KAAK,CAAC,CAAC,CAACC,KAAK,CAAEC,CAAC,IAAK;UACzB,MAAMC,MAAM,GAAGlB,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;UAC9CkB,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAED,CAAC,CAAC;QAC3C,CAAC,CAAC;MACJ;IACF,CAAC;EACH,CAAC,EAAE,CAACR,IAAI,CAAC,CAAC;EAEV,IAAI,CAACA,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,oBACEf,KAAA,CAAA0B,aAAA,CAACnB,UAAU;IAACQ,IAAI,EAAEA;EAAK,gBACrBf,KAAA,CAAA0B,aAAA,CAACvB,gBAAgB;IAACS,YAAY,EAAEA;EAAa,CAAE,CAAC,EAC/CC,QACS,CAAC;AAEjB,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Pressable, StyleSheet, View } from 'react-native';
|
|
4
|
-
import {
|
|
4
|
+
import { Z_INDEX } from '../../../constants';
|
|
5
5
|
import { ComponentTestIds } from '../../../constants/TestIds';
|
|
6
6
|
import { VideoSlash } from '../../../icons';
|
|
7
7
|
import FloatingView from './FloatingView';
|
|
8
8
|
import { FloatingViewAlignment } from './FloatingView/common';
|
|
9
9
|
import { ParticipantView as DefaultParticipantView } from '../ParticipantView';
|
|
10
10
|
import { useTheme } from '../../../contexts/ThemeContext';
|
|
11
|
+
import { useFloatingVideoDimensions } from './useFloatingVideoDimensions';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Props to be passed for the LocalVideoView component.
|
|
@@ -60,7 +61,10 @@ export const FloatingParticipantView = ({
|
|
|
60
61
|
const {
|
|
61
62
|
theme: {
|
|
62
63
|
colors,
|
|
63
|
-
floatingParticipantsView
|
|
64
|
+
floatingParticipantsView,
|
|
65
|
+
variants: {
|
|
66
|
+
spacingSizes
|
|
67
|
+
}
|
|
64
68
|
}
|
|
65
69
|
} = useTheme();
|
|
66
70
|
const floatingAlignmentMap = {
|
|
@@ -70,6 +74,7 @@ export const FloatingParticipantView = ({
|
|
|
70
74
|
'bottom-right': FloatingViewAlignment.bottomRight
|
|
71
75
|
};
|
|
72
76
|
const [containerDimensions, setContainerDimensions] = React.useState();
|
|
77
|
+
const floatingVideoDimensions = useFloatingVideoDimensions(containerDimensions, participant, 'videoTrack');
|
|
73
78
|
const participantViewProps = {
|
|
74
79
|
ParticipantLabel: null,
|
|
75
80
|
ParticipantNetworkQualityIndicator,
|
|
@@ -102,7 +107,7 @@ export const FloatingParticipantView = ({
|
|
|
102
107
|
};
|
|
103
108
|
});
|
|
104
109
|
}
|
|
105
|
-
}, containerDimensions && /*#__PURE__*/React.createElement(FloatingView, {
|
|
110
|
+
}, containerDimensions && floatingVideoDimensions && /*#__PURE__*/React.createElement(FloatingView, {
|
|
106
111
|
containerHeight: containerDimensions.height,
|
|
107
112
|
containerWidth: containerDimensions.width,
|
|
108
113
|
initialAlignment: floatingAlignmentMap[alignment]
|
|
@@ -111,7 +116,12 @@ export const FloatingParticipantView = ({
|
|
|
111
116
|
}, ParticipantView && /*#__PURE__*/React.createElement(ParticipantView, _extends({
|
|
112
117
|
participant: participant,
|
|
113
118
|
trackType: "videoTrack",
|
|
114
|
-
style: [styles.participantViewContainer,
|
|
119
|
+
style: [styles.participantViewContainer, {
|
|
120
|
+
width: floatingVideoDimensions.width,
|
|
121
|
+
height: floatingVideoDimensions.height,
|
|
122
|
+
borderRadius: floatingVideoDimensions.width * 0.1,
|
|
123
|
+
marginHorizontal: spacingSizes.md
|
|
124
|
+
}, participantViewStyle, {
|
|
115
125
|
shadowColor: colors.sheetPrimary
|
|
116
126
|
}, floatingParticipantsView.participantViewContainer]
|
|
117
127
|
// video z order must be one above the one used in grid view
|
|
@@ -129,9 +139,6 @@ const styles = StyleSheet.create({
|
|
|
129
139
|
flex: 1
|
|
130
140
|
},
|
|
131
141
|
participantViewContainer: {
|
|
132
|
-
height: FLOATING_VIDEO_VIEW_STYLE.height,
|
|
133
|
-
width: FLOATING_VIDEO_VIEW_STYLE.width,
|
|
134
|
-
borderRadius: FLOATING_VIDEO_VIEW_STYLE.borderRadius,
|
|
135
142
|
shadowOffset: {
|
|
136
143
|
width: 0,
|
|
137
144
|
height: 2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","StyleSheet","View","
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","View","Z_INDEX","ComponentTestIds","VideoSlash","FloatingView","FloatingViewAlignment","ParticipantView","DefaultParticipantView","useTheme","useFloatingVideoDimensions","DefaultLocalParticipantViewVideoFallback","theme","colors","floatingParticipantsView","variants","iconSizes","defaults","createElement","style","styles","videoFallback","backgroundColor","sheetSecondary","height","md","width","color","iconPrimary","size","iconSize","FloatingParticipantView","alignment","onPressHandler","participant","participantViewStyle","draggableContainerStyle","ParticipantNetworkQualityIndicator","ParticipantVideoFallback","ParticipantReaction","VideoRenderer","supportedReactions","videoZOrder","objectFit","spacingSizes","floatingAlignmentMap","topLeft","topRight","bottomLeft","bottomRight","containerDimensions","setContainerDimensions","useState","floatingVideoDimensions","participantViewProps","ParticipantLabel","testID","LOCAL_PARTICIPANT","container","pointerEvents","onLayout","event","nativeEvent","layout","prev","containerHeight","containerWidth","initialAlignment","onPress","_extends","trackType","participantViewContainer","borderRadius","marginHorizontal","shadowColor","sheetPrimary","create","zIndex","IN_MIDDLE","flex","shadowOffset","shadowOpacity","shadowRadius","elevation","absoluteFillObject","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Participant/FloatingParticipantView/index.tsx"],"mappings":"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","ignoreList":[]}
|