@livekit/react-native 2.2.0 → 2.3.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.
Files changed (104) hide show
  1. package/README.md +14 -5
  2. package/android/build.gradle +1 -1
  3. package/android/gradle/wrapper/gradle-wrapper.properties +3 -1
  4. package/android/gradlew +29 -14
  5. package/android/gradlew.bat +19 -16
  6. package/android/src/main/java/com/livekit/reactnative/video/SimulcastVideoEncoderFactoryWrapper.kt +2 -2
  7. package/lib/commonjs/audio/AudioManager.js +4 -27
  8. package/lib/commonjs/audio/AudioManager.js.map +1 -1
  9. package/lib/commonjs/audio/AudioSession.js +55 -21
  10. package/lib/commonjs/audio/AudioSession.js.map +1 -1
  11. package/lib/commonjs/components/LiveKitRoom.js +3 -6
  12. package/lib/commonjs/components/LiveKitRoom.js.map +1 -1
  13. package/lib/commonjs/components/VideoTrack.js +30 -66
  14. package/lib/commonjs/components/VideoTrack.js.map +1 -1
  15. package/lib/commonjs/components/VideoView.js +32 -63
  16. package/lib/commonjs/components/VideoView.js.map +1 -1
  17. package/lib/commonjs/components/ViewPortDetector.js +15 -62
  18. package/lib/commonjs/components/ViewPortDetector.js.map +1 -1
  19. package/lib/commonjs/hooks.js +0 -63
  20. package/lib/commonjs/hooks.js.map +1 -1
  21. package/lib/commonjs/index.js +9 -84
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/logger.js +4 -14
  24. package/lib/commonjs/logger.js.map +1 -1
  25. package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js +16 -42
  26. package/lib/commonjs/polyfills/EncoderDecoderTogether.min.js.map +1 -1
  27. package/lib/commonjs/useParticipant.js +5 -13
  28. package/lib/commonjs/useParticipant.js.map +1 -1
  29. package/lib/commonjs/useRoom.js +17 -33
  30. package/lib/commonjs/useRoom.js.map +1 -1
  31. package/lib/module/audio/AudioManager.js +3 -17
  32. package/lib/module/audio/AudioManager.js.map +1 -1
  33. package/lib/module/audio/AudioSession.js +54 -14
  34. package/lib/module/audio/AudioSession.js.map +1 -1
  35. package/lib/module/components/LiveKitRoom.js +1 -0
  36. package/lib/module/components/LiveKitRoom.js.map +1 -1
  37. package/lib/module/components/VideoTrack.js +18 -44
  38. package/lib/module/components/VideoTrack.js.map +1 -1
  39. package/lib/module/components/VideoView.js +18 -42
  40. package/lib/module/components/VideoView.js.map +1 -1
  41. package/lib/module/components/ViewPortDetector.js +13 -54
  42. package/lib/module/components/ViewPortDetector.js.map +1 -1
  43. package/lib/module/hooks.js +1 -2
  44. package/lib/module/hooks.js.map +1 -1
  45. package/lib/module/index.js +5 -23
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/logger.js +2 -6
  48. package/lib/module/logger.js.map +1 -1
  49. package/lib/module/polyfills/EncoderDecoderTogether.min.js +16 -42
  50. package/lib/module/polyfills/EncoderDecoderTogether.min.js.map +1 -1
  51. package/lib/module/useParticipant.js +5 -11
  52. package/lib/module/useParticipant.js.map +1 -1
  53. package/lib/module/useRoom.js +17 -30
  54. package/lib/module/useRoom.js.map +1 -1
  55. package/lib/typescript/babel.config.d.ts +1 -0
  56. package/lib/typescript/docs/assets/icons.d.ts +0 -0
  57. package/lib/typescript/docs/assets/main.d.ts +0 -0
  58. package/lib/typescript/docs/assets/navigation.d.ts +0 -0
  59. package/lib/typescript/docs/assets/search.d.ts +0 -0
  60. package/lib/typescript/lib/commonjs/audio/AudioManager.d.ts +10 -0
  61. package/lib/typescript/lib/commonjs/audio/AudioSession.d.ts +33 -0
  62. package/lib/typescript/lib/commonjs/components/LiveKitRoom.d.ts +20 -0
  63. package/lib/typescript/lib/commonjs/components/VideoTrack.d.ts +8 -0
  64. package/lib/typescript/lib/commonjs/components/VideoView.d.ts +14 -0
  65. package/lib/typescript/lib/commonjs/components/ViewPortDetector.d.ts +30 -0
  66. package/lib/typescript/lib/commonjs/hooks.d.ts +29 -0
  67. package/lib/typescript/lib/commonjs/index.d.ts +10 -0
  68. package/lib/typescript/lib/commonjs/logger.d.ts +8 -0
  69. package/lib/typescript/lib/commonjs/useParticipant.d.ts +14 -0
  70. package/lib/typescript/lib/commonjs/useRoom.d.ts +16 -0
  71. package/lib/typescript/lib/module/audio/AudioManager.d.ts +9 -0
  72. package/lib/typescript/lib/module/audio/AudioSession.d.ts +31 -0
  73. package/lib/typescript/lib/module/components/LiveKitRoom.d.ts +22 -0
  74. package/lib/typescript/lib/module/components/VideoTrack.d.ts +9 -0
  75. package/lib/typescript/lib/module/components/VideoView.d.ts +9 -0
  76. package/lib/typescript/lib/module/components/ViewPortDetector.d.ts +29 -0
  77. package/lib/typescript/lib/module/hooks.d.ts +1 -0
  78. package/lib/typescript/lib/module/index.d.ts +18 -0
  79. package/lib/typescript/lib/module/logger.d.ts +8 -0
  80. package/lib/typescript/lib/module/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
  81. package/lib/typescript/lib/module/useParticipant.d.ts +13 -0
  82. package/lib/typescript/lib/module/useRoom.d.ts +15 -0
  83. package/lib/typescript/scripts/bootstrap.d.ts +1 -0
  84. package/lib/typescript/{audio → src/audio}/AudioSession.d.ts +7 -7
  85. package/lib/typescript/{components → src/components}/LiveKitRoom.d.ts +1 -1
  86. package/lib/typescript/{components → src/components}/VideoTrack.d.ts +2 -2
  87. package/lib/typescript/{components → src/components}/VideoView.d.ts +3 -3
  88. package/lib/typescript/{components → src/components}/ViewPortDetector.d.ts +3 -3
  89. package/lib/typescript/src/hooks.d.ts +3 -0
  90. package/lib/typescript/{index.d.ts → src/index.d.ts} +3 -2
  91. package/lib/typescript/{logger.d.ts → src/logger.d.ts} +2 -2
  92. package/lib/typescript/src/polyfills/EncoderDecoderTogether.min.d.ts +0 -0
  93. package/lib/typescript/{useRoom.d.ts → src/useRoom.d.ts} +1 -1
  94. package/package.json +23 -19
  95. package/src/components/LiveKitRoom.tsx +1 -1
  96. package/src/components/VideoTrack.tsx +7 -2
  97. package/src/components/VideoView.tsx +8 -3
  98. package/src/components/ViewPortDetector.tsx +4 -4
  99. package/src/hooks.ts +11 -9
  100. package/src/index.tsx +10 -8
  101. package/src/useRoom.ts +1 -1
  102. package/lib/typescript/hooks.d.ts +0 -2
  103. /package/lib/typescript/{audio → src/audio}/AudioManager.d.ts +0 -0
  104. /package/lib/typescript/{useParticipant.d.ts → src/useParticipant.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
3
4
  import * as React from 'react';
4
5
  import { StyleSheet, View } from 'react-native';
5
6
  import { LocalVideoTrack, TrackEvent } from 'livekit-client';
@@ -7,6 +8,7 @@ import { RTCView } from '@livekit/react-native-webrtc';
7
8
  import { useCallback, useEffect, useMemo, useState } from 'react';
8
9
  import { RemoteVideoTrack } from 'livekit-client';
9
10
  import ViewPortDetector from './ViewPortDetector';
11
+
10
12
  /**
11
13
  * @deprecated use `VideoTrack` and `VideoTrackProps` instead.
12
14
  */
@@ -14,16 +16,13 @@ import ViewPortDetector from './ViewPortDetector';
14
16
  /**
15
17
  * @deprecated use `VideoTrack` and `VideoTrackProps` instead.
16
18
  */
17
- export const VideoView = _ref => {
18
- var _mediaStream$toURL;
19
-
20
- let {
21
- style = {},
22
- videoTrack,
23
- objectFit = 'cover',
24
- zOrder,
25
- mirror
26
- } = _ref;
19
+ export const VideoView = ({
20
+ style = {},
21
+ videoTrack,
22
+ objectFit = 'cover',
23
+ zOrder,
24
+ mirror
25
+ }) => {
27
26
  const [elementInfo] = useState(() => {
28
27
  let info = new VideoViewElementInfo();
29
28
  info.id = videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.sid;
@@ -38,12 +37,10 @@ export const VideoView = _ref => {
38
37
  const [mediaStream, setMediaStream] = useState(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
39
38
  useEffect(() => {
40
39
  setMediaStream(videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.mediaStream);
41
-
42
40
  if (videoTrack instanceof LocalVideoTrack) {
43
41
  const onRestarted = track => {
44
42
  setMediaStream(track === null || track === void 0 ? void 0 : track.mediaStream);
45
43
  };
46
-
47
44
  videoTrack.on(TrackEvent.Restarted, onRestarted);
48
45
  return () => {
49
46
  videoTrack.off(TrackEvent.Restarted, onRestarted);
@@ -54,16 +51,17 @@ export const VideoView = _ref => {
54
51
  }, [videoTrack]);
55
52
  useEffect(() => {
56
53
  if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {
57
- videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.observeElementInfo(elementInfo);
54
+ videoTrack === null || videoTrack === void 0 || videoTrack.observeElementInfo(elementInfo);
58
55
  return () => {
59
- videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.stopObservingElementInfo(elementInfo);
56
+ videoTrack === null || videoTrack === void 0 || videoTrack.stopObservingElementInfo(elementInfo);
60
57
  };
61
58
  } else {
62
59
  return () => {};
63
60
  }
64
61
  }, [videoTrack, elementInfo]);
65
62
  return /*#__PURE__*/React.createElement(View, {
66
- style: { ...style,
63
+ style: {
64
+ ...style,
67
65
  ...styles.container
68
66
  },
69
67
  onLayout: layoutOnChange
@@ -74,7 +72,7 @@ export const VideoView = _ref => {
74
72
  propKey: videoTrack
75
73
  }, /*#__PURE__*/React.createElement(RTCView, {
76
74
  style: styles.videoView,
77
- streamURL: (_mediaStream$toURL = mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.toURL()) !== null && _mediaStream$toURL !== void 0 ? _mediaStream$toURL : '',
75
+ streamURL: (mediaStream === null || mediaStream === void 0 ? void 0 : mediaStream.toURL()) ?? '',
78
76
  objectFit: objectFit,
79
77
  zOrder: zOrder,
80
78
  mirror: mirror
@@ -87,44 +85,28 @@ const styles = StyleSheet.create({
87
85
  width: '100%'
88
86
  }
89
87
  });
90
-
91
88
  class VideoViewElementInfo {
92
89
  constructor() {
93
90
  _defineProperty(this, "element", {});
94
-
95
91
  _defineProperty(this, "something", void 0);
96
-
97
92
  _defineProperty(this, "id", void 0);
98
-
99
93
  _defineProperty(this, "_width", 0);
100
-
101
94
  _defineProperty(this, "_height", 0);
102
-
103
95
  _defineProperty(this, "_observing", false);
104
-
105
96
  _defineProperty(this, "visible", true);
106
-
107
97
  _defineProperty(this, "visibilityChangedAt", void 0);
108
-
109
98
  _defineProperty(this, "pictureInPicture", false);
110
-
111
99
  _defineProperty(this, "handleResize", void 0);
112
-
113
100
  _defineProperty(this, "handleVisibilityChanged", void 0);
114
-
115
101
  _defineProperty(this, "width", () => this._width);
116
-
117
102
  _defineProperty(this, "height", () => this._height);
118
103
  }
119
-
120
104
  observe() {
121
105
  this._observing = true;
122
106
  }
123
-
124
107
  stopObserving() {
125
108
  this._observing = false;
126
109
  }
127
-
128
110
  onLayout(event) {
129
111
  let {
130
112
  width,
@@ -132,26 +114,20 @@ class VideoViewElementInfo {
132
114
  } = event.nativeEvent.layout;
133
115
  this._width = width;
134
116
  this._height = height;
135
-
136
117
  if (this._observing) {
137
118
  var _this$handleResize;
138
-
139
- (_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 ? void 0 : _this$handleResize.call(this);
119
+ (_this$handleResize = this.handleResize) === null || _this$handleResize === void 0 || _this$handleResize.call(this);
140
120
  }
141
121
  }
142
-
143
122
  onVisibility(isVisible) {
144
123
  if (this.visible !== isVisible) {
145
124
  this.visible = isVisible;
146
125
  this.visibilityChangedAt = Date.now();
147
-
148
126
  if (this._observing) {
149
127
  var _this$handleVisibilit;
150
-
151
- (_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 ? void 0 : _this$handleVisibilit.call(this);
128
+ (_this$handleVisibilit = this.handleVisibilityChanged) === null || _this$handleVisibilit === void 0 || _this$handleVisibilit.call(this);
152
129
  }
153
130
  }
154
131
  }
155
-
156
132
  }
157
133
  //# sourceMappingURL=VideoView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["VideoView.tsx"],"names":["React","StyleSheet","View","LocalVideoTrack","TrackEvent","RTCView","useCallback","useEffect","useMemo","useState","RemoteVideoTrack","ViewPortDetector","VideoView","style","videoTrack","objectFit","zOrder","mirror","elementInfo","info","VideoViewElementInfo","id","sid","something","layoutOnChange","event","onLayout","visibilityOnChange","isVisible","onVisibility","shouldObserveVisibility","isAdaptiveStream","mediaStream","setMediaStream","onRestarted","track","on","Restarted","off","observeElementInfo","stopObservingElementInfo","styles","container","videoView","toURL","create","flex","width","_width","_height","observe","_observing","stopObserving","height","nativeEvent","layout","handleResize","visible","visibilityChangedAt","Date","now","handleVisibilityChanged"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,SAA4BC,UAA5B,EAAwCC,IAAxC,QAA+D,cAA/D;AACA,SAEEC,eAFF,EAIEC,UAJF,QAMO,gBANP;AAOA,SAASC,OAAT,QAAwB,8BAAxB;AACA,SAASC,WAAT,EAAsBC,SAAtB,EAAiCC,OAAjC,EAA0CC,QAA1C,QAA0D,OAA1D;AACA,SAASC,gBAAT,QAAiC,gBAAjC;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AAEA;AACA;AACA;;AASA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GAAG,QAMZ;AAAA;;AAAA,MANa;AACxBC,IAAAA,KAAK,GAAG,EADgB;AAExBC,IAAAA,UAFwB;AAGxBC,IAAAA,SAAS,GAAG,OAHY;AAIxBC,IAAAA,MAJwB;AAKxBC,IAAAA;AALwB,GAMb;AACX,QAAM,CAACC,WAAD,IAAgBT,QAAQ,CAAC,MAAM;AACnC,QAAIU,IAAI,GAAG,IAAIC,oBAAJ,EAAX;AACAD,IAAAA,IAAI,CAACE,EAAL,GAAUP,UAAV,aAAUA,UAAV,uBAAUA,UAAU,CAAEQ,GAAtB;AACAH,IAAAA,IAAI,CAACI,SAAL,GAAiBT,UAAjB;AACA,WAAOK,IAAP;AACD,GAL6B,CAA9B;AAOA,QAAMK,cAAc,GAAGlB,WAAW,CAC/BmB,KAAD,IAA8BP,WAAW,CAACQ,QAAZ,CAAqBD,KAArB,CADE,EAEhC,CAACP,WAAD,CAFgC,CAAlC;AAIA,QAAMS,kBAAkB,GAAGrB,WAAW,CACnCsB,SAAD,IAAwBV,WAAW,CAACW,YAAZ,CAAyBD,SAAzB,CADY,EAEpC,CAACV,WAAD,CAFoC,CAAtC;AAIA,QAAMY,uBAAuB,GAAGtB,OAAO,CAAC,MAAM;AAC5C,WACEM,UAAU,YAAYJ,gBAAtB,IAA0CI,UAAU,CAACiB,gBADvD;AAGD,GAJsC,EAIpC,CAACjB,UAAD,CAJoC,CAAvC;AAMA,QAAM,CAACkB,WAAD,EAAcC,cAAd,IAAgCxB,QAAQ,CAACK,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEkB,WAAb,CAA9C;AACAzB,EAAAA,SAAS,CAAC,MAAM;AACd0B,IAAAA,cAAc,CAACnB,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEkB,WAAb,CAAd;;AACA,QAAIlB,UAAU,YAAYX,eAA1B,EAA2C;AACzC,YAAM+B,WAAW,GAAIC,KAAD,IAAyB;AAC3CF,QAAAA,cAAc,CAACE,KAAD,aAACA,KAAD,uBAACA,KAAK,CAAEH,WAAR,CAAd;AACD,OAFD;;AAGAlB,MAAAA,UAAU,CAACsB,EAAX,CAAchC,UAAU,CAACiC,SAAzB,EAAoCH,WAApC;AAEA,aAAO,MAAM;AACXpB,QAAAA,UAAU,CAACwB,GAAX,CAAelC,UAAU,CAACiC,SAA1B,EAAqCH,WAArC;AACD,OAFD;AAGD,KATD,MASO;AACL,aAAO,MAAM,CAAE,CAAf;AACD;AACF,GAdQ,EAcN,CAACpB,UAAD,CAdM,CAAT;AAgBAP,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIO,UAAU,YAAYJ,gBAAtB,IAA0CI,UAAU,CAACiB,gBAAzD,EAA2E;AACzEjB,MAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEyB,kBAAZ,CAA+BrB,WAA/B;AACA,aAAO,MAAM;AACXJ,QAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAE0B,wBAAZ,CAAqCtB,WAArC;AACD,OAFD;AAGD,KALD,MAKO;AACL,aAAO,MAAM,CAAE,CAAf;AACD;AACF,GATQ,EASN,CAACJ,UAAD,EAAaI,WAAb,CATM,CAAT;AAWA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,EAAE,GAAGL,KAAL;AAAY,SAAG4B,MAAM,CAACC;AAAtB,KAAb;AAAgD,IAAA,QAAQ,EAAElB;AAA1D,kBACE,oBAAC,gBAAD;AACE,IAAA,QAAQ,EAAEG,kBADZ;AAEE,IAAA,KAAK,EAAEc,MAAM,CAACE,SAFhB;AAGE,IAAA,QAAQ,EAAE,CAACb,uBAHb;AAIE,IAAA,OAAO,EAAEhB;AAJX,kBAME,oBAAC,OAAD;AACE,IAAA,KAAK,EAAE2B,MAAM,CAACE,SADhB;AAEE,IAAA,SAAS,wBAAEX,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEY,KAAb,EAAF,mEAA0B,EAFrC;AAGE,IAAA,SAAS,EAAE7B,SAHb;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,MAAM,EAAEC;AALV,IANF,CADF,CADF;AAkBD,CA1EM;AA4EP,MAAMwB,MAAM,GAAGxC,UAAU,CAAC4C,MAAX,CAAkB;AAC/BH,EAAAA,SAAS,EAAE,EADoB;AAE/BC,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,KAAK,EAAE;AAFE;AAFoB,CAAlB,CAAf;;AAQA,MAAM3B,oBAAN,CAAkD;AAAA;AAAA,qCAC9B,EAD8B;;AAAA;;AAAA;;AAAA,oCAIvC,CAJuC;;AAAA,qCAKtC,CALsC;;AAAA,wCAMnC,KANmC;;AAAA,qCAO7B,IAP6B;;AAAA;;AAAA,8CAS7B,KAT6B;;AAAA;;AAAA;;AAAA,mCAYxC,MAAM,KAAK4B,MAZ6B;;AAAA,oCAavC,MAAM,KAAKC,OAb4B;AAAA;;AAehDC,EAAAA,OAAO,GAAS;AACd,SAAKC,UAAL,GAAkB,IAAlB;AACD;;AACDC,EAAAA,aAAa,GAAS;AACpB,SAAKD,UAAL,GAAkB,KAAlB;AACD;;AAEDzB,EAAAA,QAAQ,CAACD,KAAD,EAA2B;AACjC,QAAI;AAAEsB,MAAAA,KAAF;AAASM,MAAAA;AAAT,QAAoB5B,KAAK,CAAC6B,WAAN,CAAkBC,MAA1C;AACA,SAAKP,MAAL,GAAcD,KAAd;AACA,SAAKE,OAAL,GAAeI,MAAf;;AAEA,QAAI,KAAKF,UAAT,EAAqB;AAAA;;AACnB,iCAAKK,YAAL;AACD;AACF;;AACD3B,EAAAA,YAAY,CAACD,SAAD,EAAqB;AAC/B,QAAI,KAAK6B,OAAL,KAAiB7B,SAArB,EAAgC;AAC9B,WAAK6B,OAAL,GAAe7B,SAAf;AACA,WAAK8B,mBAAL,GAA2BC,IAAI,CAACC,GAAL,EAA3B;;AACA,UAAI,KAAKT,UAAT,EAAqB;AAAA;;AACnB,sCAAKU,uBAAL;AACD;AACF;AACF;;AAvC+C","sourcesContent":["import * as React from 'react';\n\nimport { LayoutChangeEvent, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n ElementInfo,\n LocalVideoTrack,\n Track,\n TrackEvent,\n VideoTrack,\n} from 'livekit-client';\nimport { RTCView } from '@livekit/react-native-webrtc';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { RemoteVideoTrack } from 'livekit-client';\nimport ViewPortDetector from './ViewPortDetector';\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport type Props = {\n videoTrack?: VideoTrack | undefined;\n style?: ViewStyle;\n objectFit?: 'cover' | 'contain' | undefined;\n mirror?: boolean;\n zOrder?: number;\n};\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport const VideoView = ({\n style = {},\n videoTrack,\n objectFit = 'cover',\n zOrder,\n mirror,\n}: Props) => {\n const [elementInfo] = useState(() => {\n let info = new VideoViewElementInfo();\n info.id = videoTrack?.sid;\n info.something = videoTrack;\n return info;\n });\n\n const layoutOnChange = useCallback(\n (event: LayoutChangeEvent) => elementInfo.onLayout(event),\n [elementInfo]\n );\n const visibilityOnChange = useCallback(\n (isVisible: boolean) => elementInfo.onVisibility(isVisible),\n [elementInfo]\n );\n const shouldObserveVisibility = useMemo(() => {\n return (\n videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream\n );\n }, [videoTrack]);\n\n const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);\n useEffect(() => {\n setMediaStream(videoTrack?.mediaStream);\n if (videoTrack instanceof LocalVideoTrack) {\n const onRestarted = (track: Track | null) => {\n setMediaStream(track?.mediaStream);\n };\n videoTrack.on(TrackEvent.Restarted, onRestarted);\n\n return () => {\n videoTrack.off(TrackEvent.Restarted, onRestarted);\n };\n } else {\n return () => {};\n }\n }, [videoTrack]);\n\n useEffect(() => {\n if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {\n videoTrack?.observeElementInfo(elementInfo);\n return () => {\n videoTrack?.stopObservingElementInfo(elementInfo);\n };\n } else {\n return () => {};\n }\n }, [videoTrack, elementInfo]);\n\n return (\n <View style={{ ...style, ...styles.container }} onLayout={layoutOnChange}>\n <ViewPortDetector\n onChange={visibilityOnChange}\n style={styles.videoView}\n disabled={!shouldObserveVisibility}\n propKey={videoTrack}\n >\n <RTCView\n style={styles.videoView}\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n />\n </ViewPortDetector>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {},\n videoView: {\n flex: 1,\n width: '100%',\n },\n});\n\nclass VideoViewElementInfo implements ElementInfo {\n element: object = {};\n something?: any;\n id?: string;\n _width = 0;\n _height = 0;\n _observing = false;\n visible: boolean = true;\n visibilityChangedAt: number | undefined;\n pictureInPicture = false;\n handleResize?: (() => void) | undefined;\n handleVisibilityChanged?: (() => void) | undefined;\n width = () => this._width;\n height = () => this._height;\n\n observe(): void {\n this._observing = true;\n }\n stopObserving(): void {\n this._observing = false;\n }\n\n onLayout(event: LayoutChangeEvent) {\n let { width, height } = event.nativeEvent.layout;\n this._width = width;\n this._height = height;\n\n if (this._observing) {\n this.handleResize?.();\n }\n }\n onVisibility(isVisible: boolean) {\n if (this.visible !== isVisible) {\n this.visible = isVisible;\n this.visibilityChangedAt = Date.now();\n if (this._observing) {\n this.handleVisibilityChanged?.();\n }\n }\n }\n}\n"]}
1
+ {"version":3,"names":["React","StyleSheet","View","LocalVideoTrack","TrackEvent","RTCView","useCallback","useEffect","useMemo","useState","RemoteVideoTrack","ViewPortDetector","VideoView","style","videoTrack","objectFit","zOrder","mirror","elementInfo","info","VideoViewElementInfo","id","sid","something","layoutOnChange","event","onLayout","visibilityOnChange","isVisible","onVisibility","shouldObserveVisibility","isAdaptiveStream","mediaStream","setMediaStream","onRestarted","track","on","Restarted","off","observeElementInfo","stopObservingElementInfo","createElement","styles","container","onChange","videoView","disabled","propKey","streamURL","toURL","create","flex","width","constructor","_defineProperty","_width","_height","observe","_observing","stopObserving","height","nativeEvent","layout","_this$handleResize","handleResize","call","visible","visibilityChangedAt","Date","now","_this$handleVisibilit","handleVisibilityChanged"],"sources":["VideoView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n type LayoutChangeEvent,\n StyleSheet,\n View,\n type ViewStyle,\n} from 'react-native';\nimport {\n type ElementInfo,\n LocalVideoTrack,\n Track,\n TrackEvent,\n type VideoTrack,\n} from 'livekit-client';\nimport { RTCView } from '@livekit/react-native-webrtc';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { RemoteVideoTrack } from 'livekit-client';\nimport ViewPortDetector from './ViewPortDetector';\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport type Props = {\n videoTrack?: VideoTrack | undefined;\n style?: ViewStyle;\n objectFit?: 'cover' | 'contain' | undefined;\n mirror?: boolean;\n zOrder?: number;\n};\n\n/**\n * @deprecated use `VideoTrack` and `VideoTrackProps` instead.\n */\nexport const VideoView = ({\n style = {},\n videoTrack,\n objectFit = 'cover',\n zOrder,\n mirror,\n}: Props) => {\n const [elementInfo] = useState(() => {\n let info = new VideoViewElementInfo();\n info.id = videoTrack?.sid;\n info.something = videoTrack;\n return info;\n });\n\n const layoutOnChange = useCallback(\n (event: LayoutChangeEvent) => elementInfo.onLayout(event),\n [elementInfo]\n );\n const visibilityOnChange = useCallback(\n (isVisible: boolean) => elementInfo.onVisibility(isVisible),\n [elementInfo]\n );\n const shouldObserveVisibility = useMemo(() => {\n return (\n videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream\n );\n }, [videoTrack]);\n\n const [mediaStream, setMediaStream] = useState(videoTrack?.mediaStream);\n useEffect(() => {\n setMediaStream(videoTrack?.mediaStream);\n if (videoTrack instanceof LocalVideoTrack) {\n const onRestarted = (track: Track | null) => {\n setMediaStream(track?.mediaStream);\n };\n videoTrack.on(TrackEvent.Restarted, onRestarted);\n\n return () => {\n videoTrack.off(TrackEvent.Restarted, onRestarted);\n };\n } else {\n return () => {};\n }\n }, [videoTrack]);\n\n useEffect(() => {\n if (videoTrack instanceof RemoteVideoTrack && videoTrack.isAdaptiveStream) {\n videoTrack?.observeElementInfo(elementInfo);\n return () => {\n videoTrack?.stopObservingElementInfo(elementInfo);\n };\n } else {\n return () => {};\n }\n }, [videoTrack, elementInfo]);\n\n return (\n <View style={{ ...style, ...styles.container }} onLayout={layoutOnChange}>\n <ViewPortDetector\n onChange={visibilityOnChange}\n style={styles.videoView}\n disabled={!shouldObserveVisibility}\n propKey={videoTrack}\n >\n <RTCView\n style={styles.videoView}\n streamURL={mediaStream?.toURL() ?? ''}\n objectFit={objectFit}\n zOrder={zOrder}\n mirror={mirror}\n />\n </ViewPortDetector>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {},\n videoView: {\n flex: 1,\n width: '100%',\n },\n});\n\nclass VideoViewElementInfo implements ElementInfo {\n element: object = {};\n something?: any;\n id?: string;\n _width = 0;\n _height = 0;\n _observing = false;\n visible: boolean = true;\n visibilityChangedAt: number | undefined;\n pictureInPicture = false;\n handleResize?: (() => void) | undefined;\n handleVisibilityChanged?: (() => void) | undefined;\n width = () => this._width;\n height = () => this._height;\n\n observe(): void {\n this._observing = true;\n }\n stopObserving(): void {\n this._observing = false;\n }\n\n onLayout(event: LayoutChangeEvent) {\n let { width, height } = event.nativeEvent.layout;\n this._width = width;\n this._height = height;\n\n if (this._observing) {\n this.handleResize?.();\n }\n }\n onVisibility(isVisible: boolean) {\n if (this.visible !== isVisible) {\n this.visible = isVisible;\n this.visibilityChangedAt = Date.now();\n if (this._observing) {\n this.handleVisibilityChanged?.();\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,171 +1,133 @@
1
1
  'use strict';
2
2
 
3
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
-
5
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
3
+ 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); }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import React, { Component } from 'react';
8
8
  import { AppState, View } from 'react-native';
9
9
  const DEFAULT_DELAY = 1000;
10
-
11
10
  class TimeoutHandler {
12
11
  constructor() {
13
12
  _defineProperty(this, "handlerRef", {
14
13
  id: -1
15
14
  });
16
15
  }
17
-
18
16
  get handler() {
19
17
  return this.handlerRef.id;
20
18
  }
21
-
22
19
  set handler(n) {
23
20
  this.handlerRef.id = n;
24
21
  }
25
-
26
22
  clear() {
27
23
  clearTimeout(this.handlerRef.id);
28
24
  }
29
-
30
25
  }
31
-
32
- function setIntervalWithTimeout(callback, intervalMs) {
33
- let handleWrapper = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new TimeoutHandler();
26
+ function setIntervalWithTimeout(callback, intervalMs, handleWrapper = new TimeoutHandler()) {
34
27
  let cleared = false;
35
-
36
28
  const timeout = () => {
37
29
  handleWrapper.handler = setTimeout(() => {
38
30
  callback(() => {
39
31
  cleared = true;
40
32
  handleWrapper.clear();
41
33
  });
42
-
43
34
  if (!cleared) {
44
35
  timeout();
45
36
  }
46
37
  }, intervalMs);
47
38
  };
48
-
49
39
  timeout();
50
40
  return handleWrapper;
51
41
  }
42
+
52
43
  /**
53
44
  * Detects when this is in the viewport and visible.
54
45
  *
55
46
  * Will not fire visibility changes for zero width/height components.
56
47
  */
57
-
58
-
59
48
  export default class ViewPortDetector extends Component {
60
49
  constructor(props) {
61
50
  super(props);
62
-
63
51
  _defineProperty(this, "lastValue", null);
64
-
65
52
  _defineProperty(this, "interval", null);
66
-
67
53
  _defineProperty(this, "view", null);
68
-
69
54
  _defineProperty(this, "lastAppStateActive", false);
70
-
71
55
  _defineProperty(this, "appStateSubscription", null);
72
-
73
56
  _defineProperty(this, "hasValidTimeout", (disabled, delay) => {
74
- let disabledValue = disabled !== null && disabled !== void 0 ? disabled : false;
75
- let delayValue = delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;
57
+ let disabledValue = disabled ?? false;
58
+ let delayValue = delay ?? DEFAULT_DELAY;
76
59
  return AppState.currentState === 'active' && !disabledValue && delayValue > 0;
77
60
  });
78
-
79
61
  _defineProperty(this, "handleAppStateChange", nextAppState => {
80
62
  let nextAppStateActive = nextAppState === 'active';
81
-
82
63
  if (this.lastAppStateActive !== nextAppStateActive) {
83
64
  this.checkVisibility();
84
65
  }
85
-
86
66
  this.lastAppStateActive = nextAppStateActive;
87
-
88
67
  if (!this.hasValidTimeout(this.props.disabled, this.props.delay)) {
89
68
  this.stopWatching();
90
69
  } else {
91
70
  this.startWatching();
92
71
  }
93
72
  });
94
-
95
73
  _defineProperty(this, "startWatching", () => {
96
74
  if (this.interval) {
97
75
  return;
98
76
  }
99
-
100
77
  this.interval = setIntervalWithTimeout(this.checkVisibility, this.props.delay || DEFAULT_DELAY);
101
78
  });
102
-
103
79
  _defineProperty(this, "stopWatching", () => {
104
80
  var _this$interval;
105
-
106
- (_this$interval = this.interval) === null || _this$interval === void 0 ? void 0 : _this$interval.clear();
81
+ (_this$interval = this.interval) === null || _this$interval === void 0 || _this$interval.clear();
107
82
  this.interval = null;
108
83
  });
109
-
110
84
  _defineProperty(this, "checkVisibility", () => {
111
85
  if (!this.view) {
112
86
  return;
113
87
  }
114
-
115
88
  if (AppState.currentState !== 'active') {
116
89
  this.updateVisibility(false);
117
90
  return;
118
91
  }
119
-
120
92
  this.view.measure((_x, _y, width, height, _pageX, _pageY) => {
121
93
  this.checkInViewPort(width, height);
122
94
  });
123
95
  });
124
-
125
96
  _defineProperty(this, "checkInViewPort", (width, height) => {
126
- let isVisible; // Not visible if any of these are missing.
127
-
97
+ let isVisible;
98
+ // Not visible if any of these are missing.
128
99
  if (!width || !height) {
129
100
  isVisible = false;
130
101
  } else {
131
102
  isVisible = true;
132
103
  }
133
-
134
104
  this.updateVisibility(isVisible);
135
105
  });
136
-
137
106
  _defineProperty(this, "updateVisibility", isVisible => {
138
107
  if (this.lastValue !== isVisible) {
139
108
  var _this$props$onChange, _this$props;
140
-
141
109
  this.lastValue = isVisible;
142
- (_this$props$onChange = (_this$props = this.props).onChange) === null || _this$props$onChange === void 0 ? void 0 : _this$props$onChange.call(_this$props, isVisible);
110
+ (_this$props$onChange = (_this$props = this.props).onChange) === null || _this$props$onChange === void 0 || _this$props$onChange.call(_this$props, isVisible);
143
111
  }
144
112
  });
145
-
146
113
  this.state = {
147
114
  rectTop: 0,
148
115
  rectBottom: 0
149
116
  };
150
117
  }
151
-
152
118
  componentDidMount() {
153
119
  this.lastAppStateActive = AppState.currentState === 'active';
154
120
  this.appStateSubscription = AppState.addEventListener('change', this.handleAppStateChange);
155
-
156
121
  if (this.hasValidTimeout(this.props.disabled, this.props.delay)) {
157
122
  this.startWatching();
158
123
  }
159
124
  }
160
-
161
125
  componentWillUnmount() {
162
126
  var _this$appStateSubscri;
163
-
164
- (_this$appStateSubscri = this.appStateSubscription) === null || _this$appStateSubscri === void 0 ? void 0 : _this$appStateSubscri.remove();
127
+ (_this$appStateSubscri = this.appStateSubscription) === null || _this$appStateSubscri === void 0 || _this$appStateSubscri.remove();
165
128
  this.appStateSubscription = null;
166
129
  this.stopWatching();
167
130
  }
168
-
169
131
  UNSAFE_componentWillReceiveProps(nextProps) {
170
132
  if (!this.hasValidTimeout(nextProps.disabled, nextProps.delay)) {
171
133
  this.stopWatching();
@@ -173,11 +135,9 @@ export default class ViewPortDetector extends Component {
173
135
  if (this.props.propKey !== nextProps.propKey) {
174
136
  this.lastValue = null;
175
137
  }
176
-
177
138
  this.startWatching();
178
139
  }
179
140
  }
180
-
181
141
  render() {
182
142
  return /*#__PURE__*/React.createElement(View, _extends({
183
143
  collapsable: false,
@@ -186,6 +146,5 @@ export default class ViewPortDetector extends Component {
186
146
  }
187
147
  }, this.props), this.props.children);
188
148
  }
189
-
190
149
  }
191
150
  //# sourceMappingURL=ViewPortDetector.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ViewPortDetector.tsx"],"names":["React","Component","AppState","View","DEFAULT_DELAY","TimeoutHandler","id","handler","handlerRef","n","clear","clearTimeout","setIntervalWithTimeout","callback","intervalMs","handleWrapper","cleared","timeout","setTimeout","ViewPortDetector","constructor","props","disabled","delay","disabledValue","delayValue","currentState","nextAppState","nextAppStateActive","lastAppStateActive","checkVisibility","hasValidTimeout","stopWatching","startWatching","interval","view","updateVisibility","measure","_x","_y","width","height","_pageX","_pageY","checkInViewPort","isVisible","lastValue","onChange","state","rectTop","rectBottom","componentDidMount","appStateSubscription","addEventListener","handleAppStateChange","componentWillUnmount","remove","UNSAFE_componentWillReceiveProps","nextProps","propKey","render","component","children"],"mappings":"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","sourcesContent":["'use strict';\n\nimport React, { Component, PropsWithChildren } from 'react';\nimport {\n AppState,\n AppStateStatus,\n NativeEventSubscription,\n View,\n ViewStyle,\n} from 'react-native';\n\nconst DEFAULT_DELAY = 1000;\n\nexport type Props = {\n disabled?: boolean;\n style?: ViewStyle;\n onChange?: (isVisible: boolean) => void;\n delay?: number;\n propKey?: any;\n};\n\nclass TimeoutHandler {\n private handlerRef: { id: any } = { id: -1 };\n\n get handler(): any {\n return this.handlerRef.id;\n }\n set handler(n: any) {\n this.handlerRef.id = n;\n }\n\n clear() {\n clearTimeout(this.handlerRef.id as any);\n }\n}\n\nfunction setIntervalWithTimeout(\n callback: (clear: () => void) => any,\n intervalMs: number,\n handleWrapper = new TimeoutHandler()\n): TimeoutHandler {\n let cleared = false;\n\n const timeout = () => {\n handleWrapper.handler = setTimeout(() => {\n callback(() => {\n cleared = true;\n handleWrapper.clear();\n });\n if (!cleared) {\n timeout();\n }\n }, intervalMs);\n };\n timeout();\n return handleWrapper;\n}\n\n/**\n * Detects when this is in the viewport and visible.\n *\n * Will not fire visibility changes for zero width/height components.\n */\nexport default class ViewPortDetector extends Component<\n PropsWithChildren<Props>\n> {\n private lastValue: boolean | null = null;\n private interval: TimeoutHandler | null = null;\n private view: View | null = null;\n private lastAppStateActive = false;\n private appStateSubscription: NativeEventSubscription | null = null;\n\n constructor(props: Props) {\n super(props);\n this.state = { rectTop: 0, rectBottom: 0 };\n }\n\n componentDidMount() {\n this.lastAppStateActive = AppState.currentState === 'active';\n this.appStateSubscription = AppState.addEventListener(\n 'change',\n this.handleAppStateChange\n );\n if (this.hasValidTimeout(this.props.disabled, this.props.delay)) {\n this.startWatching();\n }\n }\n\n componentWillUnmount() {\n this.appStateSubscription?.remove();\n this.appStateSubscription = null;\n this.stopWatching();\n }\n\n hasValidTimeout = (disabled?: boolean, delay?: number): boolean => {\n let disabledValue = disabled ?? false;\n let delayValue = delay ?? DEFAULT_DELAY;\n return (\n AppState.currentState === 'active' && !disabledValue && delayValue > 0\n );\n };\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (!this.hasValidTimeout(nextProps.disabled, nextProps.delay)) {\n this.stopWatching();\n } else {\n if (this.props.propKey !== nextProps.propKey) {\n this.lastValue = null;\n }\n this.startWatching();\n }\n }\n handleAppStateChange = (nextAppState: AppStateStatus) => {\n let nextAppStateActive = nextAppState === 'active';\n if (this.lastAppStateActive !== nextAppStateActive) {\n this.checkVisibility();\n }\n this.lastAppStateActive = nextAppStateActive;\n\n if (!this.hasValidTimeout(this.props.disabled, this.props.delay)) {\n this.stopWatching();\n } else {\n this.startWatching();\n }\n };\n\n startWatching = () => {\n if (this.interval) {\n return;\n }\n this.interval = setIntervalWithTimeout(\n this.checkVisibility,\n this.props.delay || DEFAULT_DELAY\n );\n };\n\n stopWatching = () => {\n this.interval?.clear();\n this.interval = null;\n };\n\n checkVisibility = () => {\n if (!this.view) {\n return;\n }\n\n if (AppState.currentState !== 'active') {\n this.updateVisibility(false);\n return;\n }\n\n this.view.measure((_x, _y, width, height, _pageX, _pageY) => {\n this.checkInViewPort(width, height);\n });\n };\n checkInViewPort = (width?: number, height?: number) => {\n let isVisible: boolean;\n // Not visible if any of these are missing.\n if (!width || !height) {\n isVisible = false;\n } else {\n isVisible = true;\n }\n this.updateVisibility(isVisible);\n };\n\n updateVisibility = (isVisible: boolean) => {\n if (this.lastValue !== isVisible) {\n this.lastValue = isVisible;\n this.props.onChange?.(isVisible);\n }\n };\n render() {\n return (\n <View\n collapsable={false}\n ref={(component) => {\n this.view = component;\n }}\n {...this.props}\n >\n {this.props.children}\n </View>\n );\n }\n}\n"]}
1
+ {"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","_defineProperty","_toPropertyKey","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","React","Component","AppState","View","DEFAULT_DELAY","TimeoutHandler","constructor","id","handler","handlerRef","clear","clearTimeout","setIntervalWithTimeout","callback","intervalMs","handleWrapper","cleared","timeout","setTimeout","ViewPortDetector","props","disabled","delay","disabledValue","delayValue","currentState","nextAppState","nextAppStateActive","lastAppStateActive","checkVisibility","hasValidTimeout","stopWatching","startWatching","interval","_this$interval","view","updateVisibility","measure","_x","_y","width","height","_pageX","_pageY","checkInViewPort","isVisible","lastValue","_this$props$onChange","_this$props","onChange","state","rectTop","rectBottom","componentDidMount","appStateSubscription","addEventListener","handleAppStateChange","componentWillUnmount","_this$appStateSubscri","remove","UNSAFE_componentWillReceiveProps","nextProps","propKey","render","createElement","collapsable","ref","component","children"],"sources":["ViewPortDetector.tsx"],"sourcesContent":["'use strict';\n\nimport React, { Component, type PropsWithChildren } from 'react';\nimport {\n AppState,\n type AppStateStatus,\n type NativeEventSubscription,\n View,\n type ViewStyle,\n} from 'react-native';\n\nconst DEFAULT_DELAY = 1000;\n\nexport type Props = {\n disabled?: boolean;\n style?: ViewStyle;\n onChange?: (isVisible: boolean) => void;\n delay?: number;\n propKey?: any;\n};\n\nclass TimeoutHandler {\n private handlerRef: { id: any } = { id: -1 };\n\n get handler(): any {\n return this.handlerRef.id;\n }\n set handler(n: any) {\n this.handlerRef.id = n;\n }\n\n clear() {\n clearTimeout(this.handlerRef.id as any);\n }\n}\n\nfunction setIntervalWithTimeout(\n callback: (clear: () => void) => any,\n intervalMs: number,\n handleWrapper = new TimeoutHandler()\n): TimeoutHandler {\n let cleared = false;\n\n const timeout = () => {\n handleWrapper.handler = setTimeout(() => {\n callback(() => {\n cleared = true;\n handleWrapper.clear();\n });\n if (!cleared) {\n timeout();\n }\n }, intervalMs);\n };\n timeout();\n return handleWrapper;\n}\n\n/**\n * Detects when this is in the viewport and visible.\n *\n * Will not fire visibility changes for zero width/height components.\n */\nexport default class ViewPortDetector extends Component<\n PropsWithChildren<Props>\n> {\n private lastValue: boolean | null = null;\n private interval: TimeoutHandler | null = null;\n private view: View | null = null;\n private lastAppStateActive = false;\n private appStateSubscription: NativeEventSubscription | null = null;\n\n constructor(props: Props) {\n super(props);\n this.state = { rectTop: 0, rectBottom: 0 };\n }\n\n componentDidMount() {\n this.lastAppStateActive = AppState.currentState === 'active';\n this.appStateSubscription = AppState.addEventListener(\n 'change',\n this.handleAppStateChange\n );\n if (this.hasValidTimeout(this.props.disabled, this.props.delay)) {\n this.startWatching();\n }\n }\n\n componentWillUnmount() {\n this.appStateSubscription?.remove();\n this.appStateSubscription = null;\n this.stopWatching();\n }\n\n hasValidTimeout = (disabled?: boolean, delay?: number): boolean => {\n let disabledValue = disabled ?? false;\n let delayValue = delay ?? DEFAULT_DELAY;\n return (\n AppState.currentState === 'active' && !disabledValue && delayValue > 0\n );\n };\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (!this.hasValidTimeout(nextProps.disabled, nextProps.delay)) {\n this.stopWatching();\n } else {\n if (this.props.propKey !== nextProps.propKey) {\n this.lastValue = null;\n }\n this.startWatching();\n }\n }\n handleAppStateChange = (nextAppState: AppStateStatus) => {\n let nextAppStateActive = nextAppState === 'active';\n if (this.lastAppStateActive !== nextAppStateActive) {\n this.checkVisibility();\n }\n this.lastAppStateActive = nextAppStateActive;\n\n if (!this.hasValidTimeout(this.props.disabled, this.props.delay)) {\n this.stopWatching();\n } else {\n this.startWatching();\n }\n };\n\n startWatching = () => {\n if (this.interval) {\n return;\n }\n this.interval = setIntervalWithTimeout(\n this.checkVisibility,\n this.props.delay || DEFAULT_DELAY\n );\n };\n\n stopWatching = () => {\n this.interval?.clear();\n this.interval = null;\n };\n\n checkVisibility = () => {\n if (!this.view) {\n return;\n }\n\n if (AppState.currentState !== 'active') {\n this.updateVisibility(false);\n return;\n }\n\n this.view.measure((_x, _y, width, height, _pageX, _pageY) => {\n this.checkInViewPort(width, height);\n });\n };\n checkInViewPort = (width?: number, height?: number) => {\n let isVisible: boolean;\n // Not visible if any of these are missing.\n if (!width || !height) {\n isVisible = false;\n } else {\n isVisible = true;\n }\n this.updateVisibility(isVisible);\n };\n\n updateVisibility = (isVisible: boolean) => {\n if (this.lastValue !== isVisible) {\n this.lastValue = isVisible;\n this.props.onChange?.(isVisible);\n }\n };\n render() {\n return (\n <View\n collapsable={false}\n ref={(component) => {\n this.view = component;\n }}\n {...this.props}\n >\n {this.props.children}\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,2 @@
1
- export { useConnectionState, useDataChannel, useIsSpeaking, useLocalParticipant, UseLocalParticipantOptions, useLocalParticipantPermissions, useParticipantInfo, UseParticipantInfoOptions, useParticipants, UseParticipantsOptions, useRemoteParticipants, UseRemoteParticipantOptions, useRemoteParticipant, UseRemoteParticipantsOptions, useSpeakingParticipants, useSortedParticipants, useChat, useIsEncrypted, useRoomInfo, useIsMuted, useParticipantTracks, useLiveKitRoom, RoomContext, useRoomContext, ParticipantContext, useParticipantContext, TrackRefContext, useTrackRefContext, useTracks, UseTracksOptions, TrackReference, TrackReferenceOrPlaceholder, isTrackReference, useEnsureTrackRef, useTrackMutedIndicator, useVisualStableUpdate, UseVisualStableUpdateOptions } from '@livekit/components-react';
2
- export { ReceivedDataMessage } from '@livekit/components-core';
1
+ export { useConnectionState, useDataChannel, useIsSpeaking, useLocalParticipant, useLocalParticipantPermissions, useParticipantInfo, useParticipants, useRemoteParticipants, useRemoteParticipant, useSpeakingParticipants, useSortedParticipants, useChat, useIsEncrypted, useRoomInfo, useIsMuted, useParticipantTracks, useLiveKitRoom, RoomContext, useRoomContext, ParticipantContext, useParticipantContext, TrackRefContext, useTrackRefContext, useTracks, isTrackReference, useEnsureTrackRef, useTrackMutedIndicator, useVisualStableUpdate } from '@livekit/components-react';
3
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["hooks.ts"],"names":["useConnectionState","useDataChannel","useIsSpeaking","useLocalParticipant","UseLocalParticipantOptions","useLocalParticipantPermissions","useParticipantInfo","UseParticipantInfoOptions","useParticipants","UseParticipantsOptions","useRemoteParticipants","UseRemoteParticipantOptions","useRemoteParticipant","UseRemoteParticipantsOptions","useSpeakingParticipants","useSortedParticipants","useChat","useIsEncrypted","useRoomInfo","useIsMuted","useParticipantTracks","useLiveKitRoom","RoomContext","useRoomContext","ParticipantContext","useParticipantContext","TrackRefContext","useTrackRefContext","useTracks","UseTracksOptions","TrackReference","TrackReferenceOrPlaceholder","isTrackReference","useEnsureTrackRef","useTrackMutedIndicator","useVisualStableUpdate","UseVisualStableUpdateOptions","ReceivedDataMessage"],"mappings":"AAAA,SACEA,kBADF,EAEEC,cAFF,EAGEC,aAHF,EAIEC,mBAJF,EAKEC,0BALF,EAMEC,8BANF,EAOEC,kBAPF,EAQEC,yBARF,EASEC,eATF,EAUEC,sBAVF,EAWEC,qBAXF,EAYEC,2BAZF,EAaEC,oBAbF,EAcEC,4BAdF,EAeEC,uBAfF,EAgBEC,qBAhBF,EAiBEC,OAjBF,EAkBEC,cAlBF,EAmBEC,WAnBF,EAoBEC,UApBF,EAqBEC,oBArBF,EAsBEC,cAtBF,EAuBEC,WAvBF,EAwBEC,cAxBF,EAyBEC,kBAzBF,EA0BEC,qBA1BF,EA2BEC,eA3BF,EA4BEC,kBA5BF,EA6BEC,SA7BF,EA8BEC,gBA9BF,EA+BEC,cA/BF,EAgCEC,2BAhCF,EAiCEC,gBAjCF,EAkCEC,iBAlCF,EAmCEC,sBAnCF,EAoCEC,qBApCF,EAqCEC,4BArCF,QAsCO,2BAtCP;AAwCA,SAASC,mBAAT,QAAoC,0BAApC","sourcesContent":["export {\n useConnectionState,\n useDataChannel,\n useIsSpeaking,\n useLocalParticipant,\n UseLocalParticipantOptions,\n useLocalParticipantPermissions,\n useParticipantInfo,\n UseParticipantInfoOptions,\n useParticipants,\n UseParticipantsOptions,\n useRemoteParticipants,\n UseRemoteParticipantOptions,\n useRemoteParticipant,\n UseRemoteParticipantsOptions,\n useSpeakingParticipants,\n useSortedParticipants,\n useChat,\n useIsEncrypted,\n useRoomInfo,\n useIsMuted,\n useParticipantTracks,\n useLiveKitRoom,\n RoomContext,\n useRoomContext,\n ParticipantContext,\n useParticipantContext,\n TrackRefContext,\n useTrackRefContext,\n useTracks,\n UseTracksOptions,\n TrackReference,\n TrackReferenceOrPlaceholder,\n isTrackReference,\n useEnsureTrackRef,\n useTrackMutedIndicator,\n useVisualStableUpdate,\n UseVisualStableUpdateOptions,\n} from '@livekit/components-react';\n\nexport { ReceivedDataMessage } from '@livekit/components-core';\n"]}
1
+ {"version":3,"names":["useConnectionState","useDataChannel","useIsSpeaking","useLocalParticipant","useLocalParticipantPermissions","useParticipantInfo","useParticipants","useRemoteParticipants","useRemoteParticipant","useSpeakingParticipants","useSortedParticipants","useChat","useIsEncrypted","useRoomInfo","useIsMuted","useParticipantTracks","useLiveKitRoom","RoomContext","useRoomContext","ParticipantContext","useParticipantContext","TrackRefContext","useTrackRefContext","useTracks","isTrackReference","useEnsureTrackRef","useTrackMutedIndicator","useVisualStableUpdate"],"sources":["hooks.ts"],"sourcesContent":["export {\n useConnectionState,\n useDataChannel,\n useIsSpeaking,\n useLocalParticipant,\n useLocalParticipantPermissions,\n useParticipantInfo,\n useParticipants,\n useRemoteParticipants,\n useRemoteParticipant,\n useSpeakingParticipants,\n useSortedParticipants,\n useChat,\n useIsEncrypted,\n useRoomInfo,\n useIsMuted,\n useParticipantTracks,\n useLiveKitRoom,\n RoomContext,\n useRoomContext,\n ParticipantContext,\n useParticipantContext,\n TrackRefContext,\n useTrackRefContext,\n useTracks,\n isTrackReference,\n useEnsureTrackRef,\n useTrackMutedIndicator,\n useVisualStableUpdate,\n} from '@livekit/components-react';\nexport type {\n UseLocalParticipantOptions,\n UseParticipantInfoOptions,\n UseParticipantsOptions,\n UseRemoteParticipantOptions,\n UseRemoteParticipantsOptions,\n UseTracksOptions,\n TrackReference,\n TrackReferenceOrPlaceholder,\n UseVisualStableUpdateOptions,\n} from '@livekit/components-react';\n\nexport type { ReceivedDataMessage } from '@livekit/components-core';\n"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,cAAc,EACdC,aAAa,EACbC,mBAAmB,EACnBC,8BAA8B,EAC9BC,kBAAkB,EAClBC,eAAe,EACfC,qBAAqB,EACrBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,EACrBC,OAAO,EACPC,cAAc,EACdC,WAAW,EACXC,UAAU,EACVC,oBAAoB,EACpBC,cAAc,EACdC,WAAW,EACXC,cAAc,EACdC,kBAAkB,EAClBC,qBAAqB,EACrBC,eAAe,EACfC,kBAAkB,EAClBC,SAAS,EACTC,gBAAgB,EAChBC,iBAAiB,EACjBC,sBAAsB,EACtBC,qBAAqB,QAChB,2BAA2B","ignoreList":[]}
@@ -1,9 +1,8 @@
1
1
  import { registerGlobals as webrtcRegisterGlobals } from '@livekit/react-native-webrtc';
2
2
  import { setupURLPolyfill } from 'react-native-url-polyfill';
3
3
  import './polyfills/EncoderDecoderTogether.min.js';
4
- import AudioSession, { AndroidAudioTypePresets, AndroidAudioTypeOptions, AppleAudioCategory, AppleAudioCategoryOption, AppleAudioConfiguration, AppleAudioMode, AudioTrackState, getDefaultAppleAudioConfigurationForMode } from './audio/AudioSession';
4
+ import AudioSession, { AndroidAudioTypePresets, getDefaultAppleAudioConfigurationForMode } from './audio/AudioSession';
5
5
  import { PixelRatio, Platform } from 'react-native';
6
-
7
6
  /**
8
7
  * Registers the required globals needed for LiveKit to work.
9
8
  *
@@ -19,71 +18,54 @@ export function registerGlobals() {
19
18
  shimAsyncIterator();
20
19
  shimIterator();
21
20
  }
22
-
23
21
  function livekitRegisterGlobals() {
24
22
  let lkGlobal = {
25
23
  platform: Platform.OS,
26
24
  devicePixelRatio: PixelRatio.get()
27
- }; // @ts-ignore
25
+ };
28
26
 
27
+ // @ts-ignore
29
28
  global.LiveKitReactNativeGlobal = lkGlobal;
30
29
  }
31
-
32
30
  function fixWebrtcAdapter() {
33
31
  var _window;
34
-
35
32
  // @ts-ignore
36
33
  if (((_window = window) === null || _window === void 0 ? void 0 : _window.navigator) !== undefined) {
37
34
  // @ts-ignore
38
35
  const {
39
36
  navigator
40
37
  } = window;
41
-
42
38
  if (navigator.userAgent === undefined) {
43
- var _navigator$product;
44
-
45
- navigator.userAgent = (_navigator$product = navigator.product) !== null && _navigator$product !== void 0 ? _navigator$product : 'Unknown';
39
+ navigator.userAgent = navigator.product ?? 'Unknown';
46
40
  }
47
41
  }
48
42
  }
49
-
50
43
  function shimPromiseAllSettled() {
51
44
  var allSettled = require('promise.allsettled');
52
-
53
45
  allSettled.shim();
54
46
  }
55
-
56
47
  function shimArrayAt() {
57
48
  // Some versions of RN don't have Array.prototype.at, which is used by sdp-transform
58
49
  if (!Array.prototype.at) {
59
50
  var at = require('array.prototype.at');
60
-
61
51
  at.shim();
62
52
  }
63
53
  }
64
-
65
54
  function shimAsyncIterator() {
66
55
  var shim = require('well-known-symbols/Symbol.asyncIterator/shim');
67
-
68
56
  shim();
69
57
  }
70
-
71
58
  function shimIterator() {
72
59
  var shim = require('well-known-symbols/Symbol.iterator/shim');
73
-
74
60
  shim();
75
61
  }
76
-
77
62
  export * from './hooks';
78
63
  export * from './components/LiveKitRoom';
79
64
  export * from './components/VideoTrack';
80
65
  export * from './components/VideoView'; // deprecated
81
-
82
66
  export * from './useParticipant'; // deprecated
83
-
84
67
  export * from './useRoom'; // deprecated
85
-
86
68
  export * from './logger';
87
69
  export * from './audio/AudioManager';
88
- export { AudioSession, AndroidAudioTypeOptions, AndroidAudioTypePresets, AppleAudioCategory, AppleAudioCategoryOption, AppleAudioConfiguration, AppleAudioMode, AudioTrackState, getDefaultAppleAudioConfigurationForMode };
70
+ export { AudioSession, AndroidAudioTypePresets, getDefaultAppleAudioConfigurationForMode };
89
71
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["registerGlobals","webrtcRegisterGlobals","setupURLPolyfill","AudioSession","AndroidAudioTypePresets","AndroidAudioTypeOptions","AppleAudioCategory","AppleAudioCategoryOption","AppleAudioConfiguration","AppleAudioMode","AudioTrackState","getDefaultAppleAudioConfigurationForMode","PixelRatio","Platform","livekitRegisterGlobals","fixWebrtcAdapter","shimPromiseAllSettled","shimArrayAt","shimAsyncIterator","shimIterator","lkGlobal","platform","OS","devicePixelRatio","get","global","LiveKitReactNativeGlobal","window","navigator","undefined","userAgent","product","allSettled","require","shim","Array","prototype","at"],"mappings":"AAAA,SAASA,eAAe,IAAIC,qBAA5B,QAAyD,8BAAzD;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AACA,OAAO,2CAAP;AACA,OAAOC,YAAP,IACEC,uBADF,EAEEC,uBAFF,EAGEC,kBAHF,EAIEC,wBAJF,EAKEC,uBALF,EAMEC,cANF,EAOEC,eAPF,EAQEC,wCARF,QASO,sBATP;AAWA,SAASC,UAAT,EAAqBC,QAArB,QAAqC,cAArC;;AAIA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASb,eAAT,GAA2B;AAChCC,EAAAA,qBAAqB;AACrBa,EAAAA,sBAAsB;AACtBZ,EAAAA,gBAAgB;AAChBa,EAAAA,gBAAgB;AAChBC,EAAAA,qBAAqB;AACrBC,EAAAA,WAAW;AACXC,EAAAA,iBAAiB;AACjBC,EAAAA,YAAY;AACb;;AACD,SAASL,sBAAT,GAAkC;AAChC,MAAIM,QAAgC,GAAG;AACrCC,IAAAA,QAAQ,EAAER,QAAQ,CAACS,EADkB;AAErCC,IAAAA,gBAAgB,EAAEX,UAAU,CAACY,GAAX;AAFmB,GAAvC,CADgC,CAMhC;;AACAC,EAAAA,MAAM,CAACC,wBAAP,GAAkCN,QAAlC;AACD;;AAED,SAASL,gBAAT,GAA4B;AAAA;;AAC1B;AACA,MAAI,YAAAY,MAAM,UAAN,0CAAQC,SAAR,MAAsBC,SAA1B,EAAqC;AACnC;AACA,UAAM;AAAED,MAAAA;AAAF,QAAgBD,MAAtB;;AACA,QAAIC,SAAS,CAACE,SAAV,KAAwBD,SAA5B,EAAuC;AAAA;;AACrCD,MAAAA,SAAS,CAACE,SAAV,yBAAsBF,SAAS,CAACG,OAAhC,mEAA2C,SAA3C;AACD;AACF;AACF;;AAED,SAASf,qBAAT,GAAiC;AAC/B,MAAIgB,UAAU,GAAGC,OAAO,CAAC,oBAAD,CAAxB;;AACAD,EAAAA,UAAU,CAACE,IAAX;AACD;;AAED,SAASjB,WAAT,GAAuB;AACrB;AACA,MAAI,CAACkB,KAAK,CAACC,SAAN,CAAgBC,EAArB,EAAyB;AACvB,QAAIA,EAAE,GAAGJ,OAAO,CAAC,oBAAD,CAAhB;;AACAI,IAAAA,EAAE,CAACH,IAAH;AACD;AACF;;AAED,SAAShB,iBAAT,GAA6B;AAC3B,MAAIgB,IAAI,GAAGD,OAAO,CAAC,8CAAD,CAAlB;;AACAC,EAAAA,IAAI;AACL;;AAED,SAASf,YAAT,GAAwB;AACtB,MAAIe,IAAI,GAAGD,OAAO,CAAC,yCAAD,CAAlB;;AACAC,EAAAA,IAAI;AACL;;AACD,cAAc,SAAd;AACA,cAAc,0BAAd;AACA,cAAc,yBAAd;AACA,cAAc,wBAAd,C,CAAwC;;AACxC,cAAc,kBAAd,C,CAAkC;;AAClC,cAAc,WAAd,C,CAA2B;;AAC3B,cAAc,UAAd;AACA,cAAc,sBAAd;AAEA,SACE/B,YADF,EAGEE,uBAHF,EAIED,uBAJF,EAKEE,kBALF,EAMEC,wBANF,EAOEC,uBAPF,EAQEC,cARF,EASEC,eATF,EAUEC,wCAVF","sourcesContent":["import { registerGlobals as webrtcRegisterGlobals } from '@livekit/react-native-webrtc';\nimport { setupURLPolyfill } from 'react-native-url-polyfill';\nimport './polyfills/EncoderDecoderTogether.min.js';\nimport AudioSession, {\n AndroidAudioTypePresets,\n AndroidAudioTypeOptions,\n AppleAudioCategory,\n AppleAudioCategoryOption,\n AppleAudioConfiguration,\n AppleAudioMode,\n AudioTrackState,\n getDefaultAppleAudioConfigurationForMode,\n} from './audio/AudioSession';\nimport type { AudioConfiguration } from './audio/AudioSession';\nimport { PixelRatio, Platform } from 'react-native';\nimport type { LiveKitReactNativeInfo } from 'livekit-client';\nimport type { LogLevel, SetLogLevelOptions } from './logger';\n\n/**\n * Registers the required globals needed for LiveKit to work.\n *\n * Must be called before using LiveKit.\n */\nexport function registerGlobals() {\n webrtcRegisterGlobals();\n livekitRegisterGlobals();\n setupURLPolyfill();\n fixWebrtcAdapter();\n shimPromiseAllSettled();\n shimArrayAt();\n shimAsyncIterator();\n shimIterator();\n}\nfunction livekitRegisterGlobals() {\n let lkGlobal: LiveKitReactNativeInfo = {\n platform: Platform.OS,\n devicePixelRatio: PixelRatio.get(),\n };\n\n // @ts-ignore\n global.LiveKitReactNativeGlobal = lkGlobal;\n}\n\nfunction fixWebrtcAdapter() {\n // @ts-ignore\n if (window?.navigator !== undefined) {\n // @ts-ignore\n const { navigator } = window;\n if (navigator.userAgent === undefined) {\n navigator.userAgent = navigator.product ?? 'Unknown';\n }\n }\n}\n\nfunction shimPromiseAllSettled() {\n var allSettled = require('promise.allsettled');\n allSettled.shim();\n}\n\nfunction shimArrayAt() {\n // Some versions of RN don't have Array.prototype.at, which is used by sdp-transform\n if (!Array.prototype.at) {\n var at = require('array.prototype.at');\n at.shim();\n }\n}\n\nfunction shimAsyncIterator() {\n var shim = require('well-known-symbols/Symbol.asyncIterator/shim');\n shim();\n}\n\nfunction shimIterator() {\n var shim = require('well-known-symbols/Symbol.iterator/shim');\n shim();\n}\nexport * from './hooks';\nexport * from './components/LiveKitRoom';\nexport * from './components/VideoTrack';\nexport * from './components/VideoView'; // deprecated\nexport * from './useParticipant'; // deprecated\nexport * from './useRoom'; // deprecated\nexport * from './logger';\nexport * from './audio/AudioManager';\n\nexport {\n AudioSession,\n AudioConfiguration,\n AndroidAudioTypeOptions,\n AndroidAudioTypePresets,\n AppleAudioCategory,\n AppleAudioCategoryOption,\n AppleAudioConfiguration,\n AppleAudioMode,\n AudioTrackState,\n getDefaultAppleAudioConfigurationForMode,\n LogLevel,\n SetLogLevelOptions,\n};\n"]}
1
+ {"version":3,"names":["registerGlobals","webrtcRegisterGlobals","setupURLPolyfill","AudioSession","AndroidAudioTypePresets","getDefaultAppleAudioConfigurationForMode","PixelRatio","Platform","livekitRegisterGlobals","fixWebrtcAdapter","shimPromiseAllSettled","shimArrayAt","shimAsyncIterator","shimIterator","lkGlobal","platform","OS","devicePixelRatio","get","global","LiveKitReactNativeGlobal","_window","window","navigator","undefined","userAgent","product","allSettled","require","shim","Array","prototype","at"],"sources":["index.tsx"],"sourcesContent":["import { registerGlobals as webrtcRegisterGlobals } from '@livekit/react-native-webrtc';\nimport { setupURLPolyfill } from 'react-native-url-polyfill';\nimport './polyfills/EncoderDecoderTogether.min.js';\nimport AudioSession, {\n AndroidAudioTypePresets,\n type AndroidAudioTypeOptions,\n type AppleAudioCategory,\n type AppleAudioCategoryOption,\n type AppleAudioConfiguration,\n type AppleAudioMode,\n type AudioTrackState,\n getDefaultAppleAudioConfigurationForMode,\n} from './audio/AudioSession';\nimport type { AudioConfiguration } from './audio/AudioSession';\nimport { PixelRatio, Platform } from 'react-native';\nimport type { LiveKitReactNativeInfo } from 'livekit-client';\nimport type { LogLevel, SetLogLevelOptions } from './logger';\n\n/**\n * Registers the required globals needed for LiveKit to work.\n *\n * Must be called before using LiveKit.\n */\nexport function registerGlobals() {\n webrtcRegisterGlobals();\n livekitRegisterGlobals();\n setupURLPolyfill();\n fixWebrtcAdapter();\n shimPromiseAllSettled();\n shimArrayAt();\n shimAsyncIterator();\n shimIterator();\n}\nfunction livekitRegisterGlobals() {\n let lkGlobal: LiveKitReactNativeInfo = {\n platform: Platform.OS,\n devicePixelRatio: PixelRatio.get(),\n };\n\n // @ts-ignore\n global.LiveKitReactNativeGlobal = lkGlobal;\n}\n\nfunction fixWebrtcAdapter() {\n // @ts-ignore\n if (window?.navigator !== undefined) {\n // @ts-ignore\n const { navigator } = window;\n if (navigator.userAgent === undefined) {\n navigator.userAgent = navigator.product ?? 'Unknown';\n }\n }\n}\n\nfunction shimPromiseAllSettled() {\n var allSettled = require('promise.allsettled');\n allSettled.shim();\n}\n\nfunction shimArrayAt() {\n // Some versions of RN don't have Array.prototype.at, which is used by sdp-transform\n if (!Array.prototype.at) {\n var at = require('array.prototype.at');\n at.shim();\n }\n}\n\nfunction shimAsyncIterator() {\n var shim = require('well-known-symbols/Symbol.asyncIterator/shim');\n shim();\n}\n\nfunction shimIterator() {\n var shim = require('well-known-symbols/Symbol.iterator/shim');\n shim();\n}\nexport * from './hooks';\nexport * from './components/LiveKitRoom';\nexport * from './components/VideoTrack';\nexport * from './components/VideoView'; // deprecated\nexport * from './useParticipant'; // deprecated\nexport * from './useRoom'; // deprecated\nexport * from './logger';\nexport * from './audio/AudioManager';\n\nexport {\n AudioSession,\n AndroidAudioTypePresets,\n getDefaultAppleAudioConfigurationForMode,\n};\nexport type {\n AudioConfiguration,\n AndroidAudioTypeOptions,\n AppleAudioCategory,\n AppleAudioCategoryOption,\n AppleAudioConfiguration,\n AppleAudioMode,\n AudioTrackState,\n LogLevel,\n SetLogLevelOptions,\n};\n"],"mappings":"AAAA,SAASA,eAAe,IAAIC,qBAAqB,QAAQ,8BAA8B;AACvF,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,OAAO,2CAA2C;AAClD,OAAOC,YAAY,IACjBC,uBAAuB,EAOvBC,wCAAwC,QACnC,sBAAsB;AAE7B,SAASC,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AAInD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASP,eAAeA,CAAA,EAAG;EAChCC,qBAAqB,CAAC,CAAC;EACvBO,sBAAsB,CAAC,CAAC;EACxBN,gBAAgB,CAAC,CAAC;EAClBO,gBAAgB,CAAC,CAAC;EAClBC,qBAAqB,CAAC,CAAC;EACvBC,WAAW,CAAC,CAAC;EACbC,iBAAiB,CAAC,CAAC;EACnBC,YAAY,CAAC,CAAC;AAChB;AACA,SAASL,sBAAsBA,CAAA,EAAG;EAChC,IAAIM,QAAgC,GAAG;IACrCC,QAAQ,EAAER,QAAQ,CAACS,EAAE;IACrBC,gBAAgB,EAAEX,UAAU,CAACY,GAAG,CAAC;EACnC,CAAC;;EAED;EACAC,MAAM,CAACC,wBAAwB,GAAGN,QAAQ;AAC5C;AAEA,SAASL,gBAAgBA,CAAA,EAAG;EAAA,IAAAY,OAAA;EAC1B;EACA,IAAI,EAAAA,OAAA,GAAAC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,MAAKC,SAAS,EAAE;IACnC;IACA,MAAM;MAAED;IAAU,CAAC,GAAGD,MAAM;IAC5B,IAAIC,SAAS,CAACE,SAAS,KAAKD,SAAS,EAAE;MACrCD,SAAS,CAACE,SAAS,GAAGF,SAAS,CAACG,OAAO,IAAI,SAAS;IACtD;EACF;AACF;AAEA,SAAShB,qBAAqBA,CAAA,EAAG;EAC/B,IAAIiB,UAAU,GAAGC,OAAO,CAAC,oBAAoB,CAAC;EAC9CD,UAAU,CAACE,IAAI,CAAC,CAAC;AACnB;AAEA,SAASlB,WAAWA,CAAA,EAAG;EACrB;EACA,IAAI,CAACmB,KAAK,CAACC,SAAS,CAACC,EAAE,EAAE;IACvB,IAAIA,EAAE,GAAGJ,OAAO,CAAC,oBAAoB,CAAC;IACtCI,EAAE,CAACH,IAAI,CAAC,CAAC;EACX;AACF;AAEA,SAASjB,iBAAiBA,CAAA,EAAG;EAC3B,IAAIiB,IAAI,GAAGD,OAAO,CAAC,8CAA8C,CAAC;EAClEC,IAAI,CAAC,CAAC;AACR;AAEA,SAAShB,YAAYA,CAAA,EAAG;EACtB,IAAIgB,IAAI,GAAGD,OAAO,CAAC,yCAAyC,CAAC;EAC7DC,IAAI,CAAC,CAAC;AACR;AACA,cAAc,SAAS;AACvB,cAAc,0BAA0B;AACxC,cAAc,yBAAyB;AACvC,cAAc,wBAAwB,CAAC,CAAC;AACxC,cAAc,kBAAkB,CAAC,CAAC;AAClC,cAAc,WAAW,CAAC,CAAC;AAC3B,cAAc,UAAU;AACxB,cAAc,sBAAsB;AAEpC,SACE1B,YAAY,EACZC,uBAAuB,EACvBC,wCAAwC","ignoreList":[]}
@@ -2,17 +2,13 @@ import { setLogLevel as setClientSdkLogLevel } from 'livekit-client';
2
2
  import loglevel from 'loglevel';
3
3
  export const log = loglevel.getLogger('lk-react-native');
4
4
  log.setDefaultLevel('WARN');
5
-
6
5
  /**
7
6
  * Set the log level for both the `@livekit/react-native` package and the `@livekit-client` package.
8
7
  * To set the `@livekit-client` log independently, use the `liveKitClientLogLevel` prop on the `options` object.
9
8
  * @public
10
9
  */
11
- export function setLogLevel(level) {
12
- var _options$liveKitClien;
13
-
14
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10
+ export function setLogLevel(level, options = {}) {
15
11
  log.setLevel(level);
16
- setClientSdkLogLevel((_options$liveKitClien = options.liveKitClientLogLevel) !== null && _options$liveKitClien !== void 0 ? _options$liveKitClien : level);
12
+ setClientSdkLogLevel(options.liveKitClientLogLevel ?? level);
17
13
  }
18
14
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["logger.ts"],"names":["setLogLevel","setClientSdkLogLevel","loglevel","log","getLogger","setDefaultLevel","level","options","setLevel","liveKitClientLogLevel"],"mappings":"AAAA,SAASA,WAAW,IAAIC,oBAAxB,QAAoD,gBAApD;AACA,OAAOC,QAAP,MAAqB,UAArB;AAEA,OAAO,MAAMC,GAAG,GAAGD,QAAQ,CAACE,SAAT,CAAmB,iBAAnB,CAAZ;AACPD,GAAG,CAACE,eAAJ,CAAoB,MAApB;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAT,CACLM,KADK,EAGC;AAAA;;AAAA,MADNC,OACM,uEADwB,EACxB;AACNJ,EAAAA,GAAG,CAACK,QAAJ,CAAaF,KAAb;AACAL,EAAAA,oBAAoB,0BAACM,OAAO,CAACE,qBAAT,yEAAkCH,KAAlC,CAApB;AACD","sourcesContent":["import { setLogLevel as setClientSdkLogLevel } from 'livekit-client';\nimport loglevel from 'loglevel';\n\nexport const log = loglevel.getLogger('lk-react-native');\nlog.setDefaultLevel('WARN');\n\nexport type LogLevel = Parameters<typeof setClientSdkLogLevel>[0];\nexport type SetLogLevelOptions = {\n liveKitClientLogLevel?: LogLevel;\n};\n\n/**\n * Set the log level for both the `@livekit/react-native` package and the `@livekit-client` package.\n * To set the `@livekit-client` log independently, use the `liveKitClientLogLevel` prop on the `options` object.\n * @public\n */\nexport function setLogLevel(\n level: LogLevel,\n options: SetLogLevelOptions = {}\n): void {\n log.setLevel(level);\n setClientSdkLogLevel(options.liveKitClientLogLevel ?? level);\n}\n"]}
1
+ {"version":3,"names":["setLogLevel","setClientSdkLogLevel","loglevel","log","getLogger","setDefaultLevel","level","options","setLevel","liveKitClientLogLevel"],"sources":["logger.ts"],"sourcesContent":["import { setLogLevel as setClientSdkLogLevel } from 'livekit-client';\nimport loglevel from 'loglevel';\n\nexport const log = loglevel.getLogger('lk-react-native');\nlog.setDefaultLevel('WARN');\n\nexport type LogLevel = Parameters<typeof setClientSdkLogLevel>[0];\nexport type SetLogLevelOptions = {\n liveKitClientLogLevel?: LogLevel;\n};\n\n/**\n * Set the log level for both the `@livekit/react-native` package and the `@livekit-client` package.\n * To set the `@livekit-client` log independently, use the `liveKitClientLogLevel` prop on the `options` object.\n * @public\n */\nexport function setLogLevel(\n level: LogLevel,\n options: SetLogLevelOptions = {}\n): void {\n log.setLevel(level);\n setClientSdkLogLevel(options.liveKitClientLogLevel ?? level);\n}\n"],"mappings":"AAAA,SAASA,WAAW,IAAIC,oBAAoB,QAAQ,gBAAgB;AACpE,OAAOC,QAAQ,MAAM,UAAU;AAE/B,OAAO,MAAMC,GAAG,GAAGD,QAAQ,CAACE,SAAS,CAAC,iBAAiB,CAAC;AACxDD,GAAG,CAACE,eAAe,CAAC,MAAM,CAAC;AAO3B;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CACzBM,KAAe,EACfC,OAA2B,GAAG,CAAC,CAAC,EAC1B;EACNJ,GAAG,CAACK,QAAQ,CAACF,KAAK,CAAC;EACnBL,oBAAoB,CAACM,OAAO,CAACE,qBAAqB,IAAIH,KAAK,CAAC;AAC9D","ignoreList":[]}