@stream-io/video-react-native-sdk 0.1.3 → 0.1.5

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 (117) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/commonjs/components/Call/CallContent/CallContent.js +2 -2
  3. package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
  4. package/dist/commonjs/components/Call/CallControls/HangupCallButton.js +4 -6
  5. package/dist/commonjs/components/Call/CallControls/HangupCallButton.js.map +1 -1
  6. package/dist/commonjs/hooks/push/index.js +4 -0
  7. package/dist/commonjs/hooks/push/index.js.map +1 -1
  8. package/dist/commonjs/hooks/push/useInitAndroidTokenAndRest.js +8 -2
  9. package/dist/commonjs/hooks/push/useInitAndroidTokenAndRest.js.map +1 -1
  10. package/dist/commonjs/hooks/push/useIosInitRemoteNotifications.js +34 -0
  11. package/dist/commonjs/hooks/push/useIosInitRemoteNotifications.js.map +1 -0
  12. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +50 -4
  13. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  14. package/dist/commonjs/hooks/push/useProcessPushNonRingingCallEffect.js +50 -0
  15. package/dist/commonjs/hooks/push/useProcessPushNonRingingCallEffect.js.map +1 -0
  16. package/dist/commonjs/utils/StreamVideoRN/index.js +33 -0
  17. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  18. package/dist/commonjs/utils/internal/newNotificationCallbacks.js +18 -0
  19. package/dist/commonjs/utils/internal/newNotificationCallbacks.js.map +1 -0
  20. package/dist/commonjs/utils/internal/pushLogoutCallback.js +18 -0
  21. package/dist/commonjs/utils/internal/pushLogoutCallback.js.map +1 -0
  22. package/dist/commonjs/utils/push/android.js +182 -68
  23. package/dist/commonjs/utils/push/android.js.map +1 -1
  24. package/dist/commonjs/utils/push/ios.js +107 -1
  25. package/dist/commonjs/utils/push/ios.js.map +1 -1
  26. package/dist/commonjs/utils/push/libs.js +34 -1
  27. package/dist/commonjs/utils/push/libs.js.map +1 -1
  28. package/dist/commonjs/utils/push/rxSubjects.js +8 -1
  29. package/dist/commonjs/utils/push/rxSubjects.js.map +1 -1
  30. package/dist/commonjs/utils/push/utils.js +29 -1
  31. package/dist/commonjs/utils/push/utils.js.map +1 -1
  32. package/dist/commonjs/version.js +1 -1
  33. package/dist/module/components/Call/CallContent/CallContent.js +2 -2
  34. package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
  35. package/dist/module/components/Call/CallControls/HangupCallButton.js +3 -4
  36. package/dist/module/components/Call/CallControls/HangupCallButton.js.map +1 -1
  37. package/dist/module/hooks/push/index.js +4 -0
  38. package/dist/module/hooks/push/index.js.map +1 -1
  39. package/dist/module/hooks/push/useInitAndroidTokenAndRest.js +8 -2
  40. package/dist/module/hooks/push/useInitAndroidTokenAndRest.js.map +1 -1
  41. package/dist/module/hooks/push/useIosInitRemoteNotifications.js +28 -0
  42. package/dist/module/hooks/push/useIosInitRemoteNotifications.js.map +1 -0
  43. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +49 -4
  44. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  45. package/dist/module/hooks/push/useProcessPushNonRingingCallEffect.js +44 -0
  46. package/dist/module/hooks/push/useProcessPushNonRingingCallEffect.js.map +1 -0
  47. package/dist/module/utils/StreamVideoRN/index.js +32 -0
  48. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  49. package/dist/module/utils/internal/newNotificationCallbacks.js +10 -0
  50. package/dist/module/utils/internal/newNotificationCallbacks.js.map +1 -0
  51. package/dist/module/utils/internal/pushLogoutCallback.js +10 -0
  52. package/dist/module/utils/internal/pushLogoutCallback.js.map +1 -0
  53. package/dist/module/utils/push/android.js +184 -70
  54. package/dist/module/utils/push/android.js.map +1 -1
  55. package/dist/module/utils/push/ios.js +103 -1
  56. package/dist/module/utils/push/ios.js.map +1 -1
  57. package/dist/module/utils/push/libs.js +31 -1
  58. package/dist/module/utils/push/libs.js.map +1 -1
  59. package/dist/module/utils/push/rxSubjects.js +5 -0
  60. package/dist/module/utils/push/rxSubjects.js.map +1 -1
  61. package/dist/module/utils/push/utils.js +27 -0
  62. package/dist/module/utils/push/utils.js.map +1 -1
  63. package/dist/module/version.js +1 -1
  64. package/dist/typescript/components/Call/CallContent/CallContent.d.ts +1 -1
  65. package/dist/typescript/hooks/push/index.d.ts.map +1 -1
  66. package/dist/typescript/hooks/push/useInitAndroidTokenAndRest.d.ts +1 -1
  67. package/dist/typescript/hooks/push/useInitAndroidTokenAndRest.d.ts.map +1 -1
  68. package/dist/typescript/hooks/push/useIosInitRemoteNotifications.d.ts +5 -0
  69. package/dist/typescript/hooks/push/useIosInitRemoteNotifications.d.ts.map +1 -0
  70. package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
  71. package/dist/typescript/hooks/push/useProcessPushNonRingingCallEffect.d.ts +7 -0
  72. package/dist/typescript/hooks/push/useProcessPushNonRingingCallEffect.d.ts.map +1 -0
  73. package/dist/typescript/utils/StreamVideoRN/index.d.ts +12 -0
  74. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  75. package/dist/typescript/utils/StreamVideoRN/types.d.ts +40 -6
  76. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  77. package/dist/typescript/utils/internal/newNotificationCallbacks.d.ts +10 -0
  78. package/dist/typescript/utils/internal/newNotificationCallbacks.d.ts.map +1 -0
  79. package/dist/typescript/utils/internal/pushLogoutCallback.d.ts +8 -0
  80. package/dist/typescript/utils/internal/pushLogoutCallback.d.ts.map +1 -0
  81. package/dist/typescript/utils/push/android.d.ts +1 -1
  82. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  83. package/dist/typescript/utils/push/ios.d.ts +4 -0
  84. package/dist/typescript/utils/push/ios.d.ts.map +1 -1
  85. package/dist/typescript/utils/push/libs.d.ts +6 -0
  86. package/dist/typescript/utils/push/libs.d.ts.map +1 -1
  87. package/dist/typescript/utils/push/rxSubjects.d.ts +9 -0
  88. package/dist/typescript/utils/push/rxSubjects.d.ts.map +1 -1
  89. package/dist/typescript/utils/push/utils.d.ts +9 -1
  90. package/dist/typescript/utils/push/utils.d.ts.map +1 -1
  91. package/dist/typescript/version.d.ts +1 -1
  92. package/expo-config-plugin/dist/index.d.ts +3 -2
  93. package/expo-config-plugin/dist/index.js +9 -5
  94. package/expo-config-plugin/dist/withPushAppDelegate.d.ts +4 -0
  95. package/expo-config-plugin/dist/withPushAppDelegate.js +119 -0
  96. package/expo-config-plugin/dist/withiOSInfoPlist.d.ts +2 -1
  97. package/expo-config-plugin/dist/withiOSInfoPlist.js +6 -1
  98. package/package.json +19 -3
  99. package/src/components/Call/CallContent/CallContent.tsx +1 -1
  100. package/src/components/Call/CallControls/HangupCallButton.tsx +4 -4
  101. package/src/hooks/push/index.ts +4 -0
  102. package/src/hooks/push/useInitAndroidTokenAndRest.ts +8 -2
  103. package/src/hooks/push/useIosInitRemoteNotifications.ts +29 -0
  104. package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +50 -3
  105. package/src/hooks/push/useProcessPushNonRingingCallEffect.ts +44 -0
  106. package/src/utils/StreamVideoRN/index.ts +36 -0
  107. package/src/utils/StreamVideoRN/types.ts +47 -6
  108. package/src/utils/internal/newNotificationCallbacks.ts +29 -0
  109. package/src/utils/internal/pushLogoutCallback.ts +17 -0
  110. package/src/utils/push/android.ts +203 -74
  111. package/src/utils/push/ios.ts +120 -1
  112. package/src/utils/push/libs.ts +48 -2
  113. package/src/utils/push/rxSubjects.ts +9 -0
  114. package/src/utils/push/utils.ts +35 -1
  115. package/src/version.ts +1 -1
  116. /package/expo-config-plugin/dist/{withAppDelegate.d.ts → withStreamVideoReactNativeSDKAppDelegate.d.ts} +0 -0
  117. /package/expo-config-plugin/dist/{withAppDelegate.js → withStreamVideoReactNativeSDKAppDelegate.js} +0 -0
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.processCallFromPushInBackground = exports.processCallFromPush = void 0;
6
+ exports.processNonIncomingCallFromPush = exports.processCallFromPushInBackground = exports.processCallFromPush = void 0;
7
+ var _newNotificationCallbacks = require("../internal/newNotificationCallbacks");
7
8
  /* An action for the notification or callkeep and app does not have JS context setup yet, so we need to do two steps:
8
9
  1. we need to create a new client and connect the user to decline the call
9
10
  2. this is because the app is in background state and we don't have a client to get the call and do an action
@@ -51,5 +52,32 @@ const processCallFromPush = async (client, call_cid, action) => {
51
52
  console.log('failed to process call from push notification', e, action);
52
53
  }
53
54
  };
55
+
56
+ /**
57
+ * This function is used process the call from push notifications due to non ringing calls
58
+ * It does the following steps:
59
+ * 1. Get the call from the client if present or create a new call
60
+ * 2. Fetch the latest state of the call from the server if its not already in ringing state
61
+ * 3. Call all the callbacks to inform the app about the call
62
+ */
54
63
  exports.processCallFromPush = processCallFromPush;
