@stream-io/video-react-native-sdk 0.0.1-alpha.247 → 0.0.1-alpha.248

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.0.1-alpha.248](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.247...@stream-io/video-react-native-sdk-0.0.1-alpha.248) (2023-07-06)
6
+
7
+
8
+ ### Features
9
+
10
+ * Remove ringing flag from call client ([#755](https://github.com/GetStream/stream-video-js/issues/755)) ([b78c605](https://github.com/GetStream/stream-video-js/commit/b78c60500e06b39fb4dce623bde6f7b10acdd8c1)), closes [/github.com/GetStream/stream-video-android/blob/develop/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt#L82](https://github.com//github.com/GetStream/stream-video-android/blob/develop/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt/issues/L82)
11
+
12
+
13
+
5
14
  ## [0.0.1-alpha.247](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.246...@stream-io/video-react-native-sdk-0.0.1-alpha.247) (2023-07-05)
6
15
 
7
16
 
@@ -1,15 +1,13 @@
1
1
  import React from 'react';
2
2
  import { Call } from '@stream-io/video-client';
3
- import { CallCycleHandlersType } from '../../src/providers';
4
3
  import { RenderOptions } from '@testing-library/react-native';
5
4
  import { RenderResult } from '@testing-library/react-native/build/render';
6
5
  export interface RenderProps {
7
6
  component: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
8
7
  options?: RenderOptions & {
9
8
  call?: Call;
10
- callCycleHandlers?: CallCycleHandlersType;
11
9
  };
12
10
  }
13
11
  export * from '@testing-library/react-native';
14
- declare const render: (component: RenderProps['component'], { call, callCycleHandlers, ...options }?: RenderProps['options']) => RenderResult;
12
+ declare const render: (component: RenderProps['component'], { call, ...options }?: RenderProps['options']) => RenderResult;
15
13
  export { render };
@@ -25,31 +25,19 @@ const react_native_1 = require("@testing-library/react-native");
25
25
  const client_1 = require("../mocks/client");
26
26
  const call_1 = require("../mocks/call");
27
27
  const MediaStreamManagement_1 = require("../../src/providers/MediaStreamManagement");
28
- const mockedCallCycleHandlers = {
29
- onCallAccepted: jest.fn(),
30
- onCallEnded: jest.fn(),
31
- onCallRejected: jest.fn(),
32
- onCallStarted: jest.fn(),
33
- onCallTimeout: jest.fn(),
34
- onCallError: jest.fn(),
35
- };
36
28
  __exportStar(require("@testing-library/react-native"), exports);
37
- const Wrapper = ({ children, client, callCycleHandlers, call, }) => (<providers_1.StreamVideo client={client} language={'en'}>
29
+ const Wrapper = ({ children, client, call, }) => (<providers_1.StreamVideo client={client} language={'en'}>
38
30
  <video_react_bindings_1.StreamCallProvider call={call}>
39
- <MediaStreamManagement_1.MediaStreamManagement>
40
- <providers_1.CallCycleLogicsWrapper callCycleHandlers={callCycleHandlers}>
41
- {children}
42
- </providers_1.CallCycleLogicsWrapper>
43
- </MediaStreamManagement_1.MediaStreamManagement>
31
+ <MediaStreamManagement_1.MediaStreamManagement>{children}</MediaStreamManagement_1.MediaStreamManagement>
44
32
  </video_react_bindings_1.StreamCallProvider>
45
33
  </providers_1.StreamVideo>);
46
34
  // override React Testing Library's render with our own
47
35
  // that way we can wrap the component with the necessary providers
48
- const render = (component, { call, callCycleHandlers = mockedCallCycleHandlers, ...options } = {}) => {
36
+ const render = (component, { call, ...options } = {}) => {
49
37
  const testClient = (0, client_1.mockClientWithUser)({ id: 'test-user-id' });
50
38
  const testCall = call || (0, call_1.mockCall)(testClient);
51
39
  return (0, react_native_1.render)(component, {
52
- wrapper: (props) => (<Wrapper {...props} client={testClient} call={testCall} callCycleHandlers={callCycleHandlers}/>),
40
+ wrapper: (props) => (<Wrapper {...props} client={testClient} call={testCall}/>),
53
41
  ...options,
54
42
  });
55
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RNTLTools.js","sourceRoot":"","sources":["../../../__tests__/utils/RNTLTools.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAiD;AAEjD,mDAI6B;AAC7B,0EAAqE;AACrE,gEAGuC;AAEvC,4CAAqD;AACrD,wCAAyC;AACzC,qFAAkF;AAiBlF,MAAM,uBAAuB,GAAG;IAC9B,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;IACzB,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;IACtB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;IACzB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;IACxB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;IACxB,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;CACvB,CAAC;AAEF,gEAA8C;AAE9C,MAAM,OAAO,GAAG,CAAC,EACf,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,IAAI,GAC4B,EAAE,EAAE,CAAC,CACrC,CAAC,uBAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAC1C;IAAA,CAAC,yCAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAC7B;MAAA,CAAC,6CAAqB,CACpB;QAAA,CAAC,kCAAsB,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CAC3D;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,kCAAsB,CAC1B;MAAA,EAAE,6CAAqB,CACzB;IAAA,EAAE,yCAAkB,CACtB;EAAA,EAAE,uBAAW,CAAC,CACf,CAAC;AACF,uDAAuD;AACvD,kEAAkE;AAClE,MAAM,MAAM,GAAG,CACb,SAAmC,EACnC,EACE,IAAI,EACJ,iBAAiB,GAAG,uBAAuB,EAC3C,GAAG,OAAO,KACgB,EAAE,EAChB,EAAE;IAChB,MAAM,UAAU,GAAG,IAAA,2BAAkB,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,IAAA,qBAAS,EAAC,SAAS,EAAE;QAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAClB,CAAC,OAAO,CACN,IAAI,KAAK,CAAC,CACV,MAAM,CAAC,CAAC,UAAU,CAAC,CACnB,IAAI,CAAC,CAAC,QAAQ,CAAC,CACf,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EACrC,CACH;QACD,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC,CAAC;AAEO,wBAAM"}
1
+ {"version":3,"file":"RNTLTools.js","sourceRoot":"","sources":["../../../__tests__/utils/RNTLTools.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAiD;AAEjD,mDAAkD;AAClD,0EAAqE;AACrE,gEAGuC;AAEvC,4CAAqD;AACrD,wCAAyC;AACzC,qFAAkF;AAelF,gEAA8C;AAE9C,MAAM,OAAO,GAAG,CAAC,EACf,QAAQ,EACR,MAAM,EACN,IAAI,GAC4B,EAAE,EAAE,CAAC,CACrC,CAAC,uBAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAC1C;IAAA,CAAC,yCAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAC7B;MAAA,CAAC,6CAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,6CAAqB,CAC1D;IAAA,EAAE,yCAAkB,CACtB;EAAA,EAAE,uBAAW,CAAC,CACf,CAAC;AACF,uDAAuD;AACvD,kEAAkE;AAClE,MAAM,MAAM,GAAG,CACb,SAAmC,EACnC,EAAE,IAAI,EAAE,GAAG,OAAO,KAA6B,EAAE,EACnC,EAAE;IAChB,MAAM,UAAU,GAAG,IAAA,2BAAkB,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,IAAA,qBAAS,EAAC,SAAS,EAAE;QAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAClB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAG,CAC3D;QACD,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC,CAAC;AAEO,wBAAM"}
@@ -1 +1,35 @@
1
- export declare const IncomingCallView: () => JSX.Element;
1
+ /**
2
+ * The props for the Accept Call button in the IncomingCallView component.
3
+ */
4
+ type AcceptCallButton = {
5
+ /**
6
+ * Handler to be called when the accept call button is pressed.
7
+ * @returns void
8
+ */
9
+ onPressHandler: () => void;
10
+ };
11
+ /**
12
+ * The props for the Reject Call button in the IncomingCallView component.
13
+ */
14
+ type RejectCallButton = {
15
+ /**
16
+ * Handler to be called when the reject call button is pressed.
17
+ * @returns void
18
+ */
19
+ onPressHandler: () => void;
20
+ };
21
+ /**
22
+ * Props for the IncomingCallView Component.
23
+ */
24
+ export type IncomingCallViewType = {
25
+ /**
26
+ * Accept Call Button Props to be passed as an object
27
+ */
28
+ acceptCallButton: AcceptCallButton;
29
+ /**
30
+ * Reject Call Button Props to be passed as an object
31
+ */
32
+ rejectCallButton: RejectCallButton;
33
+ };
34
+ export declare const IncomingCallView: ({ acceptCallButton, rejectCallButton, }: IncomingCallViewType) => JSX.Element;
35
+ export {};
@@ -11,31 +11,9 @@ const video_react_bindings_1 = require("@stream-io/video-react-bindings");
11
11
  const UserInfoView_1 = require("./UserInfoView");
12
12
  const icons_1 = require("../icons");
13
13
  const theme_1 = require("../theme");
14
- const video_client_1 = require("@stream-io/video-client");
15
14
  const MediaStreamManagement_1 = require("../providers/MediaStreamManagement");
16
- const IncomingCallView = () => {
17
- const { toggleInitialVideoMuteState, initialVideoEnabled } = (0, MediaStreamManagement_1.useMediaStreamManagement)();
18
- const call = (0, video_react_bindings_1.useCall)();
19
- const callingState = (0, video_react_bindings_1.useCallCallingState)();
20
- const answerCallHandler = async () => {
21
- try {
22
- await call?.join();
23
- }
24
- catch (error) {
25
- console.log('Error joining Call', error);
26
- }
27
- };
28
- const rejectCallHandler = async () => {
29
- try {
30
- if (callingState === video_client_1.CallingState.LEFT) {
31
- return;
32
- }
33
- await call?.leave({ reject: true });
34
- }
35
- catch (error) {
36
- console.log('Error leaving Call', error);
37
- }
38
- };
15
+ const IncomingCallView = ({ acceptCallButton, rejectCallButton, }) => {
16
+ const { initialVideoEnabled, toggleInitialVideoMuteState } = (0, MediaStreamManagement_1.useMediaStreamManagement)();
39
17
  return (<Background>
40
18
  <react_native_1.View style={styles.content}>
41
19
  <UserInfoView_1.UserInfoView />
@@ -43,7 +21,7 @@ const IncomingCallView = () => {
43
21
  </react_native_1.View>
44
22
 
45
23
  <react_native_1.View style={styles.buttonGroup}>
46
- <CallControlsButton_1.CallControlsButton onPress={rejectCallHandler} color={theme_1.theme.light.error} style={[styles.button, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
24
+ <CallControlsButton_1.CallControlsButton onPress={rejectCallButton.onPressHandler} color={theme_1.theme.light.error} style={[styles.button, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
47
25
  <icons_1.PhoneDown color={theme_1.theme.light.static_white}/>
48
26
  </CallControlsButton_1.CallControlsButton>
49
27
  <CallControlsButton_1.CallControlsButton onPress={toggleInitialVideoMuteState} color={initialVideoEnabled
@@ -51,7 +29,7 @@ const IncomingCallView = () => {
51
29
  : theme_1.theme.light.overlay_dark} style={[styles.button, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
52
30
  {!initialVideoEnabled ? (<icons_1.VideoSlash color={theme_1.theme.light.static_white}/>) : (<icons_1.Video color={theme_1.theme.light.static_black}/>)}
53
31
  </CallControlsButton_1.CallControlsButton>
54
- <CallControlsButton_1.CallControlsButton onPress={answerCallHandler} color={theme_1.theme.light.info} style={[styles.button, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
32
+ <CallControlsButton_1.CallControlsButton onPress={acceptCallButton.onPressHandler} color={theme_1.theme.light.info} style={[styles.button, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
55
33
  <icons_1.Phone color={theme_1.theme.light.static_white}/>
56
34
  </CallControlsButton_1.CallControlsButton>
57
35
  </react_native_1.View>
@@ -1 +1 @@
1
- {"version":3,"file":"IncomingCallView.js","sourceRoot":"","sources":["../../../src/components/IncomingCallView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IncomingCallView.js","sourceRoot":"","sources":["../../../src/components/IncomingCallView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1,21 @@
1
- export declare const OutgoingCallView: () => JSX.Element;
1
+ /**
2
+ * The props for the Cancel Call button in the OutgoingCallView component.
3
+ */
4
+ type CancelCallButton = {
5
+ /**
6
+ * Handler to be called when the cancel/hungup call button is pressed.
7
+ * @returns void
8
+ */
9
+ onPressHandler: () => void;
10
+ };
11
+ /**
12
+ * Props for the OutgoingCallView Component.
13
+ */
14
+ export type OutgoingCallViewType = {
15
+ /**
16
+ * Cancel/Reject Call Button Props to be passed as an object
17
+ */
18
+ cancelCallHandler: CancelCallButton;
19
+ };
20
+ export declare const OutgoingCallView: ({ cancelCallHandler, }: OutgoingCallViewType) => JSX.Element;
21
+ export {};
@@ -12,27 +12,12 @@ const icons_1 = require("../icons");
12
12
  const VideoRenderer_1 = require("./VideoRenderer");
13
13
  const useLocalVideoStream_1 = require("../hooks/useLocalVideoStream");
14
14
  const theme_1 = require("../theme");
15
- const video_react_bindings_1 = require("@stream-io/video-react-bindings");
16
- const video_client_1 = require("@stream-io/video-client");
17
15
  const constants_1 = require("../constants");
18
16
  const MediaStreamManagement_1 = require("../providers/MediaStreamManagement");
19
- const OutgoingCallView = () => {
17
+ const OutgoingCallView = ({ cancelCallHandler, }) => {
20
18
  const { initialAudioEnabled, initialVideoEnabled, toggleInitialAudioMuteState, toggleInitialVideoMuteState, } = (0, MediaStreamManagement_1.useMediaStreamManagement)();
21
- const call = (0, video_react_bindings_1.useCall)();
22
- const callingState = (0, video_react_bindings_1.useCallCallingState)();
23
- const hangupCallHandler = async () => {
24
- try {
25
- if (callingState === video_client_1.CallingState.LEFT) {
26
- return;
27
- }
28
- await call?.leave();
29
- }
30
- catch (error) {
31
- console.log('Error leaving Call', error);
32
- }
33
- };
34
- const muteStatusColor = (muted) => {
35
- return muted ? theme_1.theme.light.overlay_dark : theme_1.theme.light.static_white;
19
+ const muteStatusColor = (status) => {
20
+ return status ? theme_1.theme.light.overlay_dark : theme_1.theme.light.static_white;
36
21
  };
37
22
  return (<>
38
23
  <react_native_1.View style={[react_native_1.StyleSheet.absoluteFill, styles.container]}>
@@ -50,7 +35,7 @@ const OutgoingCallView = () => {
50
35
  </CallControlsButton_1.CallControlsButton>
51
36
  </react_native_1.View>
52
37
 
53
- <CallControlsButton_1.CallControlsButton onPress={hangupCallHandler} color={theme_1.theme.light.error} style={[styles.button, styles.hangupButton, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
38
+ <CallControlsButton_1.CallControlsButton onPress={cancelCallHandler.onPressHandler} color={theme_1.theme.light.error} style={[styles.button, styles.cancelCallButton, theme_1.theme.button.lg]} svgContainerStyle={[styles.svgContainerStyle, theme_1.theme.icon.lg]}>
54
39
  <icons_1.PhoneDown color={theme_1.theme.light.static_white}/>
55
40
  </CallControlsButton_1.CallControlsButton>
56
41
  </react_native_1.View>
@@ -93,7 +78,7 @@ const styles = react_native_1.StyleSheet.create({
93
78
  justifyContent: 'space-around',
94
79
  marginBottom: theme_1.theme.margin.md,
95
80
  },
96
- hangupButton: {
81
+ cancelCallButton: {
97
82
  alignSelf: 'center',
98
83
  },
99
84
  button: {},
@@ -1 +1 @@
1
- {"version":3,"file":"OutgoingCallView.js","sourceRoot":"","sources":["../../../src/components/OutgoingCallView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OutgoingCallView.js","sourceRoot":"","sources":["../../../src/components/OutgoingCallView.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export * from './useCallCycleEffect';
1
+ export * from './useCallControls';
2
2
  export * from './useLocalVideoStream';
3
3
  export * from './useIncallManager';
4
4
  export * from './usePermissionRequest';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./useCallCycleEffect"), exports);
17
+ __exportStar(require("./useCallControls"), exports);
18
18
  __exportStar(require("./useLocalVideoStream"), exports);
19
19
  __exportStar(require("./useIncallManager"), exports);
20
20
  __exportStar(require("./usePermissionRequest"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,wDAAsC;AACtC,qDAAmC;AACnC,yDAAuC;AACvC,8DAA4C;AAC5C,yCAAuB;AACvB,kEAAgD;AAChD,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC;AACtC,qDAAmC;AACnC,yDAAuC;AACvC,8DAA4C;AAC5C,yCAAuB;AACvB,kEAAgD;AAChD,oDAAkC"}
@@ -2,7 +2,6 @@ import { PropsWithChildren } from 'react';
2
2
  import { Call } from '@stream-io/video-client';
3
3
  export type StreamCallProps = {
4
4
  call: Call;
5
- callCycleHandlers?: CallCycleHandlersType;
6
5
  };
7
6
  /**
8
7
  * StreamCall is a wrapper component that orchestrates the call life cycle logic and
@@ -11,42 +10,4 @@ export type StreamCallProps = {
11
10
  *
12
11
  * @category Client State
13
12
  */
14
- export declare const StreamCall: ({ call, callCycleHandlers, children, }: PropsWithChildren<StreamCallProps>) => JSX.Element;
15
- /**
16
- * Exclude types from documentation site, but we should still add doc comments
17
- * @internal
18
- */
19
- export type CallCycleHandlersType = {
20
- /**
21
- * Handler called after a call is joined. Mostly used for navigation and related actions.
22
- */
23
- onCallJoined?: () => void;
24
- /**
25
- * Handler called after a callee receives a call. Mostly used for navigation and related actions.
26
- */
27
- onCallIncoming?: () => void;
28
- /**
29
- * Handler called after a call is hung up by the caller. Mostly used for navigation and cleanup actions.
30
- */
31
- onCallHungUp?: () => void;
32
- /**
33
- * Handler called after a caller initiates a call. Mostly used for navigation and related actions.
34
- */
35
- onCallOutgoing?: () => void;
36
- /**
37
- * Handler called after a call is rejected. Mostly used for navigation and cleanup actions.
38
- */
39
- onCallRejected?: () => void;
40
- /**
41
- * Handler called when the call is in joining state. Mostly used for navigation and related actions.
42
- */
43
- onCallJoining?: () => void;
44
- };
45
- /**
46
- * Exclude types from documentaiton site, but we should still add doc comments
47
- * @internal
48
- */
49
- export type CallCycleLogicsWrapperProps = {
50
- callCycleHandlers: CallCycleHandlersType;
51
- };
52
- export declare const CallCycleLogicsWrapper: ({ callCycleHandlers, children, }: PropsWithChildren<CallCycleLogicsWrapperProps>) => JSX.Element;
13
+ export declare const StreamCall: ({ call, children, }: PropsWithChildren<StreamCallProps>) => JSX.Element;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CallCycleLogicsWrapper = exports.StreamCall = void 0;
6
+ exports.StreamCall = void 0;
7
7
  const video_react_bindings_1 = require("@stream-io/video-react-bindings");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const hooks_1 = require("../hooks");
@@ -16,24 +16,17 @@ const MediaStreamManagement_1 = require("./MediaStreamManagement");
16
16
  *
17
17
  * @category Client State
18
18
  */
19
- const StreamCall = ({ call, callCycleHandlers = {}, children, }) => {
19
+ const StreamCall = ({ call, children, }) => {
20
20
  return (<video_react_bindings_1.StreamCallProvider call={call}>
21
21
  <MediaStreamManagement_1.MediaStreamManagement>
22
22
  <PermissionRequest />
23
23
  <AndroidKeepCallAlive />
24
24
  <IosInformCallkeepCallEnd />
25
- <exports.CallCycleLogicsWrapper callCycleHandlers={callCycleHandlers}>
26
- {children}
27
- </exports.CallCycleLogicsWrapper>
25
+ {children}
28
26
  </MediaStreamManagement_1.MediaStreamManagement>
29
27
  </video_react_bindings_1.StreamCallProvider>);
30
28
  };
31
29
  exports.StreamCall = StreamCall;
32
- const CallCycleLogicsWrapper = ({ callCycleHandlers, children, }) => {
33
- (0, hooks_1.useCallCycleEffect)(callCycleHandlers);
34
- return <>{children}</>;
35
- };
36
- exports.CallCycleLogicsWrapper = CallCycleLogicsWrapper;
37
30
  /**
38
31
  * This is a renderless component that is used to handler the permission requests using the usePermissionRequest hook.
39
32
  * usePermissionRequest needs to be called as a child of StreamCallProvider.
@@ -1 +1 @@
1
- {"version":3,"file":"StreamCall.js","sourceRoot":"","sources":["../../../src/providers/StreamCall.tsx"],"names":[],"mappings":";;;;;;AAAA,0EAAqE;AACrE,kDAAiD;AAEjD,oCAIkB;AAClB,8EAA2E;AAC3E,mEAAgE;AAMhE;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAC2B,EAAE,EAAE;IACvC,OAAO,CACL,CAAC,yCAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAC7B;MAAA,CAAC,6CAAqB,CACpB;QAAA,CAAC,iBAAiB,CAAC,AAAD,EAClB;QAAA,CAAC,oBAAoB,CAAC,AAAD,EACrB;QAAA,CAAC,wBAAwB,CAAC,AAAD,EACzB;QAAA,CAAC,8BAAsB,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CAC3D;UAAA,CAAC,QAAQ,CACX;QAAA,EAAE,8BAAsB,CAC1B;MAAA,EAAE,6CAAqB,CACzB;IAAA,EAAE,yCAAkB,CAAC,CACtB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB;AAyCK,MAAM,sBAAsB,GAAG,CAAC,EACrC,iBAAiB,EACjB,QAAQ,GACuC,EAAE,EAAE;IACnD,IAAA,0BAAkB,EAAC,iBAAiB,CAAC,CAAC;IAEtC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzB,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC;AACF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,IAAA,4BAAoB,GAAE,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,IAAA,qCAA6B,GAAE,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,IAAA,iDAAuB,GAAE,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"StreamCall.js","sourceRoot":"","sources":["../../../src/providers/StreamCall.tsx"],"names":[],"mappings":";;;;;;AAAA,0EAAqE;AACrE,kDAAiD;AAEjD,oCAA+E;AAC/E,8EAA2E;AAC3E,mEAAgE;AAKhE;;;;;;GAMG;AACI,MAAM,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,QAAQ,GAC2B,EAAE,EAAE;IACvC,OAAO,CACL,CAAC,yCAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAC7B;MAAA,CAAC,6CAAqB,CACpB;QAAA,CAAC,iBAAiB,CAAC,AAAD,EAClB;QAAA,CAAC,oBAAoB,CAAC,AAAD,EACrB;QAAA,CAAC,wBAAwB,CAAC,AAAD,EACzB;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,6CAAqB,CACzB;IAAA,EAAE,yCAAkB,CAAC,CACtB,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,IAAA,4BAAoB,GAAE,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,IAAA,qCAA6B,GAAE,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,IAAA,iDAAuB,GAAE,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -29,20 +29,13 @@ exports.processCallFromPushInBackground = processCallFromPushInBackground;
29
29
  * 3. Join or leave the call based on the user's action.
30
30
  */
31
31
  const processCallFromPush = async (client, call_cid, action) => {
32
- // if the we find the call and is already ringing, we don't need create a new call
33
- // as client would have received the call.ring state because the app had WS alive when receiving push notifications
34
- let callFromPush = client.readOnlyStateStore.calls.find((call) => call.cid === call_cid && call.ringing);
35
- if (!callFromPush) {
36
- // if not it means that WS is not alive when receiving the push notifications and we need to fetch the call
37
- const [callType, callId] = call_cid.split(':');
38
- callFromPush = client.call(callType, callId, true);
39
- try {
40
- await callFromPush.get();
41
- }
42
- catch (e) {
43
- console.log('failed to fetch call from push notification', e);
44
- return;
45
- }
32
+ let callFromPush;
33
+ try {
34
+ callFromPush = await client.onRingingCall(call_cid);
35
+ }
36
+ catch (e) {
37
+ console.log('failed to fetch call from push notification', e);
38
+ return;
46
39
  }
47
40
  // note: when action was pressed, we dont need to do anything as the only thing is to do is to get the call which adds it to the client
48
41
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/push/utils.ts"],"names":[],"mappings":";;;AAKA;;;EAGE;AACK,MAAM,+BAA+B,GAAG,KAAK,EAClD,UAAsB,EACtB,QAAgB,EAChB,MAAiD,EACjD,EAAE;IACF,IAAI,WAA0C,CAAC;IAE/C,IAAI;QACF,WAAW,GAAG,MAAM,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QACD,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO;KACR;IACD,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC,CAAC;AAlBW,QAAA,+BAA+B,mCAkB1C;AAEF;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAyB,EACzB,QAAgB,EAChB,MAAwC,EACxC,EAAE;IACF,kFAAkF;IAClF,mHAAmH;IACnH,IAAI,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAChD,CAAC;IACF,IAAI,CAAC,YAAY,EAAE;QACjB,2GAA2G;QAC3G,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI;YACF,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;SAC1B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO;SACR;KACF;IACD,uIAAuI;IACvI,IAAI;QACF,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;SAC3B;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KACzE;AACH,CAAC,CAAC;AA/BW,QAAA,mBAAmB,uBA+B9B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/push/utils.ts"],"names":[],"mappings":";;;AAKA;;;EAGE;AACK,MAAM,+BAA+B,GAAG,KAAK,EAClD,UAAsB,EACtB,QAAgB,EAChB,MAAiD,EACjD,EAAE;IACF,IAAI,WAA0C,CAAC;IAE/C,IAAI;QACF,WAAW,GAAG,MAAM,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QACD,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO;KACR;IACD,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC,CAAC;AAlBW,QAAA,+BAA+B,mCAkB1C;AAEF;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAyB,EACzB,QAAgB,EAChB,MAAwC,EACxC,EAAE;IACF,IAAI,YAAkB,CAAC;IACvB,IAAI;QACF,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KACrD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO;KACR;IACD,uIAAuI;IACvI,IAAI;QACF,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;SAC3B;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KACzE;AACH,CAAC,CAAC;AAtBW,QAAA,mBAAmB,uBAsB9B"}
package/package.json CHANGED
@@ -22,8 +22,8 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "@stream-io/i18n": "^0.0.8",
25
- "@stream-io/video-client": "^0.0.36",
26
- "@stream-io/video-react-bindings": "^0.0.38"
25
+ "@stream-io/video-client": "^0.0.37",
26
+ "@stream-io/video-react-bindings": "^0.0.39"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "@notifee/react-native": ">=7.7.0",
@@ -85,5 +85,5 @@
85
85
  "typedoc-plugin-markdown": "^3.15.3",
86
86
  "typescript": "^4.9.5"
87
87
  },
88
- "version": "0.0.1-alpha.247"
88
+ "version": "0.0.1-alpha.248"
89
89
  }
@@ -2,41 +2,56 @@ import React from 'react';
2
2
  import { ImageBackground, StyleSheet, Text, View } from 'react-native';
3
3
  import { CallControlsButton } from './CallControlsButton';
4
4
  import {
5
- useCall,
6
- useCallCallingState,
7
5
  useCallMembers,
8
6
  useConnectedUser,
9
7
  } from '@stream-io/video-react-bindings';
10
8
  import { UserInfoView } from './UserInfoView';
11
9
  import { Phone, PhoneDown, Video, VideoSlash } from '../icons';
12
10
  import { theme } from '../theme';
13
- import { CallingState } from '@stream-io/video-client';
14
11
  import { useMediaStreamManagement } from '../providers/MediaStreamManagement';
15
12
 
16
- export const IncomingCallView = () => {
17
- const { toggleInitialVideoMuteState, initialVideoEnabled } =
18
- useMediaStreamManagement();
19
- const call = useCall();
20
- const callingState = useCallCallingState();
13
+ /**
14
+ * The props for the Accept Call button in the IncomingCallView component.
15
+ */
16
+ type AcceptCallButton = {
17
+ /**
18
+ * Handler to be called when the accept call button is pressed.
19
+ * @returns void
20
+ */
21
+ onPressHandler: () => void;
22
+ };
23
+
24
+ /**
25
+ * The props for the Reject Call button in the IncomingCallView component.
26
+ */
27
+ type RejectCallButton = {
28
+ /**
29
+ * Handler to be called when the reject call button is pressed.
30
+ * @returns void
31
+ */
32
+ onPressHandler: () => void;
33
+ };
21
34
 
22
- const answerCallHandler = async () => {
23
- try {
24
- await call?.join();
25
- } catch (error) {
26
- console.log('Error joining Call', error);
27
- }
28
- };
35
+ /**
36
+ * Props for the IncomingCallView Component.
37
+ */
38
+ export type IncomingCallViewType = {
39
+ /**
40
+ * Accept Call Button Props to be passed as an object
41
+ */
42
+ acceptCallButton: AcceptCallButton;
43
+ /**
44
+ * Reject Call Button Props to be passed as an object
45
+ */
46
+ rejectCallButton: RejectCallButton;
47
+ };
29
48
 
30
- const rejectCallHandler = async () => {
31
- try {
32
- if (callingState === CallingState.LEFT) {
33
- return;
34
- }
35
- await call?.leave({ reject: true });
36
- } catch (error) {
37
- console.log('Error leaving Call', error);
38
- }
39
- };
49
+ export const IncomingCallView = ({
50
+ acceptCallButton,
51
+ rejectCallButton,
52
+ }: IncomingCallViewType) => {
53
+ const { initialVideoEnabled, toggleInitialVideoMuteState } =
54
+ useMediaStreamManagement();
40
55
 
41
56
  return (
42
57
  <Background>
@@ -47,7 +62,7 @@ export const IncomingCallView = () => {
47
62
 
48
63
  <View style={styles.buttonGroup}>
49
64
  <CallControlsButton
50
- onPress={rejectCallHandler}
65
+ onPress={rejectCallButton.onPressHandler}
51
66
  color={theme.light.error}
52
67
  style={[styles.button, theme.button.lg]}
53
68
  svgContainerStyle={[styles.svgContainerStyle, theme.icon.lg]}
@@ -71,7 +86,7 @@ export const IncomingCallView = () => {
71
86
  )}
72
87
  </CallControlsButton>
73
88
  <CallControlsButton
74
- onPress={answerCallHandler}
89
+ onPress={acceptCallButton.onPressHandler}
75
90
  color={theme.light.info}
76
91
  style={[styles.button, theme.button.lg]}
77
92
  svgContainerStyle={[styles.svgContainerStyle, theme.icon.lg]}
@@ -6,33 +6,42 @@ import { Mic, MicOff, PhoneDown, Video, VideoSlash } from '../icons';
6
6
  import { VideoRenderer } from './VideoRenderer';
7
7
  import { useLocalVideoStream } from '../hooks/useLocalVideoStream';
8
8
  import { theme } from '../theme';
9
- import { useCall, useCallCallingState } from '@stream-io/video-react-bindings';
10
- import { CallingState } from '@stream-io/video-client';
11
9
  import { Z_INDEX } from '../constants';
12
10
  import { useMediaStreamManagement } from '../providers/MediaStreamManagement';
13
11
 
14
- export const OutgoingCallView = () => {
12
+ /**
13
+ * The props for the Cancel Call button in the OutgoingCallView component.
14
+ */
15
+ type CancelCallButton = {
16
+ /**
17
+ * Handler to be called when the cancel/hungup call button is pressed.
18
+ * @returns void
19
+ */
20
+ onPressHandler: () => void;
21
+ };
22
+
23
+ /**
24
+ * Props for the OutgoingCallView Component.
25
+ */
26
+ export type OutgoingCallViewType = {
27
+ /**
28
+ * Cancel/Reject Call Button Props to be passed as an object
29
+ */
30
+ cancelCallHandler: CancelCallButton;
31
+ };
32
+
33
+ export const OutgoingCallView = ({
34
+ cancelCallHandler,
35
+ }: OutgoingCallViewType) => {
15
36
  const {
16
37
  initialAudioEnabled,
17
38
  initialVideoEnabled,
18
39
  toggleInitialAudioMuteState,
19
40
  toggleInitialVideoMuteState,
20
41
  } = useMediaStreamManagement();
21
- const call = useCall();
22
- const callingState = useCallCallingState();
23
42
 
24
- const hangupCallHandler = async () => {
25
- try {
26
- if (callingState === CallingState.LEFT) {
27
- return;
28
- }
29
- await call?.leave();
30
- } catch (error) {
31
- console.log('Error leaving Call', error);
32
- }
33
- };
34
- const muteStatusColor = (muted: boolean) => {
35
- return muted ? theme.light.overlay_dark : theme.light.static_white;
43
+ const muteStatusColor = (status: boolean) => {
44
+ return status ? theme.light.overlay_dark : theme.light.static_white;
36
45
  };
37
46
 
38
47
  return (
@@ -71,9 +80,9 @@ export const OutgoingCallView = () => {
71
80
  </View>
72
81
 
73
82
  <CallControlsButton
74
- onPress={hangupCallHandler}
83
+ onPress={cancelCallHandler.onPressHandler}
75
84
  color={theme.light.error}
76
- style={[styles.button, styles.hangupButton, theme.button.lg]}
85
+ style={[styles.button, styles.cancelCallButton, theme.button.lg]}
77
86
  svgContainerStyle={[styles.svgContainerStyle, theme.icon.lg]}
78
87
  >
79
88
  <PhoneDown color={theme.light.static_white} />
@@ -128,7 +137,7 @@ const styles = StyleSheet.create({
128
137
  justifyContent: 'space-around',
129
138
  marginBottom: theme.margin.md,
130
139
  },
131
- hangupButton: {
140
+ cancelCallButton: {
132
141
  alignSelf: 'center',
133
142
  },
134
143
  button: {},
@@ -1,4 +1,4 @@
1
- export * from './useCallCycleEffect';
1
+ export * from './useCallControls';
2
2
  export * from './useLocalVideoStream';
3
3
  export * from './useIncallManager';
4
4
  export * from './usePermissionRequest';
@@ -1,17 +1,12 @@
1
1
  import { StreamCallProvider } from '@stream-io/video-react-bindings';
2
2
  import React, { PropsWithChildren } from 'react';
3
3
  import { Call } from '@stream-io/video-client';
4
- import {
5
- useAndroidKeepCallAliveEffect,
6
- useCallCycleEffect,
7
- usePermissionRequest,
8
- } from '../hooks';
4
+ import { useAndroidKeepCallAliveEffect, usePermissionRequest } from '../hooks';
9
5
  import { useIosCallkeepEndEffect } from '../hooks/useIosCallkeepEndEffect';
10
6
  import { MediaStreamManagement } from './MediaStreamManagement';
11
7
 
12
8
  export type StreamCallProps = {
13
9
  call: Call;
14
- callCycleHandlers?: CallCycleHandlersType;
15
10
  };
16
11
  /**
17
12
  * StreamCall is a wrapper component that orchestrates the call life cycle logic and
@@ -22,7 +17,6 @@ export type StreamCallProps = {
22
17
  */
23
18
  export const StreamCall = ({
24
19
  call,
25
- callCycleHandlers = {},
26
20
  children,
27
21
  }: PropsWithChildren<StreamCallProps>) => {
28
22
  return (
@@ -31,61 +25,12 @@ export const StreamCall = ({
31
25
  <PermissionRequest />
32
26
  <AndroidKeepCallAlive />
33
27
  <IosInformCallkeepCallEnd />
34
- <CallCycleLogicsWrapper callCycleHandlers={callCycleHandlers}>
35
- {children}
36
- </CallCycleLogicsWrapper>
28
+ {children}
37
29
  </MediaStreamManagement>
38
30
  </StreamCallProvider>
39
31
  );
40
32
  };
41
33
 
42
- /**
43
- * Exclude types from documentation site, but we should still add doc comments
44
- * @internal
45
- */
46
- export type CallCycleHandlersType = {
47
- /**
48
- * Handler called after a call is joined. Mostly used for navigation and related actions.
49
- */
50
- onCallJoined?: () => void;
51
- /**
52
- * Handler called after a callee receives a call. Mostly used for navigation and related actions.
53
- */
54
- onCallIncoming?: () => void;
55
- /**
56
- * Handler called after a call is hung up by the caller. Mostly used for navigation and cleanup actions.
57
- */
58
- onCallHungUp?: () => void;
59
- /**
60
- * Handler called after a caller initiates a call. Mostly used for navigation and related actions.
61
- */
62
- onCallOutgoing?: () => void;
63
- /**
64
- * Handler called after a call is rejected. Mostly used for navigation and cleanup actions.
65
- */
66
- onCallRejected?: () => void;
67
- /**
68
- * Handler called when the call is in joining state. Mostly used for navigation and related actions.
69
- */
70
- onCallJoining?: () => void;
71
- };
72
-
73
- /**
74
- * Exclude types from documentaiton site, but we should still add doc comments
75
- * @internal
76
- */
77
- export type CallCycleLogicsWrapperProps = {
78
- callCycleHandlers: CallCycleHandlersType;
79
- };
80
-
81
- export const CallCycleLogicsWrapper = ({
82
- callCycleHandlers,
83
- children,
84
- }: PropsWithChildren<CallCycleLogicsWrapperProps>) => {
85
- useCallCycleEffect(callCycleHandlers);
86
-
87
- return <>{children}</>;
88
- };
89
34
  /**
90
35
  * This is a renderless component that is used to handler the permission requests using the usePermissionRequest hook.
91
36
  * usePermissionRequest needs to be called as a child of StreamCallProvider.
@@ -1,4 +1,4 @@
1
- import { StreamVideoClient } from '@stream-io/video-client';
1
+ import { Call, StreamVideoClient } from '@stream-io/video-client';
2
2
  import type { StreamVideoConfig } from '../StreamVideoRN/types';
3
3
 
4
4
  type PushConfig = NonNullable<StreamVideoConfig['push']>;
@@ -39,21 +39,12 @@ export const processCallFromPush = async (
39
39
  call_cid: string,
40
40
  action: 'accept' | 'decline' | 'pressed',
41
41
  ) => {
42
- // if the we find the call and is already ringing, we don't need create a new call
43
- // as client would have received the call.ring state because the app had WS alive when receiving push notifications
44
- let callFromPush = client.readOnlyStateStore.calls.find(
45
- (call) => call.cid === call_cid && call.ringing,
46
- );
47
- if (!callFromPush) {
48
- // if not it means that WS is not alive when receiving the push notifications and we need to fetch the call
49
- const [callType, callId] = call_cid.split(':');
50
- callFromPush = client.call(callType, callId, true);
51
- try {
52
- await callFromPush.get();
53
- } catch (e) {
54
- console.log('failed to fetch call from push notification', e);
55
- return;
56
- }
42
+ let callFromPush: Call;
43
+ try {
44
+ callFromPush = await client.onRingingCall(call_cid);
45
+ } catch (e) {
46
+ console.log('failed to fetch call from push notification', e);
47
+ return;
57
48
  }
58
49
  // note: when action was pressed, we dont need to do anything as the only thing is to do is to get the call which adds it to the client
59
50
  try {
@@ -1,8 +0,0 @@
1
- import { CallCycleHandlersType } from '../providers';
2
- /**
3
- *
4
- * @param callCycleHandlers
5
- *
6
- * @category Client State
7
- */
8
- export declare const useCallCycleEffect: (callCycleHandlers: CallCycleHandlersType) => void;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useCallCycleEffect = void 0;
4
- const video_react_bindings_1 = require("@stream-io/video-react-bindings");
5
- const react_1 = require("react");
6
- const video_client_1 = require("@stream-io/video-client");
7
- const usePrevious_1 = require("../utils/hooks/usePrevious");
8
- const NON_ACTIVE_CALLING_STATES = [video_client_1.CallingState.UNKNOWN, video_client_1.CallingState.IDLE];
9
- /**
10
- *
11
- * @param callCycleHandlers
12
- *
13
- * @category Client State
14
- */
15
- const useCallCycleEffect = (callCycleHandlers) => {
16
- const call = (0, video_react_bindings_1.useCall)();
17
- const callingState = (0, video_react_bindings_1.useCallCallingState)();
18
- const prevCallingState = (0, usePrevious_1.usePrevious)(callingState);
19
- const { onCallJoined, onCallIncoming, onCallOutgoing, onCallHungUp, onCallRejected, onCallJoining, } = callCycleHandlers;
20
- (0, react_1.useEffect)(() => {
21
- if (!call || NON_ACTIVE_CALLING_STATES.includes(callingState)) {
22
- return;
23
- }
24
- const isCallCreatedByMe = call.data?.created_by.id === call?.currentUserId;
25
- const isCallCreatedByOther = !!call.data?.created_by.id && !isCallCreatedByMe;
26
- const isIncomingCall = callingState === video_client_1.CallingState.RINGING &&
27
- !isCallCreatedByMe &&
28
- onCallIncoming;
29
- const isOutgoingCall = callingState === video_client_1.CallingState.RINGING &&
30
- isCallCreatedByMe &&
31
- onCallOutgoing;
32
- const isActiveCall = callingState === video_client_1.CallingState.JOINED && onCallJoined;
33
- const isCallHungUp = callingState === video_client_1.CallingState.LEFT && onCallHungUp;
34
- const isCallRejected = callingState === video_client_1.CallingState.LEFT &&
35
- isCallCreatedByOther &&
36
- onCallRejected;
37
- const isCallJoining = callingState === video_client_1.CallingState.JOINING && onCallJoining;
38
- if (isIncomingCall) {
39
- return onCallIncoming();
40
- }
41
- if (isOutgoingCall) {
42
- return onCallOutgoing();
43
- }
44
- if (isActiveCall) {
45
- return onCallJoined();
46
- }
47
- if (isCallHungUp) {
48
- return onCallHungUp();
49
- }
50
- if (isCallRejected) {
51
- return onCallRejected();
52
- }
53
- if (isCallJoining) {
54
- return onCallJoining();
55
- }
56
- }, [
57
- callingState,
58
- prevCallingState,
59
- call,
60
- onCallIncoming,
61
- onCallOutgoing,
62
- onCallJoined,
63
- onCallHungUp,
64
- onCallRejected,
65
- onCallJoining,
66
- ]);
67
- };
68
- exports.useCallCycleEffect = useCallCycleEffect;
69
- //# sourceMappingURL=useCallCycleEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCallCycleEffect.js","sourceRoot":"","sources":["../../../src/hooks/useCallCycleEffect.tsx"],"names":[],"mappings":";;;AAAA,0EAA+E;AAC/E,iCAAkC;AAClC,0DAAuD;AAEvD,4DAAyD;AAEzD,MAAM,yBAAyB,GAAG,CAAC,2BAAY,CAAC,OAAO,EAAE,2BAAY,CAAC,IAAI,CAAC,CAAC;AAC5E;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,CAChC,iBAAwC,EACxC,EAAE;IACF,MAAM,IAAI,GAAG,IAAA,8BAAO,GAAE,CAAC;IACvB,MAAM,YAAY,GAAG,IAAA,0CAAmB,GAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAG,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAC;IACnD,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,GACd,GAAG,iBAAiB,CAAC;IAEtB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,yBAAyB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC7D,OAAO;SACR;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI,EAAE,aAAa,CAAC;QAC3E,MAAM,oBAAoB,GACxB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;QACnD,MAAM,cAAc,GAClB,YAAY,KAAK,2BAAY,CAAC,OAAO;YACrC,CAAC,iBAAiB;YAClB,cAAc,CAAC;QACjB,MAAM,cAAc,GAClB,YAAY,KAAK,2BAAY,CAAC,OAAO;YACrC,iBAAiB;YACjB,cAAc,CAAC;QACjB,MAAM,YAAY,GAAG,YAAY,KAAK,2BAAY,CAAC,MAAM,IAAI,YAAY,CAAC;QAC1E,MAAM,YAAY,GAAG,YAAY,KAAK,2BAAY,CAAC,IAAI,IAAI,YAAY,CAAC;QACxE,MAAM,cAAc,GAClB,YAAY,KAAK,2BAAY,CAAC,IAAI;YAClC,oBAAoB;YACpB,cAAc,CAAC;QACjB,MAAM,aAAa,GACjB,YAAY,KAAK,2BAAY,CAAC,OAAO,IAAI,aAAa,CAAC;QAEzD,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,EAAE,CAAC;SACzB;QACD,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,EAAE,CAAC;SACzB;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,EAAE,CAAC;SACvB;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,EAAE,CAAC;SACvB;QACD,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,EAAE,CAAC;SACzB;QACD,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,EAAE,CAAC;SACxB;IACH,CAAC,EAAE;QACD,YAAY;QACZ,gBAAgB;QAChB,IAAI;QACJ,cAAc;QACd,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,aAAa;KACd,CAAC,CAAC;AACL,CAAC,CAAC;AApEW,QAAA,kBAAkB,sBAoE7B"}
@@ -1,82 +0,0 @@
1
- import { useCall, useCallCallingState } from '@stream-io/video-react-bindings';
2
- import { useEffect } from 'react';
3
- import { CallingState } from '@stream-io/video-client';
4
- import { CallCycleHandlersType } from '../providers';
5
- import { usePrevious } from '../utils/hooks/usePrevious';
6
-
7
- const NON_ACTIVE_CALLING_STATES = [CallingState.UNKNOWN, CallingState.IDLE];
8
- /**
9
- *
10
- * @param callCycleHandlers
11
- *
12
- * @category Client State
13
- */
14
- export const useCallCycleEffect = (
15
- callCycleHandlers: CallCycleHandlersType,
16
- ) => {
17
- const call = useCall();
18
- const callingState = useCallCallingState();
19
- const prevCallingState = usePrevious(callingState);
20
- const {
21
- onCallJoined,
22
- onCallIncoming,
23
- onCallOutgoing,
24
- onCallHungUp,
25
- onCallRejected,
26
- onCallJoining,
27
- } = callCycleHandlers;
28
-
29
- useEffect(() => {
30
- if (!call || NON_ACTIVE_CALLING_STATES.includes(callingState)) {
31
- return;
32
- }
33
- const isCallCreatedByMe = call.data?.created_by.id === call?.currentUserId;
34
- const isCallCreatedByOther =
35
- !!call.data?.created_by.id && !isCallCreatedByMe;
36
- const isIncomingCall =
37
- callingState === CallingState.RINGING &&
38
- !isCallCreatedByMe &&
39
- onCallIncoming;
40
- const isOutgoingCall =
41
- callingState === CallingState.RINGING &&
42
- isCallCreatedByMe &&
43
- onCallOutgoing;
44
- const isActiveCall = callingState === CallingState.JOINED && onCallJoined;
45
- const isCallHungUp = callingState === CallingState.LEFT && onCallHungUp;
46
- const isCallRejected =
47
- callingState === CallingState.LEFT &&
48
- isCallCreatedByOther &&
49
- onCallRejected;
50
- const isCallJoining =
51
- callingState === CallingState.JOINING && onCallJoining;
52
-
53
- if (isIncomingCall) {
54
- return onCallIncoming();
55
- }
56
- if (isOutgoingCall) {
57
- return onCallOutgoing();
58
- }
59
- if (isActiveCall) {
60
- return onCallJoined();
61
- }
62
- if (isCallHungUp) {
63
- return onCallHungUp();
64
- }
65
- if (isCallRejected) {
66
- return onCallRejected();
67
- }
68
- if (isCallJoining) {
69
- return onCallJoining();
70
- }
71
- }, [
72
- callingState,
73
- prevCallingState,
74
- call,
75
- onCallIncoming,
76
- onCallOutgoing,
77
- onCallJoined,
78
- onCallHungUp,
79
- onCallRejected,
80
- onCallJoining,
81
- ]);
82
- };