@ethora/chat-component-rn 26.10.2 → 26.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/lib/commonjs/components/MainComponents/ChatHeader.js +11 -10
  2. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  3. package/lib/commonjs/components/MainComponents/MessageContainer.js +10 -2
  4. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/RoomList.js +8 -18
  6. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  7. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +17 -14
  8. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  9. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +131 -17
  10. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  11. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +6 -1
  12. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  13. package/lib/commonjs/components/VideoCalls/CallButtons.js +3 -1
  14. package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -1
  15. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +123 -111
  16. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  17. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +207 -346
  18. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  19. package/lib/commonjs/components/VideoCalls/callActions.js +61 -0
  20. package/lib/commonjs/components/VideoCalls/callActions.js.map +1 -0
  21. package/lib/commonjs/components/VideoCalls/callSessionController.js +431 -0
  22. package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -0
  23. package/lib/commonjs/components/VideoCalls/useDraggable.js +59 -0
  24. package/lib/commonjs/components/VideoCalls/useDraggable.js.map +1 -0
  25. package/lib/commonjs/helpers/createRoomFromApi.js +4 -0
  26. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  27. package/lib/commonjs/helpers/incomingCallFromPush.js +1 -1
  28. package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -1
  29. package/lib/commonjs/helpers/roomUserCount.js +7 -1
  30. package/lib/commonjs/helpers/roomUserCount.js.map +1 -1
  31. package/lib/commonjs/helpers/uniqueMembers.js +36 -0
  32. package/lib/commonjs/helpers/uniqueMembers.js.map +1 -0
  33. package/lib/commonjs/hooks/useLeaveRoom.js +52 -0
  34. package/lib/commonjs/hooks/useLeaveRoom.js.map +1 -0
  35. package/lib/commonjs/i18n/strings.js +18 -0
  36. package/lib/commonjs/i18n/strings.js.map +1 -1
  37. package/lib/commonjs/networking/api-requests/rooms.api.js +36 -1
  38. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  39. package/lib/commonjs/networking/callTokenStanza.js +47 -3
  40. package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
  41. package/lib/commonjs/networking/xmppClient.js +9 -2
  42. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  43. package/lib/commonjs/version.js +1 -1
  44. package/lib/module/components/MainComponents/ChatHeader.js +13 -12
  45. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  46. package/lib/module/components/MainComponents/MessageContainer.js +10 -2
  47. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  48. package/lib/module/components/MainComponents/RoomList.js +8 -18
  49. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  50. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +18 -15
  51. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  52. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +132 -18
  53. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  54. package/lib/module/components/RoomComponents/ChatRoomItem.js +6 -1
  55. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  56. package/lib/module/components/VideoCalls/CallButtons.js +3 -1
  57. package/lib/module/components/VideoCalls/CallButtons.js.map +1 -1
  58. package/lib/module/components/VideoCalls/VideoCallOverlay.js +125 -113
  59. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  60. package/lib/module/components/VideoCalls/VideoCallSession.js +208 -348
  61. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  62. package/lib/module/components/VideoCalls/callActions.js +55 -0
  63. package/lib/module/components/VideoCalls/callActions.js.map +1 -0
  64. package/lib/module/components/VideoCalls/callSessionController.js +420 -0
  65. package/lib/module/components/VideoCalls/callSessionController.js.map +1 -0
  66. package/lib/module/components/VideoCalls/useDraggable.js +55 -0
  67. package/lib/module/components/VideoCalls/useDraggable.js.map +1 -0
  68. package/lib/module/helpers/createRoomFromApi.js +4 -0
  69. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  70. package/lib/module/helpers/incomingCallFromPush.js +1 -1
  71. package/lib/module/helpers/incomingCallFromPush.js.map +1 -1
  72. package/lib/module/helpers/roomUserCount.js +7 -1
  73. package/lib/module/helpers/roomUserCount.js.map +1 -1
  74. package/lib/module/helpers/uniqueMembers.js +31 -0
  75. package/lib/module/helpers/uniqueMembers.js.map +1 -0
  76. package/lib/module/hooks/useLeaveRoom.js +48 -0
  77. package/lib/module/hooks/useLeaveRoom.js.map +1 -0
  78. package/lib/module/i18n/strings.js +18 -0
  79. package/lib/module/i18n/strings.js.map +1 -1
  80. package/lib/module/networking/api-requests/rooms.api.js +35 -1
  81. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  82. package/lib/module/networking/callTokenStanza.js +47 -3
  83. package/lib/module/networking/callTokenStanza.js.map +1 -1
  84. package/lib/module/networking/xmppClient.js +8 -1
  85. package/lib/module/networking/xmppClient.js.map +1 -1
  86. package/lib/module/version.js +1 -1
  87. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  88. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  89. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  90. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  91. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  92. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  93. package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -1
  94. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +0 -6
  95. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
  96. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +9 -20
  97. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  98. package/lib/typescript/components/VideoCalls/callActions.d.ts +15 -0
  99. package/lib/typescript/components/VideoCalls/callActions.d.ts.map +1 -0
  100. package/lib/typescript/components/VideoCalls/callSessionController.d.ts +61 -0
  101. package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -0
  102. package/lib/typescript/components/VideoCalls/useDraggable.d.ts +19 -0
  103. package/lib/typescript/components/VideoCalls/useDraggable.d.ts.map +1 -0
  104. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  105. package/lib/typescript/helpers/roomUserCount.d.ts +1 -0
  106. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -1
  107. package/lib/typescript/helpers/uniqueMembers.d.ts +11 -0
  108. package/lib/typescript/helpers/uniqueMembers.d.ts.map +1 -0
  109. package/lib/typescript/hooks/useLeaveRoom.d.ts +9 -0
  110. package/lib/typescript/hooks/useLeaveRoom.d.ts.map +1 -0
  111. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  112. package/lib/typescript/networking/api-requests/rooms.api.d.ts +8 -0
  113. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  114. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
  115. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  116. package/lib/typescript/version.d.ts +1 -1
  117. package/package.json +1 -1
  118. package/src/components/MainComponents/ChatHeader.tsx +10 -8
  119. package/src/components/MainComponents/MessageContainer.tsx +14 -1
  120. package/src/components/MainComponents/RoomList.tsx +8 -14
  121. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +16 -13
  122. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +167 -36
  123. package/src/components/RoomComponents/ChatRoomItem.tsx +8 -1
  124. package/src/components/VideoCalls/CallButtons.tsx +5 -1
  125. package/src/components/VideoCalls/VideoCallOverlay.tsx +156 -163
  126. package/src/components/VideoCalls/VideoCallSession.tsx +207 -378
  127. package/src/components/VideoCalls/callActions.ts +63 -0
  128. package/src/components/VideoCalls/callSessionController.ts +421 -0
  129. package/src/components/VideoCalls/useDraggable.ts +46 -0
  130. package/src/helpers/createRoomFromApi.tsx +2 -0
  131. package/src/helpers/incomingCallFromPush.ts +2 -2
  132. package/src/helpers/roomUserCount.ts +6 -2
  133. package/src/helpers/uniqueMembers.ts +26 -0
  134. package/src/hooks/useLeaveRoom.ts +42 -0
  135. package/src/i18n/strings.ts +18 -0
  136. package/src/networking/api-requests/rooms.api.ts +28 -1
  137. package/src/networking/callTokenStanza.ts +46 -6
  138. package/src/networking/xmppClient.ts +10 -1
  139. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","ActivityIndicator","Platform","StyleSheet","Text","TouchableOpacity","View","ProfileImagePlaceholder","CameraOffIcon","CameraOnIcon","HangUpIcon","MicOffIcon","MicOnIcon","MinimizeIcon","ExpandIcon","SpeakerIcon","SpeakerOffIcon","SwitchCameraIcon","ensureLiveKitGlobals","loadLiveKit","useT","jsx","_jsx","jsxs","_jsxs","DEFAULT_PRIMARY","SURFACE_DARK","TEXT_ON_DARK","TEXT_MUTED","DANGER","CONTROL_IDLE","humanizeDeviceError","error","t","name","text","String","message","toLowerCase","includes","VideoCallSession","token","livekitUrl","kind","peerName","primaryColor","icons","startWithCameraOn","startWithMicOn","minimized","onToggleMinimize","onConnected","onError","onHangup","runtime","roomRef","connected","setConnected","deviceError","setDeviceError","micOn","setMicOn","cameraOn","setCameraOn","speakerOn","setSpeakerOn","remoteVideo","setRemoteVideo","localVideo","setLocalVideo","remoteName","setRemoteName","remoteJoined","setRemoteJoined","callbacksRef","current","toTrackRef","participant","Track","publication","getTrackPublication","Source","Camera","track","source","resyncTracks","room","remote","Array","from","remoteParticipants","values","identity","localParticipant","Room","RoomEvent","AudioSession","disposed","adaptiveStream","dynacast","onStateChange","on","TrackSubscribed","TrackUnsubscribed","LocalTrackPublished","LocalTrackUnpublished","TrackMuted","TrackUnmuted","ParticipantConnected","MediaDevicesError","ParticipantDisconnected","Disconnected","startAudioSession","connect","setMicrophoneEnabled","setCameraEnabled","setAppleAudioConfiguration","audioCategory","audioMode","removeAllListeners","disconnect","stopAudioSession","toggleMic","next","toggleCamera","switchCamera","restartTrack","facingMode","mediaStreamTrack","getSettings","toggleSpeaker","OS","selectAudioOutput","audioCategoryOptions","style","styles","canvas","centered","children","errorText","VideoTrack","displayName","isVideo","showRemoteVideo","miniBar","miniInfo","numberOfLines","miniName","miniStatus","accessibilityRole","accessibilityLabel","onPress","miniButton","backgroundColor","color","size","hangup","deviceErrorBanner","deviceErrorText","stage","trackRef","objectFit","stageName","stageStatus","spinner","pip","pipVideo","mirror","minimizeButton","controls","controlButton","micOff","cameraOff","hangupButton","create","flex","alignItems","justifyContent","gap","position","overflow","fontSize","marginTop","right","top","width","height","borderRadius","borderWidth","borderColor","left","flexDirection","paddingVertical","paddingHorizontal","textAlign","zIndex","minWidth"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/VideoCallSession.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","ActivityIndicator","Animated","StyleSheet","Text","TouchableOpacity","View","useSafeAreaInsets","ProfileImagePlaceholder","CameraOffIcon","CameraOnIcon","HangUpIcon","MicOffIcon","MicOnIcon","MinimizeIcon","ExpandIcon","SpeakerIcon","SpeakerOffIcon","SwitchCameraIcon","loadLiveKit","dismissCallDeviceError","switchCallCamera","toggleCallCamera","toggleCallMic","toggleCallSpeaker","useCallSession","useDraggable","useT","jsx","_jsx","jsxs","_jsxs","DEFAULT_PRIMARY","SURFACE_DARK","TEXT_ON_DARK","TEXT_MUTED","DANGER","CONTROL_IDLE","useSharedCallElapsed","anchorAt","tick","id","setInterval","n","clearInterval","Math","max","floor","Date","now","formatCallDuration","totalSeconds","safe","hours","minutes","seconds","mm","String","padStart","ss","VideoCallSession","kind","peerName","primaryColor","icons","minimized","onToggleMinimize","onHangup","t","insets","runtime","session","selfView","elapsed","style","styles","canvas","centered","children","errorText","VideoTrack","connected","remoteJoined","remoteVideo","localVideo","micOn","cameraOn","speakerOn","deviceError","remoteMicMuted","displayName","remoteName","isVideo","showRemoteVideo","statusText","peerMutedLabel","name","miniBar","size","miniInfo","numberOfLines","miniName","miniStatus","accessibilityRole","accessibilityLabel","onPress","miniButton","backgroundColor","color","micOff","hangup","stage","trackRef","objectFit","stageName","stageStatus","spinner","pill","pillDanger","pillDangerText","pillText","header","paddingTop","top","headerName","headerStatus","headerPill","panHandlers","pip","pipVideo","mirror","minimizeButton","deviceErrorBanner","deviceErrorText","controls","paddingBottom","bottom","controlButton","cameraOff","hangupButton","create","flex","alignItems","justifyContent","gap","paddingHorizontal","position","overflow","fontSize","marginTop","textAlign","fontVariant","left","right","fontWeight","flexDirection","paddingVertical","borderRadius","borderWidth","borderColor","width","height","zIndex","minWidth"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/VideoCallSession.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import { store } from '../../roomStore';