64
+ const processNonIncomingCallFromPush = async (client, call_cid, nonRingingNotificationType) => {
65
+ let callFromPush;
66
+ try {
67
+ const _callFromPush = client.state.calls.find(c => c.cid === call_cid);
68
+ if (_callFromPush) {
69
+ callFromPush = _callFromPush;
70
+ } else {
71
+ // if not it means that WS is not alive when receiving the push notifications and we need to fetch the call
72
+ const [callType, callId] = call_cid.split(':');
73
+ callFromPush = client.call(callType, callId);
74
+ await callFromPush.get();
75
+ }
76
+ } catch (e) {
77
+ console.log('failed to fetch call from push notification', e);
78
+ return;
79
+ }
80
+ (0, _newNotificationCallbacks.onNewCallNotification)(callFromPush, nonRingingNotificationType);
81
+ };
82
+ exports.processNonIncomingCallFromPush = processNonIncomingCallFromPush;
55
83
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["processCallFromPushInBackground","pushConfig","call_cid","action","videoClient","createStreamVideoClient","e","console","log","processCallFromPush","exports","client","callFromPush","onRingingCall","join","leave","reject"],"sourceRoot":"../../../../src","sources":["utils/push/utils.ts"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;AACO,MAAMA,+BAA+B,GAAG,MAAAA,CAC7CC,UAAsB,EACtBC,QAAgB,EAChBC,MAAiD,KAC9C;EACH,IAAIC,WAA0C;EAE9C,IAAI;IACFA,WAAW,GAAG,MAAMH,UAAU,CAACI,uBAAuB,CAAC,CAAC;IACxD,IAAI,CAACD,WAAW,EAAE;MAChB;IACF;EACF,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,gDAAgD,EAAEF,CAAC,CAAC;IAChE;EACF;EACA,MAAMG,mBAAmB,CAACL,WAAW,EAAEF,QAAQ,EAAEC,MAAM,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAO,OAAA,CAAAV,+BAAA,GAAAA,+BAAA;AAOO,MAAMS,mBAAmB,GAAG,MAAAA,CACjCE,MAAyB,EACzBT,QAAgB,EAChBC,MAAwC,KACrC;EACH,IAAIS,YAAkB;EACtB,IAAI;IACFA,YAAY,GAAG,MAAMD,MAAM,CAACE,aAAa,CAACX,QAAQ,CAAC;EACrD,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEF,CAAC,CAAC;IAC7D;EACF;EACA;EACA,IAAI;IACF,IAAIH,MAAM,KAAK,QAAQ,EAAE;MACvB,MAAMS,YAAY,CAACE,IAAI,CAAC,CAAC;IAC3B,CAAC,MAAM,IAAIX,MAAM,KAAK,SAAS,EAAE;MAC/B,MAAMS,YAAY,CAACG,KAAK,CAAC;QAAEC,MAAM,EAAE;MAAK,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC,OAAOV,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAEF,CAAC,EAAEH,MAAM,CAAC;EACzE;AACF,CAAC;AAACO,OAAA,CAAAD,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_newNotificationCallbacks","require","processCallFromPushInBackground","pushConfig","call_cid","action","videoClient","createStreamVideoClient","e","console","log","processCallFromPush","exports","client","callFromPush","onRingingCall","join","leave","reject","processNonIncomingCallFromPush","nonRingingNotificationType","_callFromPush","state","calls","find","c","cid","callType","callId","split","call","get","onNewCallNotification"],"sourceRoot":"../../../../src","sources":["utils/push/utils.ts"],"mappings":";;;;;;AAKA,IAAAA,yBAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAG,MAAAA,CAC7CC,UAAsB,EACtBC,QAAgB,EAChBC,MAAiD,KAC9C;EACH,IAAIC,WAA0C;EAE9C,IAAI;IACFA,WAAW,GAAG,MAAMH,UAAU,CAACI,uBAAuB,CAAC,CAAC;IACxD,IAAI,CAACD,WAAW,EAAE;MAChB;IACF;EACF,CAAC,CAAC,OAAOE,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,gDAAgD,EAAEF,CAAC,CAAC;IAChE;EACF;EACA,MAAMG,mBAAmB,CAACL,WAAW,EAAEF,QAAQ,EAAEC,MAAM,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAO,OAAA,CAAAV,+BAAA,GAAAA,+BAAA;AAOO,MAAMS,mBAAmB,GAAG,MAAAA,CACjCE,MAAyB,EACzBT,QAAgB,EAChBC,MAAwC,KACrC;EACH,IAAIS,YAAkB;EACtB,IAAI;IACFA,YAAY,GAAG,MAAMD,MAAM,CAACE,aAAa,CAACX,QAAQ,CAAC;EACrD,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEF,CAAC,CAAC;IAC7D;EACF;EACA;EACA,IAAI;IACF,IAAIH,MAAM,KAAK,QAAQ,EAAE;MACvB,MAAMS,YAAY,CAACE,IAAI,CAAC,CAAC;IAC3B,CAAC,MAAM,IAAIX,MAAM,KAAK,SAAS,EAAE;MAC/B,MAAMS,YAAY,CAACG,KAAK,CAAC;QAAEC,MAAM,EAAE;MAAK,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC,OAAOV,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAEF,CAAC,EAAEH,MAAM,CAAC;EACzE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAO,OAAA,CAAAD,mBAAA,GAAAA,mBAAA;AAOO,MAAMQ,8BAA8B,GAAG,MAAAA,CAC5CN,MAAyB,EACzBT,QAAgB,EAChBgB,0BAA+C,KAC5C;EACH,IAAIN,YAAkB;EACtB,IAAI;IACF,MAAMO,aAAa,GAAGR,MAAM,CAACS,KAAK,CAACC,KAAK,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKtB,QAAQ,CAAC;IACxE,IAAIiB,aAAa,EAAE;MACjBP,YAAY,GAAGO,aAAa;IAC9B,CAAC,MAAM;MACL;MACA,MAAM,CAACM,QAAQ,EAAEC,MAAM,CAAC,GAAGxB,QAAQ,CAACyB,KAAK,CAAC,GAAG,CAAC;MAC9Cf,YAAY,GAAGD,MAAM,CAACiB,IAAI,CAACH,QAAQ,EAAEC,MAAM,CAAC;MAC5C,MAAMd,YAAY,CAACiB,GAAG,CAAC,CAAC;IAC1B;EACF,CAAC,CAAC,OAAOvB,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAAC,6CAA6C,EAAEF,CAAC,CAAC;IAC7D;EACF;EACA,IAAAwB,+CAAqB,EAAClB,YAAY,EAAEM,0BAA0B,CAAC;AACjE,CAAC;AAACR,OAAA,CAAAO,8BAAA,GAAAA,8BAAA"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = '0.1.3';
7
+ const version = '0.1.5';
8
8
  exports.version = version;
9
9
  //# sourceMappingURL=version.js.map
@@ -28,8 +28,8 @@ export const CallContent = _ref => {
28
28
  ParticipantsInfoBadge,
29
29
  VideoRenderer,
30
30
  layout = 'grid',
31
- supportedReactions,
32
- landscape = true
31
+ landscape = false,
32
+ supportedReactions
33
33
  } = _ref;
34
34
  const [showRemoteParticipantInFloatingView, setShowRemoteParticipantInFloatingView] = useState(false);
35
35
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","StyleSheet","View","CallTopView","DefaultCallTopView","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCall","useCallStateHooks","CallingState","useIncallManager","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","CallContent","_ref","onBackPressed","onParticipantInfoPress","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","ParticipantsInfoBadge","VideoRenderer","layout","supportedReactions","landscape","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","theme","callContent","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","_remoteParticipants","remoteParticipants","localParticipant","hasScreenShare","showSpotlightLayout","showFloatingView","length","isRemoteParticipantInFloatingView","media","auto","call","activeCallRef","current","handleFloatingViewParticipantSwitch","prevState","_activeCallRef$curren","state","callingState","LEFT","_activeCallRef$curren2","leave","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landScapeStyles","flexDirection","createElement","style","styles","container","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","create","flex","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AAC1D,SACEC,WAAW,IAAIC,kBAAkB,QAE5B,gBAAgB;AACvB,SACEC,oBAAoB,EAEpBC,yBAAyB,QAEpB,eAAe;AACtB,SAEEC,YAAY,IAAIC,mBAAmB,QAE9B,iBAAiB;AACxB,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,YAAY,QAAwB,yBAAyB;AACtE,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SACEC,uBAAuB,IAAIC,8BAA8B,QAGpD,mBAAmB;AAC1B,SAASC,QAAQ,QAAQ,mBAAmB;AAsD5C,OAAO,MAAMC,WAAW,GAAGC,IAAA,IAkBH;EAAA,IAlBI;IAC1BC,aAAa;IACbC,sBAAsB;IACtBC,mBAAmB;IACnBC,oBAAoB;IACpBpB,WAAW,GAAGC,kBAAkB;IAChCG,YAAY,GAAGC,mBAAmB;IAClCO,uBAAuB,GAAGC,8BAA8B;IACxDQ,gBAAgB;IAChBC,kCAAkC;IAClCC,mBAAmB;IACnBC,wBAAwB;IACxBC,eAAe;IACfC,qBAAqB;IACrBC,aAAa;IACbC,MAAM,GAAG,MAAM;IACfC,kBAAkB;IAClBC,SAAS,GAAG;EACI,CAAC,GAAAd,IAAA;EACjB,MAAM,CACJe,mCAAmC,EACnCC,sCAAsC,CACvC,GAAGnC,QAAQ,CAAU,KAAK,CAAC;EAC5B,MAAM;IACJoC,KAAK,EAAE;MAAEC;IAAY;EACvB,CAAC,GAAGpB,QAAQ,CAAC,CAAC;EACd,MAAM;IACJqB,wBAAwB;IACxBC,qBAAqB;IACrBC;EACF,CAAC,GAAG9B,iBAAiB,CAAC,CAAC;EAEvB,MAAM+B,mBAAmB,GAAGF,qBAAqB,CAAC,CAAC;EACnD,MAAMG,kBAAkB,GAAG5B,iBAAiB,CAAC2B,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;EACxE,MAAME,gBAAgB,GAAGH,mBAAmB,CAAC,CAAC;EAE9C,MAAMI,cAAc,GAAGN,wBAAwB,CAAC,CAAC;EACjD,MAAMO,mBAAmB,GAAGD,cAAc,IAAIb,MAAM,KAAK,WAAW;EAEpE,MAAMe,gBAAgB,GACpB,CAACD,mBAAmB,IACpBH,kBAAkB,CAACK,MAAM,GAAG,CAAC,IAC7BL,kBAAkB,CAACK,MAAM,GAAG,CAAC;EAC/B,MAAMC,iCAAiC,GACrCd,mCAAmC,IAAIQ,kBAAkB,CAACK,MAAM,KAAK,CAAC;;EAExE;AACF;AACA;EACEnC,gBAAgB,CAAC;IAAEqC,KAAK,EAAE,OAAO;IAAEC,IAAI,EAAE;EAAK,CAAC,CAAC;EAEhD,MAAMC,IAAI,GAAG1C,OAAO,CAAC,CAAC;EACtB,MAAM2C,aAAa,GAAGrD,MAAM,CAACoD,IAAI,CAAC;EAClCC,aAAa,CAACC,OAAO,GAAGF,IAAI;EAE5B,MAAMG,mCAAmC,GAAGA,CAAA,KAAM;IAChD,IAAIZ,kBAAkB,CAACK,MAAM,KAAK,CAAC,EAAE;MACnC;IACF;IACAZ,sCAAsC,CAAEoB,SAAS,IAAK,CAACA,SAAS,CAAC;EACnE,CAAC;EAEDzD,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MAAA,IAAA0D,qBAAA;MACX,IAAI,EAAAA,qBAAA,GAAAJ,aAAa,CAACC,OAAO,cAAAG,qBAAA,uBAArBA,qBAAA,CAAuBC,KAAK,CAACC,YAAY,MAAK/C,YAAY,CAACgD,IAAI,EAAE;QAAA,IAAAC,sBAAA;QACnE,CAAAA,sBAAA,GAAAR,aAAa,CAACC,OAAO,cAAAO,sBAAA,eAArBA,sBAAA,CAAuBC,KAAK,CAAC,CAAC;MAChC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,oBAAmD,GAAG;IAC1DtC,gBAAgB;IAChBC,kCAAkC;IAClCC,mBAAmB;IACnBC,wBAAwB;IACxBG;EACF,CAAC;EAED,MAAMiC,yBAAoD,GAAG;IAC3D,GAAGD,oBAAoB;IACvB7B,SAAS;IACT+B,oBAAoB,EAAEhB,iCAAiC;IACvDpB,eAAe;IACfL,oBAAoB;IACpBS;EACF,CAAC;EAED,MAAMiC,8BAA8D,GAAG;IACrE,GAAGH,oBAAoB;IACvB7B,SAAS;IACTL,eAAe;IACfL,oBAAoB;IACpBS;EACF,CAAC;EAED,MAAMkC,eAA0B,GAAG;IACjCC,aAAa,EAAElC,SAAS,GAAG,KAAK,GAAG;EACrC,CAAC;EAED,oBACEpC,KAAA,CAAAuE,aAAA,CAAClE,IAAI;IAACmE,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAElC,WAAW,CAACkC,SAAS,EAAEL,eAAe;EAAE,gBACtErE,KAAA,CAAAuE,aAAA,CAAClE,IAAI;IAACmE,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAElC,WAAW,CAACmC,yBAAyB;EAAE,gBACrE3E,KAAA,CAAAuE,aAAA,CAAClE,IAAI;IACHmE,KAAK,EAAE,CAACC,MAAM,CAACG,IAAI,EAAEpC,WAAW,CAACqC,YAAY;IAC7C;IACA;IAAA;IACAC,aAAa,EAAC;EAAU,GAEvBxE,WAAW,iBACVN,KAAA,CAAAuE,aAAA,CAACjE,WAAW;IACViB,aAAa,EAAEA,aAAc;IAC7BC,sBAAsB,EAAEA,sBAAuB;IAC/CQ,qBAAqB,EAAEA;EAAsB,CAC9C,CACF,EACAiB,gBAAgB,IAAI/B,uBAAuB,iBAC1ClB,KAAA,CAAAuE,aAAA,CAACrD,uBAAuB,EAAA6D,QAAA;IACtBC,WAAW,EACT7B,iCAAiC,GAC7BN,kBAAkB,CAAC,CAAC,CAAC,GACrBC,gBACL;IACDmC,cAAc,EAAExB,mCAAoC;IACpDtB,kBAAkB,EAAEA;EAAmB,GACnC8B,oBAAoB,CACzB,CAEC,CAAC,EACNjB,mBAAmB,gBAClBhD,KAAA,CAAAuE,aAAA,CAAC9D,yBAAyB,EAAK2D,8BAAiC,CAAC,gBAEjEpE,KAAA,CAAAuE,aAAA,CAAC/D,oBAAoB,EAAK0D,yBAA4B,CAEpD,CAAC,EAENxD,YAAY,iBACXV,KAAA,CAAAuE,aAAA,CAAC7D,YAAY;IACXe,mBAAmB,EAAEA,mBAAoB;IACzCW,SAAS,EAAEA;EAAU,CACtB,CAEC,CAAC;AAEX,CAAC;AAED,MAAMqC,MAAM,GAAGrE,UAAU,CAAC8E,MAAM,CAAC;EAC/BR,SAAS,EAAE;IAAES,IAAI,EAAE;EAAE,CAAC;EACtBP,IAAI,EAAE;IACJ,GAAGxE,UAAU,CAACgF,kBAAkB;IAChCC,MAAM,EAAErE,OAAO,CAACsE;EAClB;AACF,CAAC,CAAC"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","StyleSheet","View","CallTopView","DefaultCallTopView","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCall","useCallStateHooks","CallingState","useIncallManager","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","CallContent","_ref","onBackPressed","onParticipantInfoPress","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","ParticipantsInfoBadge","VideoRenderer","layout","landscape","supportedReactions","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","theme","callContent","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","_remoteParticipants","remoteParticipants","localParticipant","hasScreenShare","showSpotlightLayout","showFloatingView","length","isRemoteParticipantInFloatingView","media","auto","call","activeCallRef","current","handleFloatingViewParticipantSwitch","prevState","_activeCallRef$curren","state","callingState","LEFT","_activeCallRef$curren2","leave","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landScapeStyles","flexDirection","createElement","style","styles","container","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","create","flex","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React, { useCallback } from 'react';
1
+ import React from 'react';
2
2
  import { CallControlsButton } from './CallControlsButton';
3
3
  import { PhoneDown } from '../../../icons';
4
4
  import { ButtonTestIds } from '../../../constants/TestIds';
@@ -31,7 +31,7 @@ export const HangUpCallButton = _ref => {
31
31
  hangupCallButton
32
32
  }
33
33
  } = useTheme();