4
+ import { declineIncomingCall, endCall } from '../../roomStore/callSlice';
5
+ import { addRoomMessage } from '../../roomStore/roomsSlice';
6
+ import { buildLocalCallLogMessage } from '../../helpers/callLogMessage';
7
+ import { sendCallStateSignal } from '../../networking/callTokenStanza';
8
+ import { translateKey } from '../../i18n/strings';
9
+
10
+ /**
11
+ * Call teardown that doesn't need a mounted component.
12
+ *
13
+ * It used to live inside VideoCallOverlay, which meant only a rendered
14
+ * overlay could end a call. The LiveKit session now outlives the UI
15
+ * (callSessionController.ts), so the session's own "peer left" and
16
+ * "disconnected" events need the same teardown, with the same local log
17
+ * entry and the same signal to the peer.
18
+ */
19
+ export const terminateActiveCall = state => {
20
+ // Write a local "call ended" log entry BEFORE endCall() wipes the call
21
+ // slice. The authoritative entry is a server call-state broadcast, but
22
+ // that isn't guaranteed to arrive, so we synthesize our own. It's
23
+ // deduped against any server copy by callId in addRoomMessage.
24
+ const snap = store.getState().call;
25
+ if (snap.phase === 'idle') {
26
+ return;
27
+ }
28
+ if (snap.roomJid && (snap.callId || snap.connectedAt)) {
29
+ const durationMs = snap.connectedAt ? Math.max(0, Date.now() - snap.connectedAt) : 0;
30
+ store.dispatch(addRoomMessage({
31
+ roomJID: snap.roomJid,
32
+ message: buildLocalCallLogMessage({
33
+ callId: snap.callId || '',
34
+ direction: snap.direction === 'incoming' ? 'incoming' : 'outgoing',
35
+ durationMs,
36
+ kind: snap.kind === 'audio' ? 'audio' : 'video',
37
+ selfXmppUsername: store.getState().chatSettingStore.user?.xmppUsername || ''
38
+ })
39
+ }));
40
+ }
41
+ sendCallStateSignal(state);
42
+ store.dispatch(endCall());
43
+ };
44
+ export const declineActiveCall = () => {
45
+ sendCallStateSignal('declined');
46
+ store.dispatch(declineIncomingCall());
47
+ };
48
+
49
+ /** `t` for code outside React, resolved by the same rule as useT. */
50
+ export const translateCallString = (key, vars) => {
51
+ const settings = store.getState().chatSettingStore;
52
+ const locale = settings?.uiLocale || settings?.config?.i18n?.locale || settings?.langSource;
53
+ return translateKey(key, locale, settings?.config?.i18n?.strings, vars);
54
+ };
55
+ //# sourceMappingURL=callActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["store","declineIncomingCall","endCall","addRoomMessage","buildLocalCallLogMessage","sendCallStateSignal","translateKey","terminateActiveCall","state","snap","getState","call","phase","roomJid","callId","connectedAt","durationMs","Math","max","Date","now","dispatch","roomJID","message","direction","kind","selfXmppUsername","chatSettingStore","user","xmppUsername","declineActiveCall","translateCallString","key","vars","settings","locale","uiLocale","config","i18n","langSource","strings"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/callActions.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,iBAAiB;AACvC,SAASC,mBAAmB,EAAEC,OAAO,QAAQ,2BAA2B;AACxE,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,wBAAwB,QAAQ,8BAA8B;AACvE,SAEEC,mBAAmB,QACd,kCAAkC;AACzC,SAASC,YAAY,QAAQ,oBAAoB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAIC,KAAsB,IAAW;EACnE;EACA;EACA;EACA;EACA,MAAMC,IAAI,GAAGT,KAAK,CAACU,QAAQ,CAAC,CAAC,CAACC,IAAI;EAClC,IAAIF,IAAI,CAACG,KAAK,KAAK,MAAM,EAAE;IAAC;EAAO;EACnC,IAAIH,IAAI,CAACI,OAAO,KAAKJ,IAAI,CAACK,MAAM,IAAIL,IAAI,CAACM,WAAW,CAAC,EAAE;IACrD,MAAMC,UAAU,GAAGP,IAAI,CAACM,WAAW,GAC/BE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGX,IAAI,CAACM,WAAW,CAAC,GAC1C,CAAC;IACLf,KAAK,CAACqB,QAAQ,CACZlB,cAAc,CAAC;MACbmB,OAAO,EAAEb,IAAI,CAACI,OAAO;MACrBU,OAAO,EAAEnB,wBAAwB,CAAC;QAChCU,MAAM,EAAEL,IAAI,CAACK,MAAM,IAAI,EAAE;QACzBU,SAAS,EAAEf,IAAI,CAACe,SAAS,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU;QAClER,UAAU;QACVS,IAAI,EAAEhB,IAAI,CAACgB,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO;QAC/CC,gBAAgB,EACd1B,KAAK,CAACU,QAAQ,CAAC,CAAC,CAACiB,gBAAgB,CAACC,IAAI,EAAEC,YAAY,IAAI;MAC5D,CAAC;IACH,CAAC,CACH,CAAC;EACH;EACAxB,mBAAmB,CAACG,KAAK,CAAC;EAC1BR,KAAK,CAACqB,QAAQ,CAACnB,OAAO,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,OAAO,MAAM4B,iBAAiB,GAAGA,CAAA,KAAY;EAC3CzB,mBAAmB,CAAC,UAAU,CAAC;EAC/BL,KAAK,CAACqB,QAAQ,CAACpB,mBAAmB,CAAC,CAAC,CAAC;AACvC,CAAC;;AAED;AACA,OAAO,MAAM8B,mBAAmB,GAAGA,CACjCC,GAAW,EACXC,IAAsC,KAC3B;EACX,MAAMC,QAAQ,GAAGlC,KAAK,CAACU,QAAQ,CAAC,CAAC,CAACiB,gBAAuB;EACzD,MAAMQ,MAAM,GACVD,QAAQ,EAAEE,QAAQ,IAAIF,QAAQ,EAAEG,MAAM,EAAEC,IAAI,EAAEH,MAAM,IAAID,QAAQ,EAAEK,UAAU;EAC9E,OAAOjC,YAAY,CAAC0B,GAAG,EAAEG,MAAM,EAAED,QAAQ,EAAEG,MAAM,EAAEC,IAAI,EAAEE,OAAO,EAAEP,IAAI,CAAC;AACzE,CAAC","ignoreList":[]}
@@ -0,0 +1,420 @@
1
+ "use strict";
2
+
3
+ import { useSyncExternalStore } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import { store } from '../../roomStore';
6
+ import { setCallError, setCallPhase } from '../../roomStore/callSlice';
7
+ import { ensureLiveKitGlobals, loadLiveKit } from './livekitRuntime';
8
+ import { terminateActiveCall, translateCallString } from './callActions';
9
+
10
+ /**
11
+ * The LiveKit connection of the current call, owned outside React.
12
+ *
13
+ * It used to live in VideoCallSession's effect, so the connection was as
14
+ * long-lived as that component instance. Minimizing swapped the Modal for a
15
+ * floating View, React remounted the session, the effect cleanup
16
+ * disconnected, and the peer saw us leave (and hung up). The web SDK avoids
17
+ * that by keeping one LiveKitRoom element mounted across both layouts; the
18
+ * RN equivalent is to not tie the room to a component at all.
19
+ *
20
+ * Lifetime is driven by the call slice: a session exists while the call is
21
+ * 'connecting' or 'in-call' with a token, and is torn down by a store
22
+ * subscription the moment that stops being true (hangup, remote end,
23
+ * logout's resetCall), whether or not any call UI is mounted. Components
24
+ * only read the snapshot and call the controls.
25
+ */
26
+
27
+ const IDLE = {
28
+ active: false,
29
+ connected: false,
30
+ deviceError: null,
31
+ micOn: true,
32
+ cameraOn: false,
33
+ speakerOn: false,
34
+ remoteVideo: null,
35
+ localVideo: null,
36
+ remoteName: null,
37
+ remoteJoined: false,
38
+ remoteMicMuted: false,
39
+ anchorAt: null
40
+ };
41
+ let session = null;
42
+ let snapshot = IDLE;
43
+ const listeners = new Set();
44
+ let storeUnsubscribe = null;
45
+ const emit = patch => {
46
+ snapshot = {
47
+ ...snapshot,
48
+ ...patch
49
+ };
50
+ listeners.forEach(listener => listener());
51
+ };
52
+ const subscribe = listener => {
53
+ listeners.add(listener);
54
+ return () => {
55
+ listeners.delete(listener);
56
+ };
57
+ };
58
+ const getSnapshot = () => snapshot;
59
+ export const useCallSession = () => useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
60
+ const sessionKey = (livekitUrl, token) => `${livekitUrl}|${token}`;
61
+
62
+ // A device (camera/mic) permission/availability problem during enable,
63
+ // distinct from a connect failure. Mirrors the web SDK's humanizeDeviceError.
64
+ const humanizeDeviceError = error => {
65
+ const name = error?.name || '';
66
+ const text = String(error?.message || '').toLowerCase();
67
+ if (name === 'NotAllowedError' || text.includes('permission') || text.includes('denied')) {
68
+ return translateCallString('call.error.deviceBlocked');
69
+ }
70
+ if (name === 'NotFoundError' || text.includes('not found')) {
71
+ return translateCallString('call.error.deviceNotFound');
72
+ }
73
+ if (name === 'NotReadableError' || text.includes('in use')) {
74
+ return translateCallString('call.error.deviceInUse');
75
+ }
76
+ return translateCallString('call.error.deviceGeneric');
77
+ };
78
+
79
+ // Only a live, unmuted track gets a video surface, so the stage never
80
+ // flips between an avatar and a black frame (web's hasLiveVideo).
81
+ const liveVideoRef = (participant, Track) => {
82
+ if (!participant) {
83
+ return null;
84
+ }
85
+ const publication = participant.getTrackPublication?.(Track.Source.Camera);
86
+ if (!publication?.track || publication.isMuted) {
87
+ return null;
88
+ }
89
+ return {
90
+ participant,
91
+ publication,
92
+ source: Track.Source.Camera
93
+ };
94
+ };
95
+ const joinedAtMs = participant => {
96
+ const value = participant?.joinedAt;
97
+ const ms = value ? new Date(value).getTime() : 0;
98
+ return Number.isFinite(ms) ? ms : 0;
99
+ };
100
+ const resync = () => {
101
+ const current = session;
102
+ const runtime = loadLiveKit();
103
+ if (!current || current.disposed || !runtime) {
104
+ return;
105
+ }
106
+ const {
107
+ Track
108
+ } = runtime;
109
+ const room = current.room;
110
+ const remote = Array.from(room.remoteParticipants?.values?.() || [])[0];
111
+ if (remote) {
112
+ current.everJoined = true;
113
+ }
114
+ const remoteMic = remote?.getTrackPublication?.(Track.Source.Microphone);
115
+ const localJoined = joinedAtMs(room.localParticipant);
116
+ const remoteJoinedAt = joinedAtMs(remote);
117
+ emit({
118
+ remoteJoined: !!remote,
119
+ remoteName: remote?.name || remote?.identity || null,
120
+ remoteVideo: liveVideoRef(remote, Track),
121
+ localVideo: liveVideoRef(room.localParticipant, Track),
122
+ remoteMicMuted: !!remote && (!remoteMic || remoteMic.isMuted !== false),
123
+ anchorAt: remote && localJoined && remoteJoinedAt ? Math.max(localJoined, remoteJoinedAt) : remote ? snapshot.anchorAt ?? Date.now() : null
124
+ });
125
+ };
126
+ export const stopCallSession = () => {
127
+ const current = session;
128
+ if (!current) {
129
+ return;
130
+ }
131
+ current.disposed = true;
132
+ session = null;
133
+ try {
134
+ current.room.removeAllListeners?.();
135
+ void current.room.disconnect();
136
+ } catch {
137
+ // Already gone.
138
+ }
139
+ try {
140
+ void loadLiveKit()?.AudioSession?.stopAudioSession();
141
+ } catch {
142
+ // Never let teardown throw.
143
+ }
144
+ snapshot = IDLE;
145
+ listeners.forEach(listener => listener());
146
+ };
147
+
148
+ // Tear the session down as soon as the call slice says there is no call to
149
+ // carry it any more, independent of what UI happens to be mounted.
150
+ const ensureStoreWatcher = () => {
151
+ if (storeUnsubscribe) {
152
+ return;
153
+ }
154
+ storeUnsubscribe = store.subscribe(() => {
155
+ if (!session) {
156
+ return;
157
+ }
158
+ const call = store.getState().call;
159
+ const live = !!call.token && (call.phase === 'connecting' || call.phase === 'in-call');
160
+ if (!live || !session.key.endsWith(`|${call.token}`)) {
161
+ stopCallSession();
162
+ }
163
+ });
164
+ };
165
+ /**
166
+ * Join the LiveKit room for the current call. Idempotent per (url, token):
167
+ * calling it again from a remounted overlay re-attaches to the same room.
168
+ */
169
+ export const startCallSession = ({
170
+ token,
171
+ livekitUrl,
172
+ kind,
173
+ startWithMicOn = true,
174
+ startWithCameraOn = true
175
+ }) => {
176
+ const key = sessionKey(livekitUrl, token);
177
+ if (session?.key === key) {
178
+ return;
179
+ }
180
+ stopCallSession();
181
+ ensureStoreWatcher();
182
+ const runtime = loadLiveKit();
183
+ if (!runtime) {
184
+ store.dispatch(setCallError(translateCallString('call.error.sdkMissing')));
185
+ return;
186
+ }
187
+ if (!token || !livekitUrl) {
188
+ store.dispatch(setCallError(translateCallString('call.error.missingConfig')));
189
+ return;
190
+ }
191
+ ensureLiveKitGlobals(runtime);
192
+ const {
193
+ Room,
194
+ RoomEvent,
195
+ AudioSession
196
+ } = runtime;
197
+
198
+ // adaptiveStream + dynacast keep mobile data and battery sane: the SDK
199
+ // drops resolution for a small tile and stops publishing layers nobody
200
+ // subscribes to. Both are safe defaults for 1:1.
201
+ const room = new Room({
202
+ adaptiveStream: true,
203
+ dynacast: true
204
+ });
205
+ const current = {
206
+ key,
207
+ room,
208
+ kind,
209
+ disposed: false,
210
+ everJoined: false
211
+ };
212
+ session = current;
213
+ snapshot = {
214
+ ...IDLE,
215
+ active: true,
216
+ micOn: startWithMicOn,
217
+ cameraOn: kind === 'video' && startWithCameraOn,
218
+ // Video calls belong on the loudspeaker, audio calls on the earpiece.
219
+ speakerOn: kind === 'video'
220
+ };
221
+ listeners.forEach(listener => listener());
222
+ const onChange = () => {
223
+ if (!current.disposed) {
224
+ resync();
225
+ }
226
+ };
227
+ room.on(RoomEvent.TrackSubscribed, onChange).on(RoomEvent.TrackUnsubscribed, onChange).on(RoomEvent.TrackPublished, onChange).on(RoomEvent.TrackUnpublished, onChange).on(RoomEvent.LocalTrackPublished, onChange).on(RoomEvent.LocalTrackUnpublished, onChange).on(RoomEvent.TrackMuted, onChange).on(RoomEvent.TrackUnmuted, onChange).on(RoomEvent.ParticipantConnected, onChange).on(RoomEvent.MediaDevicesError, error => {
228
+ if (current.disposed) {
229
+ return;
230
+ }
231
+ emit({
232
+ deviceError: humanizeDeviceError(error)
233
+ });
234
+ }).on(RoomEvent.ParticipantDisconnected, () => {
235
+ if (current.disposed) {
236
+ return;
237
+ }
238
+ resync();
239
+ // 1:1 semantics, as web's PeerLeaveWatcher: once the peer had been
240
+ // in the room, their leaving IS the end of the call. Before they
241
+ // join (outgoing "Ringing...") an empty room is expected.
242
+ if (current.everJoined && (room.remoteParticipants?.size ?? 0) === 0) {
243
+ terminateActiveCall('ended');
244
+ }
245
+ }).on(RoomEvent.Disconnected, () => {
246
+ if (current.disposed) {
247
+ return;
248
+ }
249
+ emit({
250
+ connected: false
251
+ });
252
+ terminateActiveCall('ended');
253
+ });
254
+ (async () => {
255
+ // Joining the LiveKit room is the only step whose failure should fail
256
+ // the call (bad token, network, server down). Device setup below is
257
+ // best-effort.
258
+ try {
259
+ // Claims audio focus and sets the right native audio mode. Must
260
+ // start BEFORE connecting or the first seconds route to the earpiece
261
+ // on Android even for a video call.
262
+ await AudioSession.startAudioSession();
263
+ await room.connect(livekitUrl, token);
264
+ } catch (error) {
265
+ if (current.disposed) {
266
+ return;
267
+ }
268
+ stopCallSession();
269
+ store.dispatch(setCallError(String(error?.message || '') || translateCallString('call.error.connectFailed')));
270
+ return;
271
+ }
272
+ if (current.disposed) {
273
+ return;
274
+ }
275
+
276
+ // Devices are best-effort: a blocked permission or the iOS Simulator
277
+ // (no camera at all) must not kill a call that connected fine.
278
+ try {
279
+ await room.localParticipant.setMicrophoneEnabled(startWithMicOn);
280
+ } catch (error) {
281
+ if (!current.disposed) {
282
+ emit({
283
+ deviceError: humanizeDeviceError(error)
284
+ });
285
+ }
286
+ }
287
+ if (kind === 'video') {
288
+ try {
289
+ await room.localParticipant.setCameraEnabled(startWithCameraOn);
290
+ } catch (error) {
291
+ if (!current.disposed) {
292
+ emit({
293
+ cameraOn: false,
294
+ deviceError: humanizeDeviceError(error)
295
+ });
296
+ }
297
+ }
298
+ }
299
+ if (current.disposed) {
300
+ return;
301
+ }
302
+ try {
303
+ await AudioSession.setAppleAudioConfiguration?.({
304
+ audioCategory: 'playAndRecord',
305
+ audioCategoryOptions: kind === 'video' ? ['defaultToSpeaker'] : [],
306
+ audioMode: kind === 'video' ? 'videoChat' : 'voiceChat'
307
+ });
308
+ } catch {
309
+ // iOS-only helper.
310
+ }
311
+ emit({
312
+ connected: true
313
+ });
314
+ resync();
315
+ store.dispatch(setCallPhase('in-call'));
316
+ })();
317
+ };
318
+
319
+ // ---- controls -----------------------------------------------------------
320
+
321
+ export const toggleCallMic = async () => {
322
+ const current = session;
323
+ if (!current) {
324
+ return;
325
+ }
326
+ const next = !snapshot.micOn;
327
+ emit({
328
+ micOn: next
329
+ });
330
+ try {
331
+ await current.room.localParticipant.setMicrophoneEnabled(next);
332
+ } catch (error) {
333
+ if (!current.disposed) {
334
+ emit({
335
+ micOn: !next,
336
+ deviceError: humanizeDeviceError(error)
337
+ });
338
+ }
339
+ }
340
+ };
341
+ export const toggleCallCamera = async () => {
342
+ const current = session;
343
+ if (!current) {
344
+ return;
345
+ }
346
+ const next = !snapshot.cameraOn;
347
+ emit({
348
+ cameraOn: next
349
+ });
350
+ try {
351
+ await current.room.localParticipant.setCameraEnabled(next);
352
+ resync();
353
+ } catch (error) {
354
+ if (!current.disposed) {
355
+ emit({
356
+ cameraOn: !next,
357
+ deviceError: humanizeDeviceError(error)
358
+ });
359
+ }
360
+ }
361
+ };
362
+ export const switchCallCamera = async () => {
363
+ const current = session;
364
+ const runtime = loadLiveKit();
365
+ if (!current || !runtime) {
366
+ return;
367
+ }
368
+ try {
369
+ const publication = current.room.localParticipant.getTrackPublication?.(runtime.Track.Source.Camera);
370
+ const track = publication?.track;
371
+ // `restartTrack` with the flipped facingMode is the portable way to
372
+ // switch cameras; the RN SDK's `_switchCamera` helper is internal.
373
+ await track?.restartTrack?.({
374
+ facingMode: track?.mediaStreamTrack?.getSettings?.().facingMode === 'environment' ? 'user' : 'environment'
375
+ });
376
+ resync();
377
+ } catch {
378
+ // Single camera, or the track is mid-restart.
379
+ }
380
+ };
381
+ export const toggleCallSpeaker = async () => {
382
+ const runtime = loadLiveKit();
383
+ if (!session || !runtime) {
384
+ return;
385
+ }
386
+ const next = !snapshot.speakerOn;
387
+ emit({
388
+ speakerOn: next
389
+ });
390
+ try {
391
+ if (Platform.OS === 'android') {
392
+ // On Android `selectAudioOutput` device ids are the literal strings
393
+ // 'speaker' / 'earpiece'.
394
+ await runtime.AudioSession.selectAudioOutput(next ? 'speaker' : 'earpiece');
395
+ } else {
396
+ await runtime.AudioSession.setAppleAudioConfiguration?.({
397
+ audioCategory: 'playAndRecord',
398
+ audioCategoryOptions: next ? ['defaultToSpeaker'] : [],
399
+ audioMode: next ? 'videoChat' : 'voiceChat'
400
+ });
401
+ }
402
+ } catch {
403
+ emit({
404
+ speakerOn: !next
405
+ });
406
+ }
407
+ };
408
+ export const dismissCallDeviceError = () => {
409
+ emit({
410
+ deviceError: null
411
+ });
412
+ };
413
+
414
+ /** Reset module state. Test seam only. */
415
+ export const __resetCallSessionForTests = () => {
416
+ stopCallSession();
417
+ storeUnsubscribe?.();
418
+ storeUnsubscribe = null;
419
+ };
420
+ //# sourceMappingURL=callSessionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSyncExternalStore","Platform","store","setCallError","setCallPhase","ensureLiveKitGlobals","loadLiveKit","terminateActiveCall","translateCallString","IDLE","active","connected","deviceError","micOn","cameraOn","speakerOn","remoteVideo","localVideo","remoteName","remoteJoined","remoteMicMuted","anchorAt","session","snapshot","listeners","Set","storeUnsubscribe","emit","patch","forEach","listener","subscribe","add","delete","getSnapshot","useCallSession","sessionKey","livekitUrl","token","humanizeDeviceError","error","name","text","String","message","toLowerCase","includes","liveVideoRef","participant","Track","publication","getTrackPublication","Source","Camera","track","isMuted","source","joinedAtMs","value","joinedAt","ms","Date","getTime","Number","isFinite","resync","current","runtime","disposed","room","remote","Array","from","remoteParticipants","values","everJoined","remoteMic","Microphone","localJoined","localParticipant","remoteJoinedAt","identity","Math","max","now","stopCallSession","removeAllListeners","disconnect","AudioSession","stopAudioSession","ensureStoreWatcher","call","getState","live","phase","key","endsWith","startCallSession","kind","startWithMicOn","startWithCameraOn","dispatch","Room","RoomEvent","adaptiveStream","dynacast","onChange","on","TrackSubscribed","TrackUnsubscribed","TrackPublished","TrackUnpublished","LocalTrackPublished","LocalTrackUnpublished","TrackMuted","TrackUnmuted","ParticipantConnected","MediaDevicesError","ParticipantDisconnected","size","Disconnected","startAudioSession","connect","setMicrophoneEnabled","setCameraEnabled","setAppleAudioConfiguration","audioCategory","audioCategoryOptions","audioMode","toggleCallMic","next","toggleCallCamera","switchCallCamera","restartTrack","facingMode","mediaStreamTrack","getSettings","toggleCallSpeaker","OS","selectAudioOutput","dismissCallDeviceError","__resetCallSessionForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/callSessionController.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import { useMemo, useRef } from 'react';
4
+ import { Animated, PanResponder } from 'react-native';
5
+
6
+ /**
7
+ * Drag a floating element around (web's useDraggable, for the self-view
8
+ * tile and the minimized call panel). The offset is kept between drags.
9
+ *
10
+ * The responder only claims the gesture once the finger actually moves a
11
+ * few points, so taps still reach the buttons inside the dragged element.
12
+ */
13
+ export const useDraggable = () => {
14
+ const position = useRef(new Animated.ValueXY({
15
+ x: 0,
16
+ y: 0
17
+ })).current;
18
+ const offset = useRef({
19
+ x: 0,
20
+ y: 0
21
+ });
22
+ const panHandlers = useMemo(() => PanResponder.create({
23
+ onMoveShouldSetPanResponder: (_event, gesture) => Math.abs(gesture.dx) > 4 || Math.abs(gesture.dy) > 4,
24
+ onPanResponderGrant: () => {
25
+ position.setOffset(offset.current);
26
+ position.setValue({
27
+ x: 0,
28
+ y: 0
29
+ });
30
+ },
31
+ onPanResponderMove: Animated.event([null, {
32
+ dx: position.x,
33
+ dy: position.y
34
+ }], {
35
+ useNativeDriver: false
36
+ }),
37
+ onPanResponderRelease: (_event, gesture) => {
38
+ offset.current = {
39
+ x: offset.current.x + gesture.dx,
40
+ y: offset.current.y + gesture.dy
41
+ };
42
+ position.flattenOffset();
43
+ },
44
+ onPanResponderTerminate: () => {
45
+ position.flattenOffset();
46
+ }
47
+ }).panHandlers, [position]);
48
+ return {
49
+ panHandlers,
50
+ style: {
51
+ transform: position.getTranslateTransform()
52
+ }
53
+ };
54
+ };
55
+ //# sourceMappingURL=useDraggable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useRef","Animated","PanResponder","useDraggable","position","ValueXY","x","y","current","offset","panHandlers","create","onMoveShouldSetPanResponder","_event","gesture","Math","abs","dx","dy","onPanResponderGrant","setOffset","setValue","onPanResponderMove","event","useNativeDriver","onPanResponderRelease","flattenOffset","onPanResponderTerminate","style","transform","getTranslateTransform"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useDraggable.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACvC,SAASC,QAAQ,EAAEC,YAAY,QAAQ,cAAc;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAChC,MAAMC,QAAQ,GAAGJ,MAAM,CAAC,IAAIC,QAAQ,CAACI,OAAO,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC,CAAC,CAACC,OAAO;EACrE,MAAMC,MAAM,GAAGT,MAAM,CAAC;IAAEM,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC;EAErC,MAAMG,WAAW,GAAGX,OAAO,CACzB,MACEG,YAAY,CAACS,MAAM,CAAC;IAClBC,2BAA2B,EAAEA,CAACC,MAAM,EAAEC,OAAO,KAC3CC,IAAI,CAACC,GAAG,CAACF,OAAO,CAACG,EAAE,CAAC,GAAG,CAAC,IAAIF,IAAI,CAACC,GAAG,CAACF,OAAO,CAACI,EAAE,CAAC,GAAG,CAAC;IACtDC,mBAAmB,EAAEA,CAAA,KAAM;MACzBf,QAAQ,CAACgB,SAAS,CAACX,MAAM,CAACD,OAAO,CAAC;MAClCJ,QAAQ,CAACiB,QAAQ,CAAC;QAAEf,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC,CAAC;IACnC,CAAC;IACDe,kBAAkB,EAAErB,QAAQ,CAACsB,KAAK,CAChC,CAAC,IAAI,EAAE;MAAEN,EAAE,EAAEb,QAAQ,CAACE,CAAC;MAAEY,EAAE,EAAEd,QAAQ,CAACG;IAAE,CAAC,CAAC,EAC1C;MAAEiB,eAAe,EAAE;IAAM,CAC3B,CAAC;IACDC,qBAAqB,EAAEA,CAACZ,MAAM,EAAEC,OAAO,KAAK;MAC1CL,MAAM,CAACD,OAAO,GAAG;QACfF,CAAC,EAAEG,MAAM,CAACD,OAAO,CAACF,CAAC,GAAGQ,OAAO,CAACG,EAAE;QAChCV,CAAC,EAAEE,MAAM,CAACD,OAAO,CAACD,CAAC,GAAGO,OAAO,CAACI;MAChC,CAAC;MACDd,QAAQ,CAACsB,aAAa,CAAC,CAAC;IAC1B,CAAC;IACDC,uBAAuB,EAAEA,CAAA,KAAM;MAC7BvB,QAAQ,CAACsB,aAAa,CAAC,CAAC;IAC1B;EACF,CAAC,CAAC,CAAChB,WAAW,EAChB,CAACN,QAAQ,CACX,CAAC;EAED,OAAO;IACLM,WAAW;IACXkB,KAAK,EAAE;MAAEC,SAAS,EAAEzB,QAAQ,CAAC0B,qBAAqB,CAAC;IAAE;EACvD,CAAC;AACH,CAAC","ignoreList":[]}