34
- const onPress = useCallback(async () => {
34
+ const onPress = async () => {
35
35
  if (onPressHandler) {
36
36
  onPressHandler();
37
37
  return;
@@ -47,8 +47,7 @@ export const HangUpCallButton = _ref => {
47
47
  } catch (error) {
48
48
  console.error('Error leaving call:', error);
49
49
  }
50
- // eslint-disable-next-line react-hooks/exhaustive-deps
51
- }, [call]);
50
+ };
52
51
  return /*#__PURE__*/React.createElement(CallControlsButton, {
53
52
  onPress: onPress,
54
53
  color: colors.error,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","CallControlsButton","PhoneDown","ButtonTestIds","useCall","useCallStateHooks","CallingState","useTheme","HangUpCallButton","_ref","onPressHandler","onHangupCallHandler","call","useCallCallingState","callingState","theme","colors","hangupCallButton","onPress","LEFT","leave","error","console","createElement","color","style","testID","HANG_UP_CALL","static_white"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/HangupCallButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,QAAQ,QAAQ,gCAAgC;;AAEzD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAGR,OAAO,CAAC,CAAC;EACtB,MAAM;IAAES;EAAoB,CAAC,GAAGR,iBAAiB,CAAC,CAAC;EACnD,MAAMS,YAAY,GAAGD,mBAAmB,CAAC,CAAC;EAC1C,MAAM;IACJE,KAAK,EAAE;MAAEC,MAAM;MAAEC;IAAiB;EACpC,CAAC,GAAGV,QAAQ,CAAC,CAAC;EACd,MAAMW,OAAO,GAAGlB,WAAW,CAAC,YAAY;IACtC,IAAIU,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,IAAII,YAAY,KAAKR,YAAY,CAACa,IAAI,EAAE;QACtC;MACF;MACA,OAAMP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEQ,KAAK,CAAC,CAAC;MACnB,IAAIT,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOU,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;IAC7C;IACA;EACF,CAAC,EAAE,CAACT,IAAI,CAAC,CAAC;EAEV,oBACEb,KAAA,CAAAwB,aAAA,CAACtB,kBAAkB;IACjBiB,OAAO,EAAEA,OAAQ;IACjBM,KAAK,EAAER,MAAM,CAACK,KAAM;IACpBI,KAAK,EAAER,gBAAiB;IACxBS,MAAM,EAAEvB,aAAa,CAACwB;EAAa,gBAEnC5B,KAAA,CAAAwB,aAAA,CAACrB,SAAS;IAACsB,KAAK,EAAER,MAAM,CAACY;EAAa,CAAE,CACtB,CAAC;AAEzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"names":["React","CallControlsButton","PhoneDown","ButtonTestIds","useCall","useCallStateHooks","CallingState","useTheme","HangUpCallButton","_ref","onPressHandler","onHangupCallHandler","call","useCallCallingState","callingState","theme","colors","hangupCallButton","onPress","LEFT","leave","error","console","createElement","color","style","testID","HANG_UP_CALL","static_white"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/HangupCallButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,QAAQ,QAAQ,gCAAgC;;AAEzD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAGR,OAAO,CAAC,CAAC;EACtB,MAAM;IAAES;EAAoB,CAAC,GAAGR,iBAAiB,CAAC,CAAC;EACnD,MAAMS,YAAY,GAAGD,mBAAmB,CAAC,CAAC;EAC1C,MAAM;IACJE,KAAK,EAAE;MAAEC,MAAM;MAAEC;IAAiB;EACpC,CAAC,GAAGV,QAAQ,CAAC,CAAC;EAEd,MAAMW,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC1B,IAAIR,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,IAAII,YAAY,KAAKR,YAAY,CAACa,IAAI,EAAE;QACtC;MACF;MACA,OAAMP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEQ,KAAK,CAAC,CAAC;MACnB,IAAIT,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOU,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;IAC7C;EACF,CAAC;EAED,oBACErB,KAAA,CAAAuB,aAAA,CAACtB,kBAAkB;IACjBiB,OAAO,EAAEA,OAAQ;IACjBM,KAAK,EAAER,MAAM,CAACK,KAAM;IACpBI,KAAK,EAAER,gBAAiB;IACxBS,MAAM,EAAEvB,aAAa,CAACwB;EAAa,gBAEnC3B,KAAA,CAAAuB,aAAA,CAACrB,SAAS;IAACsB,KAAK,EAAER,MAAM,CAACY;EAAa,CAAE,CACtB,CAAC;AAEzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -2,14 +2,18 @@ import { useIosCallKeepEventsSetupEffect } from './useIosCallKeepEventsSetupEffe
2
2
  import { useIosVoipPushEventsSetupEffect } from './useIosVoipPushEventsSetupEffect';
3
3
  import { useProcessPushCallEffect } from './useProcessPushCallEffect';
4
4
  import { useInitAndroidTokenAndRest } from './useInitAndroidTokenAndRest';
5
+ import { useIosInitRemoteNotifications } from './useIosInitRemoteNotifications';
6
+ import { useProcessPushNonRingingCallEffect } from './useProcessPushNonRingingCallEffect';
5
7
 
6
8
  /**
7
9
  * This hook is used to do the initial setup for push notifications.
8
10
  * It must be used in a component which is a child of StreamVideo from bindings
9
11
  */
10
12
  export const usePushRegisterEffect = () => {
13
+ useIosInitRemoteNotifications();
11
14
  useIosCallKeepEventsSetupEffect();
12
15
  useIosVoipPushEventsSetupEffect();
16
+ useProcessPushNonRingingCallEffect();
13
17
  useProcessPushCallEffect();
14
18
  useInitAndroidTokenAndRest();
15
19
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useIosCallKeepEventsSetupEffect","useIosVoipPushEventsSetupEffect","useProcessPushCallEffect","useInitAndroidTokenAndRest","usePushRegisterEffect"],"sourceRoot":"../../../../src","sources":["hooks/push/index.ts"],"mappings":"AAAA,SAASA,+BAA+B,QAAQ,mCAAmC;AACnF,SAASC,+BAA+B,QAAQ,mCAAmC;AACnF,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;;AAEzE;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzCJ,+BAA+B,CAAC,CAAC;EACjCC,+BAA+B,CAAC,CAAC;EACjCC,wBAAwB,CAAC,CAAC;EAC1BC,0BAA0B,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"names":["useIosCallKeepEventsSetupEffect","useIosVoipPushEventsSetupEffect","useProcessPushCallEffect","useInitAndroidTokenAndRest","useIosInitRemoteNotifications","useProcessPushNonRingingCallEffect","usePushRegisterEffect"],"sourceRoot":"../../../../src","sources":["hooks/push/index.ts"],"mappings":"AAAA,SAASA,+BAA+B,QAAQ,mCAAmC;AACnF,SAASC,+BAA+B,QAAQ,mCAAmC;AACnF,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,6BAA6B,QAAQ,iCAAiC;AAC/E,SAASC,kCAAkC,QAAQ,sCAAsC;;AAEzF;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzCF,6BAA6B,CAAC,CAAC;EAC/BJ,+BAA+B,CAAC,CAAC;EACjCC,+BAA+B,CAAC,CAAC;EACjCI,kCAAkC,CAAC,CAAC;EACpCH,wBAAwB,CAAC,CAAC;EAC1BC,0BAA0B,CAAC,CAAC;AAC9B,CAAC"}
@@ -4,7 +4,7 @@ import { StreamVideoRN } from '../../utils';
4
4
  import { initAndroidPushToken } from '../../utils/push/android';
5
5
 
6
6
  /**
7
- * This hook is used to initialize the push token for Android and ask notification permissions.
7
+ * This hook is used to initialize the push token for Android.
8
8
  */
9
9
  export const useInitAndroidTokenAndRest = () => {
10
10
  var _useConnectedUser;
@@ -16,7 +16,13 @@ export const useInitAndroidTokenAndRest = () => {
16
16
  if (!client || !connectedUserId || !pushConfig) {
17
17
  return;
18
18
  }
19
- initAndroidPushToken(client, pushConfig);
19
+ let unsubscribe = () => {};
20
+ initAndroidPushToken(client, pushConfig, unsubscribeListener => {
21
+ unsubscribe = unsubscribeListener;
22
+ });
23
+ return () => {
24
+ unsubscribe();
25
+ };
20
26
  }, [client, connectedUserId]);
21
27
  };
22
28
  //# sourceMappingURL=useInitAndroidTokenAndRest.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useConnectedUser","useStreamVideoClient","useEffect","StreamVideoRN","initAndroidPushToken","useInitAndroidTokenAndRest","_useConnectedUser","client","connectedUserId","id","pushConfig","getConfig","push"],"sourceRoot":"../../../../src","sources":["hooks/push/useInitAndroidTokenAndRest.ts"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,oBAAoB,QACf,iCAAiC;AACxC,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,oBAAoB,QAAQ,0BAA0B;;AAE/D;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CAAA,KAAM;EAAA,IAAAC,iBAAA;EAC9C,MAAMC,MAAM,GAAGN,oBAAoB,CAAC,CAAC;EACrC,MAAMO,eAAe,IAAAF,iBAAA,GAAGN,gBAAgB,CAAC,CAAC,cAAAM,iBAAA,uBAAlBA,iBAAA,CAAoBG,EAAE;EAC9CP,SAAS,CAAC,MAAM;IACd,MAAMQ,UAAU,GAAGP,aAAa,CAACQ,SAAS,CAAC,CAAC,CAACC,IAAI;IACjD;IACA,IAAI,CAACL,MAAM,IAAI,CAACC,eAAe,IAAI,CAACE,UAAU,EAAE;MAC9C;IACF;IACAN,oBAAoB,CAACG,MAAM,EAAEG,UAAU,CAAC;EAC1C,CAAC,EAAE,CAACH,MAAM,EAAEC,eAAe,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"names":["useConnectedUser","useStreamVideoClient","useEffect","StreamVideoRN","initAndroidPushToken","useInitAndroidTokenAndRest","_useConnectedUser","client","connectedUserId","id","pushConfig","getConfig","push","unsubscribe","unsubscribeListener"],"sourceRoot":"../../../../src","sources":["hooks/push/useInitAndroidTokenAndRest.ts"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,oBAAoB,QACf,iCAAiC;AACxC,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,oBAAoB,QAAQ,0BAA0B;;AAE/D;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGA,CAAA,KAAM;EAAA,IAAAC,iBAAA;EAC9C,MAAMC,MAAM,GAAGN,oBAAoB,CAAC,CAAC;EACrC,MAAMO,eAAe,IAAAF,iBAAA,GAAGN,gBAAgB,CAAC,CAAC,cAAAM,iBAAA,uBAAlBA,iBAAA,CAAoBG,EAAE;EAC9CP,SAAS,CAAC,MAAM;IACd,MAAMQ,UAAU,GAAGP,aAAa,CAACQ,SAAS,CAAC,CAAC,CAACC,IAAI;IACjD;IACA,IAAI,CAACL,MAAM,IAAI,CAACC,eAAe,IAAI,CAACE,UAAU,EAAE;MAC9C;IACF;IACA,IAAIG,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;IAC1BT,oBAAoB,CAACG,MAAM,EAAEG,UAAU,EAAGI,mBAAmB,IAAK;MAChED,WAAW,GAAGC,mBAAmB;IACnC,CAAC,CAAC;IACF,OAAO,MAAM;MACXD,WAAW,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,CAACN,MAAM,EAAEC,eAAe,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { useConnectedUser, useStreamVideoClient } from '@stream-io/video-react-bindings';
2
+ import { useEffect } from 'react';
3
+ import { StreamVideoRN } from '../../utils';
4
+ import { initIosNonVoipToken } from '../../utils/push/ios';
5
+
6
+ /**
7
+ * This hook is used to initialize the push token for iOS.
8
+ */
9
+ export const useIosInitRemoteNotifications = () => {
10
+ var _useConnectedUser;
11
+ const client = useStreamVideoClient();
12
+ const connectedUserId = (_useConnectedUser = useConnectedUser()) === null || _useConnectedUser === void 0 ? void 0 : _useConnectedUser.id;
13
+ useEffect(() => {
14
+ const pushConfig = StreamVideoRN.getConfig().push;
15
+ // NOTE: we need to wait for user to be connected before we can send the push token
16
+ if (!client || !connectedUserId || !pushConfig) {
17
+ return;
18
+ }
19
+ let unsubscribe = () => {};
20
+ initIosNonVoipToken(client, pushConfig, unsubscribeListener => {
21
+ unsubscribe = unsubscribeListener;
22
+ });
23
+ return () => {
24
+ unsubscribe();
25
+ };
26
+ }, [client, connectedUserId]);
27
+ };
28
+ //# sourceMappingURL=useIosInitRemoteNotifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useConnectedUser","useStreamVideoClient","useEffect","StreamVideoRN","initIosNonVoipToken","useIosInitRemoteNotifications","_useConnectedUser","client","connectedUserId","id","pushConfig","getConfig","push","unsubscribe","unsubscribeListener"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosInitRemoteNotifications.ts"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,oBAAoB,QACf,iCAAiC;AACxC,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,mBAAmB,QAAQ,sBAAsB;;AAE1D;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EAAA,IAAAC,iBAAA;EACjD,MAAMC,MAAM,GAAGN,oBAAoB,CAAC,CAAC;EACrC,MAAMO,eAAe,IAAAF,iBAAA,GAAGN,gBAAgB,CAAC,CAAC,cAAAM,iBAAA,uBAAlBA,iBAAA,CAAoBG,EAAE;EAC9CP,SAAS,CAAC,MAAM;IACd,MAAMQ,UAAU,GAAGP,aAAa,CAACQ,SAAS,CAAC,CAAC,CAACC,IAAI;IACjD;IACA,IAAI,CAACL,MAAM,IAAI,CAACC,eAAe,IAAI,CAACE,UAAU,EAAE;MAC9C;IACF;IACA,IAAIG,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;IAC1BT,mBAAmB,CAACG,MAAM,EAAEG,UAAU,EAAGI,mBAAmB,IAAK;MAC/DD,WAAW,GAAGC,mBAAmB;IACnC,CAAC,CAAC;IACF,OAAO,MAAM;MACXD,WAAW,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,CAACN,MAAM,EAAEC,eAAe,CAAC,CAAC;AAC/B,CAAC"}
@@ -4,6 +4,8 @@ import { Platform } from 'react-native';
4
4
  import { StreamVideoRN } from '../../utils';
5
5
  import { useStreamVideoClient } from '@stream-io/video-react-bindings';
6
6
  import { voipPushNotificationCallCId$ } from '../../utils/push/rxSubjects';
7
+ import { setPushLogoutCallback } from '../../utils/internal/pushLogoutCallback';
8
+ let lastVoipToken = '';
7
9
 
8
10
  /**
9
11
  * This hook is used to do the initial setup of listeners
@@ -16,13 +18,33 @@ export const useIosVoipPushEventsSetupEffect = () => {
16
18
  if (Platform.OS !== 'ios' || !pushConfig || !client) {
17
19
  return;
18
20
  }
21
+ if (lastVoipToken) {
22
+ // send token to stream (userId might have switched on the same device)
23
+ const push_provider_name = pushConfig.ios.pushProviderName;
24
+ if (!push_provider_name) {
25
+ return;
26
+ }
27
+ client.addVoipDevice(lastVoipToken, 'apn', push_provider_name).catch(err => {
28
+ console.warn('Failed to send voip token to stream', err);
29
+ });
30
+ }
19
31
  const voipPushNotification = getVoipPushNotificationLib();
20
32
  const onTokenReceived = token => {
21
33
  // send token to stream
34
+ lastVoipToken = token;
22
35
  const push_provider_name = pushConfig.ios.pushProviderName;
36
+ if (!push_provider_name) {
37
+ return;
38
+ }
23
39
  client.addVoipDevice(token, 'apn', push_provider_name).catch(err => {
24
40
  console.warn('Failed to send voip token to stream', err);
25
41
  });
42
+ // set the logout callback
43
+ setPushLogoutCallback(() => {
44
+ client.removeDevice(token).catch(err => {
45
+ console.warn('Failed to remove voip token from stream', err);
46
+ });
47
+ });
26
48
  };
27
49
  // fired when PushKit give us the latest token
28
50
  voipPushNotification.addEventListener('register', token => {
@@ -67,13 +89,36 @@ export const useIosVoipPushEventsSetupEffect = () => {
67
89
  }, []);
68
90
  };
69
91
  const onNotificationReceived = notification => {
70
- var _notification$stream, _notification$stream2;
92
+ var _notification$stream, _notification$stream2, _notification$stream3;
93
+ /* --- Example payload ---
94
+ {
95
+ "aps": {
96
+ "alert": {
97
+ "body": "",
98
+ "title": "Vishal Narkhede is calling you"
99
+ },
100
+ "badge": 0,
101
+ "category": "stream.video",
102
+ "mutable-content": 1
103
+ },
104
+ "stream": {
105
+ "call_cid": "default:ixbm7y0k74pbjnq",
106
+ "call_display_name": "",
107
+ "created_by_display_name": "Vishal Narkhede",
108
+ "created_by_id": "vishalexpo",
109
+ "receiver_id": "santhoshexpo",
110
+ "sender": "stream.video",
111
+ "type": "call.ring",
112
+ "version": "v2"
113
+ }
114
+ } */
71
115
  const sender = notification === null || notification === void 0 || (_notification$stream = notification.stream) === null || _notification$stream === void 0 ? void 0 : _notification$stream.sender;
72
- // do not process any other notifications other than stream.video
73
- if (sender !== 'stream.video') {
116
+ const type = notification === null || notification === void 0 || (_notification$stream2 = notification.stream) === null || _notification$stream2 === void 0 ? void 0 : _notification$stream2.type;
117
+ // do not process any other notifications other than stream.video or ringing
118
+ if (sender !== 'stream.video' && type !== 'call.ring') {
74
119
  return;
75
120
  }
76
- const call_cid = notification === null || notification === void 0 || (_notification$stream2 = notification.stream) === null || _notification$stream2 === void 0 ? void 0 : _notification$stream2.call_cid;
121
+ const call_cid = notification === null || notification === void 0 || (_notification$stream3 = notification.stream) === null || _notification$stream3 === void 0 ? void 0 : _notification$stream3.call_cid;
77
122
  if (call_cid) {
78
123
  // send the info to this subject, it is listened by callkeep events
79
124
  // callkeep events will then accept/reject the call
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","getVoipPushNotificationLib","Platform","StreamVideoRN","useStreamVideoClient","voipPushNotificationCallCId$","useIosVoipPushEventsSetupEffect","client","pushConfig","getConfig","push","OS","voipPushNotification","onTokenReceived","token","push_provider_name","ios","pushProviderName","addVoipDevice","catch","err","console","warn","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","onNotificationReceived","removeEventListener","notification","_notification$stream","_notification$stream2","sender","stream","call_cid","next"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","getVoipPushNotificationLib","Platform","StreamVideoRN","useStreamVideoClient","voipPushNotificationCallCId$","setPushLogoutCallback","lastVoipToken","useIosVoipPushEventsSetupEffect","client","pushConfig","getConfig","push","OS","push_provider_name","ios","pushProviderName","addVoipDevice","catch","err","console","warn","voipPushNotification","onTokenReceived","token","removeDevice","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","onNotificationReceived","removeEventListener","notification","_notification$stream","_notification$stream2","_notification$stream3","sender","stream","type","call_cid","next"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { pushNonRingingCallData$ } from '../../utils/push/rxSubjects';
2
+ import { useEffect } from 'react';
3
+ import { StreamVideoRN } from '../../utils';
4
+ import { useConnectedUser, useStreamVideoClient } from '@stream-io/video-react-bindings';
5
+ import { filter } from 'rxjs/operators';
6
+ import { processNonIncomingCallFromPush } from '../../utils/push/utils';
7
+
8
+ /**
9
+ * This hook is used to process the non ringing call data via push notifications using the relevant rxjs subject
10
+ * Note: this effect cannot work when push notifications are received when the app is in quit state or in other words when the client is not connected with a websocket.
11
+ * So we essentially run this effect only when the client is connected with a websocket.
12
+ */
13
+ export const useProcessPushNonRingingCallEffect = () => {
14
+ var _useConnectedUser;
15
+ const client = useStreamVideoClient();
16
+ const connectedUserId = (_useConnectedUser = useConnectedUser()) === null || _useConnectedUser === void 0 ? void 0 : _useConnectedUser.id;
17
+ // The Effect to join/reject call automatically when incoming call was received and processed from push notification
18
+ useEffect(() => {
19
+ const pushConfig = StreamVideoRN.getConfig().push;
20
+ if (!pushConfig || !client || !connectedUserId) {
21
+ return;
22
+ }
23
+ const subscription = pushNonRingingCallData$.pipe(filter(NotUndefined)).subscribe(async _ref => {
24
+ let {
25
+ cid,
26
+ type
27
+ } = _ref;
28
+ await processNonIncomingCallFromPush(client, cid, type);
29
+ pushNonRingingCallData$.next(undefined); // remove the current data to avoid processing again
30
+ });
31
+
32
+ return () => {
33
+ subscription.unsubscribe();
34
+ };
35
+ }, [client, connectedUserId]);
36
+ };
37
+
38
+ /**
39
+ * A type guard to check if the data is not undefined
40
+ */
41
+ function NotUndefined(data) {
42
+ return data !== undefined;
43
+ }
44
+ //# sourceMappingURL=useProcessPushNonRingingCallEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pushNonRingingCallData$","useEffect","StreamVideoRN","useConnectedUser","useStreamVideoClient","filter","processNonIncomingCallFromPush","useProcessPushNonRingingCallEffect","_useConnectedUser","client","connectedUserId","id","pushConfig","getConfig","push","subscription","pipe","NotUndefined","subscribe","_ref","cid","type","next","undefined","unsubscribe","data"],"sourceRoot":"../../../../src","sources":["hooks/push/useProcessPushNonRingingCallEffect.ts"],"mappings":"AAAA,SAASA,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SACEC,gBAAgB,EAChBC,oBAAoB,QACf,iCAAiC;AACxC,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,8BAA8B,QAAQ,wBAAwB;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,kCAAkC,GAAGA,CAAA,KAAM;EAAA,IAAAC,iBAAA;EACtD,MAAMC,MAAM,GAAGL,oBAAoB,CAAC,CAAC;EACrC,MAAMM,eAAe,IAAAF,iBAAA,GAAGL,gBAAgB,CAAC,CAAC,cAAAK,iBAAA,uBAAlBA,iBAAA,CAAoBG,EAAE;EAC9C;EACAV,SAAS,CAAC,MAAM;IACd,MAAMW,UAAU,GAAGV,aAAa,CAACW,SAAS,CAAC,CAAC,CAACC,IAAI;IACjD,IAAI,CAACF,UAAU,IAAI,CAACH,MAAM,IAAI,CAACC,eAAe,EAAE;MAC9C;IACF;IAEA,MAAMK,YAAY,GAAGf,uBAAuB,CACzCgB,IAAI,CAACX,MAAM,CAACY,YAAY,CAAC,CAAC,CAC1BC,SAAS,CAAC,MAAAC,IAAA,IAAyB;MAAA,IAAlB;QAAEC,GAAG;QAAEC;MAAK,CAAC,GAAAF,IAAA;MAC7B,MAAMb,8BAA8B,CAACG,MAAM,EAAEW,GAAG,EAAEC,IAAI,CAAC;MACvDrB,uBAAuB,CAACsB,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;;IAEJ,OAAO,MAAM;MACXR,YAAY,CAACS,WAAW,CAAC,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAACf,MAAM,EAAEC,eAAe,CAAC,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AACA,SAASO,YAAYA,CAAIQ,IAAmB,EAAa;EACvD,OAAOA,IAAI,KAAKF,SAAS;AAC3B"}
@@ -1,5 +1,8 @@
1
1
  import { AndroidImportance } from '@notifee/react-native';
2
2
  import { setupFirebaseHandlerAndroid } from '../push/android';
3
+ import pushLogoutCallbacks from '../internal/pushLogoutCallback';
4
+ import { setupRemoteNotificationsHandleriOS } from '../push/ios';
5
+ import newNotificationCallbacks from '../internal/newNotificationCallbacks';
3
6
  const DEFAULT_STREAM_VIDEO_CONFIG = {
4
7
  foregroundService: {
5
8
  android: {
@@ -55,9 +58,38 @@ export class StreamVideoRN {
55
58
  this.config.push = pushConfig;
56
59
  // After getting the config we should setup callkeep events, firebase handler asap to handle incoming calls from a dead state
57
60
  setupFirebaseHandlerAndroid(pushConfig);
61
+ // setup ios handler for non-voip push notifications asap
62
+ setupRemoteNotificationsHandleriOS(pushConfig);
58
63
  }
59
64
  static getConfig() {
60
65
  return this.config;
61
66
  }
67
+
68
+ /**
69
+ * This is the function to be called when the push token must be removed.
70
+ * Typically used on user logout.
71
+ */
72
+ static onPushLogout() {
73
+ if (pushLogoutCallbacks.current) {
74
+ pushLogoutCallbacks.current.forEach(callback => callback());
75
+ }
76
+ }
77
+
78
+ /**
79
+ * This function is used to add a callback to be called when a new call notification is received.
80
+ * @param callback
81
+ * @returns Unsubscribe function
82
+ */
83
+ static addOnNewCallNotificationListener(callback) {
84
+ if (!newNotificationCallbacks.current) {
85
+ newNotificationCallbacks.current = [callback];
86
+ } else {
87
+ newNotificationCallbacks.current.push(callback);
88
+ }
89
+ return () => {
90
+ var _newNotificationCallb;
91
+ newNotificationCallbacks.current = (_newNotificationCallb = newNotificationCallbacks.current) === null || _newNotificationCallb === void 0 ? void 0 : _newNotificationCallb.filter(cb => cb !== callback);
92
+ };
93
+ }
62
94
  }
63
95
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidImportance","setupFirebaseHandlerAndroid","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","DEFAULT","notificationTexts","title","body","StreamVideoRN","config","updateConfig","setPushConfig","pushConfig","push","getConfig"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,2BAA2B,QAAQ,iBAAiB;AAG7D,MAAMC,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,EAAE,EAAE,gCAAgC;QACpCC,IAAI,EAAE,yCAAyC;QAC/CC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAEV,iBAAiB,CAACW;MAChC,CAAC;MACDC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,GAAGd,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOe,YAAYA,CAACA,YAAsD,EAAE;IAC1E,IAAI,CAACD,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAGC;IACL,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,aAAaA,CAACC,UAAkD,EAAE;IACvE,IAAI,IAAI,CAACH,MAAM,CAACI,IAAI,EAAE;MACpB;MACA;IACF;IACA,IAAI,CAACJ,MAAM,CAACI,IAAI,GAAGD,UAAU;IAC7B;IACAlB,2BAA2B,CAACkB,UAAU,CAAC;EACzC;EAEA,OAAOE,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACL,MAAM;EACpB;AACF"}
1
+ {"version":3,"names":["AndroidImportance","setupFirebaseHandlerAndroid","pushLogoutCallbacks","setupRemoteNotificationsHandleriOS","newNotificationCallbacks","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","DEFAULT","notificationTexts","title","body","StreamVideoRN","config","updateConfig","setPushConfig","pushConfig","push","getConfig","onPushLogout","current","forEach","callback","addOnNewCallNotificationListener","_newNotificationCallb","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,2BAA2B,QAAQ,iBAAiB;AAE7D,OAAOC,mBAAmB,MAAM,gCAAgC;AAChE,SAASC,kCAAkC,QAAQ,aAAa;AAChE,OAAOC,wBAAwB,MAExB,sCAAsC;AAE7C,MAAMC,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,EAAE,EAAE,gCAAgC;QACpCC,IAAI,EAAE,yCAAyC;QAC/CC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAEb,iBAAiB,CAACc;MAChC,CAAC;MACDC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,GAAGd,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOe,YAAYA,CAACA,YAAsD,EAAE;IAC1E,IAAI,CAACD,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAGC;IACL,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,aAAaA,CAACC,UAAkD,EAAE;IACvE,IAAI,IAAI,CAACH,MAAM,CAACI,IAAI,EAAE;MACpB;MACA;IACF;IACA,IAAI,CAACJ,MAAM,CAACI,IAAI,GAAGD,UAAU;IAC7B;IACArB,2BAA2B,CAACqB,UAAU,CAAC;IACvC;IACAnB,kCAAkC,CAACmB,UAAU,CAAC;EAChD;EAEA,OAAOE,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACL,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOM,YAAYA,CAAA,EAAG;IACpB,IAAIvB,mBAAmB,CAACwB,OAAO,EAAE;MAC/BxB,mBAAmB,CAACwB,OAAO,CAACC,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC/D;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,gCAAgCA,CACrCD,QAAqC,EACrC;IACA,IAAI,CAACxB,wBAAwB,CAACsB,OAAO,EAAE;MACrCtB,wBAAwB,CAACsB,OAAO,GAAG,CAACE,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACLxB,wBAAwB,CAACsB,OAAO,CAACH,IAAI,CAACK,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MAAA,IAAAE,qBAAA;MACX1B,wBAAwB,CAACsB,OAAO,IAAAI,qBAAA,GAC9B1B,wBAAwB,CAACsB,OAAO,cAAAI,qBAAA,uBAAhCA,qBAAA,CAAkCC,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKJ,QAAQ,CAAC;IACrE,CAAC;EACH;AACF"}
@@ -0,0 +1,10 @@
1
+ let lastCid = '';
2
+ const newNotificationCallbacks = {};
3
+ export const onNewCallNotification = (call, notificationType) => {
4
+ if (newNotificationCallbacks.current && lastCid !== call.cid) {
5
+ newNotificationCallbacks.current.forEach(callback => callback(call, notificationType));
6
+ lastCid = call.cid;
7
+ }
8
+ };
9
+ export default newNotificationCallbacks;
10
+ //# sourceMappingURL=newNotificationCallbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["lastCid","newNotificationCallbacks","onNewCallNotification","call","notificationType","current","cid","forEach","callback"],"sourceRoot":"../../../../src","sources":["utils/internal/newNotificationCallbacks.ts"],"mappings":"AAYA,IAAIA,OAAO,GAAG,EAAE;AAEhB,MAAMC,wBAAkD,GAAG,CAAC,CAAC;AAE7D,OAAO,MAAMC,qBAAkD,GAAGA,CAChEC,IAAI,EACJC,gBAAgB,KACb;EACH,IAAIH,wBAAwB,CAACI,OAAO,IAAIL,OAAO,KAAKG,IAAI,CAACG,GAAG,EAAE;IAC5DL,wBAAwB,CAACI,OAAO,CAACE,OAAO,CAAEC,QAAQ,IAChDA,QAAQ,CAACL,IAAI,EAAEC,gBAAgB,CACjC,CAAC;IACDJ,OAAO,GAAGG,IAAI,CAACG,GAAG;EACpB;AACF,CAAC;AAED,eAAeL,wBAAwB"}
@@ -0,0 +1,10 @@
1
+ let pushLogoutCallbacks = {};
2
+ export const setPushLogoutCallback = callback => {
3
+ if (!pushLogoutCallbacks.current) {
4
+ pushLogoutCallbacks.current = [callback];
5
+ } else {
6
+ pushLogoutCallbacks.current.push(callback);
7
+ }
8
+ };
9
+ export default pushLogoutCallbacks;
10
+ //# sourceMappingURL=pushLogoutCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pushLogoutCallbacks","setPushLogoutCallback","callback","current","push"],"sourceRoot":"../../../../src","sources":["utils/internal/pushLogoutCallback.ts"],"mappings":"AAMA,IAAIA,mBAAwC,GAAG,CAAC,CAAC;AAEjD,OAAO,MAAMC,qBAAqB,GAAIC,QAAoB,IAAK;EAC7D,IAAI,CAACF,mBAAmB,CAACG,OAAO,EAAE;IAChCH,mBAAmB,CAACG,OAAO,GAAG,CAACD,QAAQ,CAAC;EAC1C,CAAC,MAAM;IACLF,mBAAmB,CAACG,OAAO,CAACC,IAAI,CAACF,QAAQ,CAAC;EAC5C;AACF,CAAC;AAED,eAAeF,mBAAmB"}