@stream-io/video-react-native-sdk 0.0.1-alpha.359 → 0.0.1-alpha.361
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 +18 -0
- package/dist/__tests__/components/CallControls.test.js +1 -1
- package/dist/__tests__/components/CallControls.test.js.map +1 -1
- package/dist/__tests__/components/CallParticipants.test.js +2 -2
- package/dist/__tests__/components/CallParticipants.test.js.map +1 -1
- package/dist/jest-setup.js +4 -0
- package/dist/jest-setup.js.map +1 -1
- package/dist/src/components/call/CallControls.js +26 -7
- package/dist/src/components/call/CallControls.js.map +1 -1
- package/dist/src/components/call/ReactionsPicker.d.ts +9 -0
- package/dist/src/components/call/ReactionsPicker.js +150 -0
- package/dist/src/components/call/ReactionsPicker.js.map +1 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.d.ts +3 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.js +173 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.js.map +1 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.d.ts +3 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.js +145 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.js.map +1 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/common.d.ts +38 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/common.js +64 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/common.js.map +1 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/index.d.ts +4 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/index.js +8 -0
- package/dist/src/components/participants/LocalParticipantView/FloatingView/index.js.map +1 -0
- package/dist/src/components/participants/LocalParticipantView/index.js +125 -0
- package/dist/src/components/participants/LocalParticipantView/index.js.map +1 -0
- package/dist/src/components/participants/Participant.js +3 -1
- package/dist/src/components/participants/Participant.js.map +1 -1
- package/dist/src/components/utility/index.d.ts +0 -1
- package/dist/src/components/utility/index.js +0 -1
- package/dist/src/components/utility/index.js.map +1 -1
- package/dist/src/components/utility/internal/CallControlsButton.d.ts +2 -1
- package/dist/src/components/utility/internal/CallControlsButton.js +2 -2
- package/dist/src/components/utility/internal/CallControlsButton.js.map +1 -1
- package/dist/src/constants/TestIds.d.ts +1 -1
- package/dist/src/constants/TestIds.js +1 -1
- package/dist/src/constants/TestIds.js.map +1 -1
- package/dist/src/constants/index.d.ts +2 -6
- package/dist/src/constants/index.js.map +1 -1
- package/dist/src/utils/StreamVideoRN/types.d.ts +1 -1
- package/dist/src/utils/internal/optionalLibs.d.ts +5 -0
- package/dist/src/utils/internal/optionalLibs.js +28 -0
- package/dist/src/utils/internal/optionalLibs.js.map +1 -0
- package/dist/src/utils/push/ios.js +0 -1
- package/dist/src/utils/push/ios.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -1
- package/src/components/call/CallControls.tsx +46 -12
- package/src/components/call/ReactionsPicker.tsx +165 -0
- package/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.tsx +193 -0
- package/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.tsx +168 -0
- package/src/components/participants/LocalParticipantView/FloatingView/common.ts +90 -0
- package/src/components/participants/LocalParticipantView/FloatingView/index.ts +12 -0
- package/src/components/participants/{LocalParticipantView.tsx → LocalParticipantView/index.tsx} +81 -71
- package/src/components/participants/Participant.tsx +1 -0
- package/src/components/utility/index.ts +0 -1
- package/src/components/utility/internal/CallControlsButton.tsx +16 -2
- package/src/constants/TestIds.ts +1 -1
- package/src/constants/index.ts +2 -1
- package/src/utils/StreamVideoRN/types.ts +1 -1
- package/src/utils/internal/optionalLibs.ts +27 -0
- package/src/utils/push/ios.ts +0 -1
- package/dist/src/components/participants/LocalParticipantView.js +0 -134
- package/dist/src/components/participants/LocalParticipantView.js.map +0 -1
- package/dist/src/components/utility/ReactionsModal.d.ts +0 -10
- package/dist/src/components/utility/ReactionsModal.js +0 -89
- package/dist/src/components/utility/ReactionsModal.js.map +0 -1
- package/src/components/utility/ReactionsModal.tsx +0 -91
- /package/dist/src/components/participants/{LocalParticipantView.d.ts → LocalParticipantView/index.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.0.1-alpha.361](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.360...@stream-io/video-react-native-sdk-0.0.1-alpha.361) (2023-08-09)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **react-native:** add basic reactions popup ([#913](https://github.com/GetStream/stream-video-js/issues/913)) ([3969000](https://github.com/GetStream/stream-video-js/commit/3969000025faabf8c923c1648bc19475d31e0cfb))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [0.0.1-alpha.360](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.359...@stream-io/video-react-native-sdk-0.0.1-alpha.360) (2023-08-08)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **react-native:** floating and a snapping animated local video view ([#906](https://github.com/GetStream/stream-video-js/issues/906)) ([aa683f6](https://github.com/GetStream/stream-video-js/commit/aa683f6908ee5b74575eb9f439c50c0d5cd83297))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
5
23
|
## [0.0.1-alpha.359](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.358...@stream-io/video-react-native-sdk-0.0.1-alpha.359) (2023-08-08)
|
|
6
24
|
|
|
7
25
|
|
|
@@ -58,7 +58,7 @@ describe('CallControls', () => {
|
|
|
58
58
|
});
|
|
59
59
|
const button = await RNTLTools_1.screen.findByTestId(TestIds_1.ButtonTestIds.REACTION);
|
|
60
60
|
RNTLTools_1.fireEvent.press(button);
|
|
61
|
-
expect(RNTLTools_1.screen.getByTestId(TestIds_1.ComponentTestIds.
|
|
61
|
+
expect(RNTLTools_1.screen.getByTestId(TestIds_1.ComponentTestIds.REACTIONS_PICKER)).toBeVisible();
|
|
62
62
|
});
|
|
63
63
|
it('execute onPressHandler when its passed to hangup call button when its pressed in call controls component', async () => {
|
|
64
64
|
const call = (0, call_1.mockCall)((0, client_1.mockClientWithUser)(), [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallControls.test.js","sourceRoot":"","sources":["../../../__tests__/components/CallControls.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,4CAAqD;AACrD,uEAAmD;AACnD,yDAA8E;AAC9E,wCAAyC;AACzC,kDAAwE;AACxE,qDAAoD;AACpD,0DAAwD;AAExD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACzB,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,IAAK,KAEJ;AAFD,WAAK,KAAK;IACR,4BAAmB,CAAA;AACrB,CAAC,EAFI,KAAK,KAAL,KAAK,QAET;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;QACxG,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAA,2BAAkB,GAAE,EAAE;YAC1C,IAAA,qBAAe,EAAC;gBACd,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,KAAK,CAAC,OAAO;gBACxB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;SACH,CAAC,CAAC;QAEH,IAAA,kBAAM,EACJ,CAAC,yBAAY,CACX,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EACxE,EACF;YACE,IAAI;SACL,CACF,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,kBAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAA,2BAAkB,GAAE,EAAE;YAC1C,IAAA,qBAAe,EAAC;gBACd,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,KAAK,CAAC,OAAO;gBACxB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;SACH,CAAC,CAAC;QAEH,IAAA,kBAAM,EACJ,CAAC,yBAAY,CACX,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EACxE,EACF;YACE,IAAI;SACL,CACF,CAAC;QAEF,MAAM,IAAA,mBAAO,EAAC,GAAG,EAAE,CACjB,MAAM,CAAC,GAAG,EAAE,CACV,kBAAM,CAAC,WAAW,CAAC,0BAAgB,CAAC,iCAAiC,CAAC,CACvE,CAAC,OAAO,CACP,2EAA2E,CAC5E,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,IAAI,GAAG,IAAA,eAAQ,EACnB,IAAA,2BAAkB,GAAE,EACpB;YACE,IAAA,qBAAe,EAAC;gBACd,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,KAAK,CAAC,OAAO;gBACxB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;SACH,EACD,CAAC,4BAAa,CAAC,eAAe,CAAC,CAChC,CAAC;QAEF,IAAA,kBAAM,EAAC,CAAC,yBAAY,CAAC,AAAD,EAAG,EAAE;YACvB,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,kBAAM,CAAC,YAAY,CAAC,uBAAa,CAAC,QAAQ,CAAC,CAAC;QAEjE,qBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,CAAC,kBAAM,CAAC,WAAW,CAAC,0BAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"CallControls.test.js","sourceRoot":"","sources":["../../../__tests__/components/CallControls.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -51,9 +51,9 @@ describe('CallParticipants', () => {
|
|
|
51
51
|
});
|
|
52
52
|
expect(await RNTLTools_1.screen.findByTestId(TestIds_1.ComponentTestIds.CALL_PARTICIPANTS_GRID)).toBeVisible();
|
|
53
53
|
// Locating and verifying that all ParticipantViews are rendered
|
|
54
|
-
const localParticipant = (0, RNTLTools_1.within)(RNTLTools_1.screen.getByTestId(TestIds_1.ComponentTestIds.LOCAL_PARTICIPANT));
|
|
55
54
|
const participant1 = (0, RNTLTools_1.within)(RNTLTools_1.screen.getByTestId(`participant-${P_IDS.REMOTE_1}`));
|
|
56
|
-
|
|
55
|
+
// shows the local participant floating view?
|
|
56
|
+
expect(await RNTLTools_1.screen.findByTestId(TestIds_1.ComponentTestIds.LOCAL_PARTICIPANT)).toBeVisible();
|
|
57
57
|
expect(participant1.getByTestId(TestIds_1.ComponentTestIds.PARTICIPANT_MEDIA_STREAM)).toHaveProp('streamURL', 'audio-test-url');
|
|
58
58
|
// flat list should not be rendered for 2 participants as we should not wrap them in a grid
|
|
59
59
|
expect(RNTLTools_1.screen.queryByLabelText(TestIds_1.ComponentTestIds.CALL_PARTICIPANTS_LIST)).toBeNull();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipants.test.js","sourceRoot":"","sources":["../../../__tests__/components/CallParticipants.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,4CAAqD;AACrD,0DAAoD;AACpD,uEAAmD;AACnD,yDAA+D;AAC/D,wCAAyC;AACzC,kDAAiE;AACjE,qDAAmD;AAGnD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACzB,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,IAAK,KAKJ;AALD,WAAK,KAAK;IACR,4BAAmB,CAAA;IACnB,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;AACvB,CAAC,EALI,KAAK,KAAL,KAAK,QAKT;AAED,MAAM,8BAA8B,GAAG,KAAK,EAC1C,aAA+B,EAC/B,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,kBAAM,CAAC,YAAY,CACxC,0BAAgB,CAAC,sBAAsB,CACxC,CAAC;IACF,MAAM,IAAA,eAAG,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACpC,aAAa;SACd,CAAC,CAAC;QACH,2DAA2D;QAC3D,wDAAwD;QACxD,kDAAkD;QAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,IAAA,2BAAkB,GAAE,EAAE;YAC1C,IAAA,qBAAe,EAAC;gBACd,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,KAAK,CAAC,OAAO;gBACxB,MAAM,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC;YACF,IAAA,qBAAe,EAAC;gBACd,eAAe,EAAE,CAAC,wBAAS,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5C,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ;aACvB,CAAC;SACH,CAAC,CAAC;QAEH,IAAA,kBAAM,EAAC,CAAC,wBAAW,CAAC,AAAD,EAAG,EAAE;YACtB,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,CACJ,MAAM,kBAAM,CAAC,YAAY,CAAC,0BAAgB,CAAC,sBAAsB,CAAC,CACnE,CAAC,WAAW,EAAE,CAAC;QAEhB,gEAAgE;QAChE,MAAM,
|
|
1
|
+
{"version":3,"file":"CallParticipants.test.js","sourceRoot":"","sources":["../../../__tests__/components/CallParticipants.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/jest-setup.js
CHANGED
|
@@ -25,6 +25,10 @@ const mockedDevices = [
|
|
|
25
25
|
];
|
|
26
26
|
// Mock the notifee module using the mock provided by @notifee/react-native itself
|
|
27
27
|
jest.mock('@notifee/react-native', () => require('@notifee/react-native/jest-mock'));
|
|
28
|
+
jest.mock('react-native-reanimated', () => {
|
|
29
|
+
const RNReanimatedmock = require('react-native-reanimated/mock');
|
|
30
|
+
return { ...RNReanimatedmock, runOnUI: (fn) => fn };
|
|
31
|
+
});
|
|
28
32
|
// When mocking we implement only the needed navigator APIs, hence the suppression rule
|
|
29
33
|
// @ts-ignore
|
|
30
34
|
global.navigator = {
|
package/dist/jest-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest-setup.js","sourceRoot":"","sources":["../jest-setup.ts"],"names":[],"mappings":";;AAAA,8BAA8B;AAC9B,sDAAoD;AAEpD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QACnC;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;SAChB;KACF,CAAC;CACH,CAAC;AACF,MAAM,aAAa,GAAG;IACpB;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;KACtB;CACF,CAAC;AAEF,kFAAkF;AAClF,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CACtC,OAAO,CAAC,iCAAiC,CAAC,CAC3C,CAAC;AAEF,uFAAuF;AACvF,aAAa;AACb,MAAM,CAAC,SAAS,GAAG;IACjB,YAAY,EAAE;QACZ,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;QACtD,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC;KAC7D;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"jest-setup.js","sourceRoot":"","sources":["../jest-setup.ts"],"names":[],"mappings":";;AAAA,8BAA8B;AAC9B,sDAAoD;AAEpD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QACnC;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;SAChB;KACF,CAAC;CACH,CAAC;AACF,MAAM,aAAa,GAAG;IACpB;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;KACtB;CACF,CAAC;AAEF,kFAAkF;AAClF,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CACtC,OAAO,CAAC,iCAAiC,CAAC,CAC3C,CAAC;AAEF,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,MAAM,gBAAgB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjE,OAAO,EAAE,GAAG,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,uFAAuF;AACvF,aAAa;AACb,MAAM,CAAC,SAAS,GAAG;IACjB,YAAY,EAAE;QACZ,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC;QACtD,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC;KAC7D;CACF,CAAC"}
|
|
@@ -31,29 +31,43 @@ const CallControlsButton_1 = require("../utility/internal/CallControlsButton");
|
|
|
31
31
|
const theme_1 = require("../../theme");
|
|
32
32
|
const video_client_1 = require("@stream-io/video-client");
|
|
33
33
|
const video_react_bindings_1 = require("@stream-io/video-react-bindings");
|
|
34
|
-
const ReactionsModal_1 = require("../utility/ReactionsModal");
|
|
35
34
|
const ToggleAudioButton_1 = require("../utility/internal/ToggleAudioButton");
|
|
36
35
|
const ToggleVideoButton_1 = require("../utility/internal/ToggleVideoButton");
|
|
37
36
|
const TestIds_1 = require("../../constants/TestIds");
|
|
38
37
|
const constants_1 = require("../../constants");
|
|
39
38
|
const ToggleCameraFaceButton_1 = require("../utility/internal/ToggleCameraFaceButton");
|
|
40
39
|
const HangupCallButton_1 = require("../utility/internal/HangupCallButton");
|
|
40
|
+
const ReactionsPicker_1 = require("./ReactionsPicker");
|
|
41
|
+
const utils_1 = require("../../utils");
|
|
41
42
|
/**
|
|
42
43
|
* A list/row of controls (mute audio/video, toggle front/back camera, hangup call etc.)
|
|
43
44
|
* the user can trigger within an active call.
|
|
44
45
|
*/
|
|
45
46
|
const CallControls = ({ chatButton, hangUpCallButton, style, }) => {
|
|
46
|
-
const [
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
const [showReactionsPicker, setShowReactionsPicker] = (0, react_1.useState)(false);
|
|
48
|
+
const [reactionsButtonLayoutRectangle, setReactionsButtonLayoutRectangle] = (0, react_1.useState)();
|
|
49
|
+
// This is for the reaction popup
|
|
50
|
+
const onReactionsButtonLayout = (event) => {
|
|
51
|
+
const layout = event.nativeEvent.layout;
|
|
52
|
+
setReactionsButtonLayoutRectangle((prev) => {
|
|
53
|
+
if (prev &&
|
|
54
|
+
prev.width === layout.width &&
|
|
55
|
+
prev.height === layout.height &&
|
|
56
|
+
prev.x === layout.x &&
|
|
57
|
+
prev.y === layout.y) {
|
|
58
|
+
return prev;
|
|
59
|
+
}
|
|
60
|
+
return layout;
|
|
61
|
+
});
|
|
62
|
+
};
|
|
50
63
|
return (<react_native_1.View style={[styles.container, style]}>
|
|
51
64
|
<video_react_bindings_1.Restricted requiredGrants={[video_client_1.OwnCapability.CREATE_REACTION]}>
|
|
52
|
-
<CallControlsButton_1.CallControlsButton testID={TestIds_1.ButtonTestIds.REACTION} onPress={
|
|
65
|
+
<CallControlsButton_1.CallControlsButton testID={TestIds_1.ButtonTestIds.REACTION} onPress={() => {
|
|
66
|
+
setShowReactionsPicker(true);
|
|
67
|
+
}} color={theme_1.theme.light.static_white} style={styles.button} onLayout={onReactionsButtonLayout}>
|
|
53
68
|
<icons_1.Reaction color={theme_1.theme.light.static_black}/>
|
|
54
69
|
</CallControlsButton_1.CallControlsButton>
|
|
55
70
|
</video_react_bindings_1.Restricted>
|
|
56
|
-
<ReactionsModal_1.ReactionModal isReactionModalActive={isReactionModalActive} setIsReactionModalActive={setIsReactionModalActive}/>
|
|
57
71
|
{chatButton && (<react_native_1.View>
|
|
58
72
|
<CallControlsButton_1.CallControlsButton color={theme_1.theme.light.static_white} onPress={chatButton.onPressHandler} svgContainerStyle={styles.svgContainerStyle} style={styles.button}>
|
|
59
73
|
<UnreadBadgeCountIndicator count={chatButton.unreadBadgeCountIndicator}/>
|
|
@@ -64,6 +78,10 @@ const CallControls = ({ chatButton, hangUpCallButton, style, }) => {
|
|
|
64
78
|
<ToggleAudioButton_1.ToggleAudioButton />
|
|
65
79
|
<ToggleCameraFaceButton_1.ToggleCameraFaceButton />
|
|
66
80
|
<HangupCallButton_1.HangUpCallButton onPressHandler={hangUpCallButton?.onPressHandler}/>
|
|
81
|
+
|
|
82
|
+
{showReactionsPicker && (<ReactionsPicker_1.ReactionsPicker reactions={utils_1.StreamVideoRN.getConfig().supportedReactions} reactionsButtonLayoutRectangle={reactionsButtonLayoutRectangle} onRequestedClose={() => {
|
|
83
|
+
setShowReactionsPicker(false);
|
|
84
|
+
}}/>)}
|
|
67
85
|
</react_native_1.View>);
|
|
68
86
|
};
|
|
69
87
|
exports.CallControls = CallControls;
|
|
@@ -82,6 +100,7 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
82
100
|
flexDirection: 'row',
|
|
83
101
|
justifyContent: 'space-between',
|
|
84
102
|
zIndex: constants_1.Z_INDEX.IN_FRONT,
|
|
103
|
+
backgroundColor: theme_1.theme.light.static_black,
|
|
85
104
|
},
|
|
86
105
|
button: {
|
|
87
106
|
// For iOS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallControls.js","sourceRoot":"","sources":["../../../../src/components/call/CallControls.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"CallControls.js","sourceRoot":"","sources":["../../../../src/components/call/CallControls.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAOsB;AACtB,uCAA6C;AAC7C,+EAA4E;AAC5E,uCAAoC;AACpC,0DAAwD;AACxD,0EAA6D;AAC7D,6EAA0E;AAC1E,6EAA0E;AAC1E,qDAA0E;AAC1E,+CAA0C;AAC1C,uFAAoF;AACpF,2EAG8C;AAC9C,uDAAoD;AACpD,uCAA4C;AA+B5C;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,UAAU,EACV,gBAAgB,EAChB,KAAK,GACY,EAAE,EAAE;IACrB,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GACjD,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAE3B,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,GACvE,IAAA,gBAAQ,GAAmB,CAAC;IAE9B,iCAAiC;IACjC,MAAM,uBAAuB,GAAG,CAAC,KAAwB,EAAE,EAAE;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QACxC,iCAAiC,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,IACE,IAAI;gBACJ,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;gBAC3B,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAC7B,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;gBACnB,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EACnB;gBACA,OAAO,IAAI,CAAC;aACb;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACrC;MAAA,CAAC,iCAAU,CAAC,cAAc,CAAC,CAAC,CAAC,4BAAa,CAAC,eAAe,CAAC,CAAC,CAC1D;QAAA,CAAC,uCAAkB,CACjB,MAAM,CAAC,CAAC,uBAAa,CAAC,QAAQ,CAAC,CAC/B,OAAO,CAAC,CAAC,GAAG,EAAE;YACZ,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CACF,KAAK,CAAC,CAAC,aAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAChC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACrB,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAElC;UAAA,CAAC,gBAAQ,CAAC,KAAK,CAAC,CAAC,aAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAC5C;QAAA,EAAE,uCAAkB,CACtB;MAAA,EAAE,iCAAU,CACZ;MAAA,CAAC,UAAU,IAAI,CACb,CAAC,mBAAI,CACH;UAAA,CAAC,uCAAkB,CACjB,KAAK,CAAC,CAAC,aAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAChC,OAAO,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CACnC,iBAAiB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAC5C,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAErB;YAAA,CAAC,yBAAyB,CACxB,KAAK,CAAC,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAE9C;YAAA,CAAC,YAAI,CAAC,KAAK,CAAC,CAAC,aAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EACxC;UAAA,EAAE,uCAAkB,CACtB;QAAA,EAAE,mBAAI,CAAC,CACR,CACD;MAAA,CAAC,qCAAiB,CAAC,AAAD,EAClB;MAAA,CAAC,qCAAiB,CAAC,AAAD,EAClB;MAAA,CAAC,+CAAsB,CAAC,AAAD,EACvB;MAAA,CAAC,mCAAgB,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAEnE;;MAAA,CAAC,mBAAmB,IAAI,CACtB,CAAC,iCAAe,CACd,SAAS,CAAC,CAAC,qBAAa,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,CACxD,8BAA8B,CAAC,CAAC,8BAA8B,CAAC,CAC/D,gBAAgB,CAAC,CAAC,GAAG,EAAE;gBACrB,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,EACF,CACH,CACH;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AA1EW,QAAA,YAAY,gBA0EvB;AAEF,MAAM,yBAAyB,GAAG,CAAC,EACjC,KAAK,GAGN,EAAE,EAAE;IACH,8CAA8C;IAC9C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,mBAAI,CACH,MAAM,CAAC,CAAC,0BAAgB,CAAC,iCAAiC,CAAC,CAC3D,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAExB;MAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAI,CAClD;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,OAAO,EAAE,aAAK,CAAC,OAAO,CAAC,EAAE;QACzB,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,MAAM,EAAE,mBAAO,CAAC,QAAQ;QACxB,eAAe,EAAE,aAAK,CAAC,KAAK,CAAC,YAAY;KAC1C;IACD,MAAM,EAAE;QACN,UAAU;QACV,YAAY,EAAE;YACZ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV;QACD,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAElB,cAAc;QACd,SAAS,EAAE,CAAC;KACb;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,aAAK,CAAC,OAAO,CAAC,EAAE;KAC7B;IACD,SAAS,EAAE;QACT,eAAe,EAAE,aAAK,CAAC,KAAK,CAAC,KAAK;QAClC,YAAY,EAAE,aAAK,CAAC,OAAO,CAAC,EAAE;QAC9B,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,mBAAO,CAAC,QAAQ;QACxB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,QAAQ;KACzB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,aAAK,CAAC,KAAK,CAAC,YAAY;QAC/B,SAAS,EAAE,QAAQ;QACnB,GAAG,aAAK,CAAC,KAAK,CAAC,QAAQ;KACxB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LayoutRectangle } from 'react-native';
|
|
2
|
+
import { StreamVideoConfig } from '../../utils/StreamVideoRN/types';
|
|
3
|
+
interface Props {
|
|
4
|
+
reactions: StreamVideoConfig['supportedReactions'];
|
|
5
|
+
reactionsButtonLayoutRectangle?: LayoutRectangle;
|
|
6
|
+
onRequestedClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const ReactionsPicker: ({ reactions, reactionsButtonLayoutRectangle, onRequestedClose, }: Props) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ReactionsPicker = void 0;
|
|
27
|
+
const react_1 = __importStar(require("react"));
|
|
28
|
+
const react_native_1 = require("react-native");
|
|
29
|
+
const video_react_bindings_1 = require("@stream-io/video-react-bindings");
|
|
30
|
+
const theme_1 = require("../../theme");
|
|
31
|
+
const TestIds_1 = require("../../constants/TestIds");
|
|
32
|
+
const TOP_PADDING = 4;
|
|
33
|
+
const REACTION_MARGIN_BOTTOM = 4;
|
|
34
|
+
const ReactionsPicker = ({ reactions, reactionsButtonLayoutRectangle, onRequestedClose, }) => {
|
|
35
|
+
const call = (0, video_react_bindings_1.useCall)();
|
|
36
|
+
const size = reactionsButtonLayoutRectangle?.width ?? 0;
|
|
37
|
+
const reactionItemSize = size * 0.8;
|
|
38
|
+
const popupHeight =
|
|
39
|
+
// the top padding
|
|
40
|
+
TOP_PADDING +
|
|
41
|
+
// take margins into account
|
|
42
|
+
REACTION_MARGIN_BOTTOM * reactions.length +
|
|
43
|
+
// the size of the reaction icon items (same size as reactions button * amount of reactions)
|
|
44
|
+
reactionItemSize * reactions.length;
|
|
45
|
+
const reactionsPopupStyle = {
|
|
46
|
+
// we should show the popup right above the reactions button and not top of it
|
|
47
|
+
top: (reactionsButtonLayoutRectangle?.y ?? 0) - popupHeight,
|
|
48
|
+
// from the same side horizontal coordinate of the reactions button
|
|
49
|
+
left: reactionsButtonLayoutRectangle?.x,
|
|
50
|
+
// the width of the popup should be the same as the reactions button
|
|
51
|
+
width: size,
|
|
52
|
+
height: popupHeight,
|
|
53
|
+
// the popup should be rounded as the reactions button
|
|
54
|
+
borderTopStartRadius: size / 2,
|
|
55
|
+
borderTopEndRadius: size / 2,
|
|
56
|
+
};
|
|
57
|
+
const elasticAnimRef = (0, react_1.useRef)(new react_native_1.Animated.Value(0.5)); // Initial value for scale: 0.5
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
react_native_1.Animated.timing(elasticAnimRef.current, {
|
|
60
|
+
toValue: 1,
|
|
61
|
+
duration: 800,
|
|
62
|
+
useNativeDriver: true,
|
|
63
|
+
easing: react_native_1.Easing.elastic(3),
|
|
64
|
+
}).start();
|
|
65
|
+
}, []);
|
|
66
|
+
const reactionItemStyle = {
|
|
67
|
+
height: reactionItemSize,
|
|
68
|
+
width: reactionItemSize,
|
|
69
|
+
borderRadius: reactionItemSize / 2,
|
|
70
|
+
};
|
|
71
|
+
const reactionsButtonDimmerStyle = {
|
|
72
|
+
...styles.reactionsButtonDimmer,
|
|
73
|
+
height: size,
|
|
74
|
+
width: size,
|
|
75
|
+
// we should show the popup right on top of the reactions button
|
|
76
|
+
top: reactionsButtonLayoutRectangle?.y ?? 0 - popupHeight + size,
|
|
77
|
+
// from the same side horizontal coordinate of the reactions button
|
|
78
|
+
left: reactionsButtonLayoutRectangle?.x,
|
|
79
|
+
};
|
|
80
|
+
const onClose = (reaction) => {
|
|
81
|
+
if (reaction) {
|
|
82
|
+
call?.sendReaction(reaction).catch((e) => {
|
|
83
|
+
console.error(e, reaction);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
react_native_1.Animated.timing(elasticAnimRef.current, {
|
|
87
|
+
toValue: 0.2,
|
|
88
|
+
duration: 150,
|
|
89
|
+
useNativeDriver: true,
|
|
90
|
+
easing: react_native_1.Easing.linear,
|
|
91
|
+
}).start(onRequestedClose);
|
|
92
|
+
};
|
|
93
|
+
return (<>
|
|
94
|
+
<react_native_1.Pressable testID={TestIds_1.ComponentTestIds.REACTIONS_PICKER} style={[styles.reactionsPopup, reactionsPopupStyle]} onPress={() => {
|
|
95
|
+
onClose();
|
|
96
|
+
}}>
|
|
97
|
+
{/* all the reactions */}
|
|
98
|
+
{reactions.map((reaction) => (<react_native_1.Pressable key={reaction.emoji_code} style={[styles.reactionItem, reactionItemStyle]} onPress={() => {
|
|
99
|
+
onClose({
|
|
100
|
+
type: reaction.type,
|
|
101
|
+
custom: reaction.custom,
|
|
102
|
+
emoji_code: reaction.emoji_code,
|
|
103
|
+
});
|
|
104
|
+
}}>
|
|
105
|
+
<react_native_1.Animated.Text style={[
|
|
106
|
+
styles.reactionText,
|
|
107
|
+
{
|
|
108
|
+
transform: [
|
|
109
|
+
{
|
|
110
|
+
scaleY: elasticAnimRef.current,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
scaleX: elasticAnimRef.current,
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
]}>
|
|
118
|
+
{reaction.icon}
|
|
119
|
+
</react_native_1.Animated.Text>
|
|
120
|
+
</react_native_1.Pressable>))}
|
|
121
|
+
</react_native_1.Pressable>
|
|
122
|
+
{/* a square view with 50% opacity that semi hides the reactions button */}
|
|
123
|
+
<react_native_1.Pressable style={reactionsButtonDimmerStyle} onPress={() => onClose()}/>
|
|
124
|
+
</>);
|
|
125
|
+
};
|
|
126
|
+
exports.ReactionsPicker = ReactionsPicker;
|
|
127
|
+
const styles = react_native_1.StyleSheet.create({
|
|
128
|
+
reactionsPopup: {
|
|
129
|
+
position: 'absolute',
|
|
130
|
+
alignItems: 'center',
|
|
131
|
+
backgroundColor: theme_1.theme.light.static_black,
|
|
132
|
+
paddingTop: TOP_PADDING,
|
|
133
|
+
},
|
|
134
|
+
reactionsButtonDimmer: {
|
|
135
|
+
position: 'absolute',
|
|
136
|
+
backgroundColor: theme_1.theme.light.static_black,
|
|
137
|
+
opacity: 0.5,
|
|
138
|
+
},
|
|
139
|
+
reactionItem: {
|
|
140
|
+
alignItems: 'center',
|
|
141
|
+
justifyContent: 'center',
|
|
142
|
+
marginBottom: REACTION_MARGIN_BOTTOM,
|
|
143
|
+
// temporary background color until we have theming
|
|
144
|
+
backgroundColor: theme_1.theme.light.static_grey,
|
|
145
|
+
},
|
|
146
|
+
reactionText: {
|
|
147
|
+
fontSize: 18.5,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=ReactionsPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactionsPicker.js","sourceRoot":"","sources":["../../../../src/components/call/ReactionsPicker.tsx"],"names":[],"mappings":"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"}
|
package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.js
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const react_1 = __importStar(require("react"));
|
|
27
|
+
const react_native_1 = require("react-native");
|
|
28
|
+
const common_1 = require("./common");
|
|
29
|
+
const AnimatedFloatingView = ({ initialAlignment, containerWidth, containerHeight, children, }) => {
|
|
30
|
+
// the translate is calculated using distance of dragging (dx, dy)
|
|
31
|
+
// computed value = value + offset
|
|
32
|
+
// Start of a DRAG state: value is (0,0) and offset is the last (translateX, translateY)
|
|
33
|
+
// DRAGGING state: value is always current (dx, dy) and offset is last (translateX, translateY)
|
|
34
|
+
const translateRef = (0, react_1.useRef)(new react_native_1.Animated.ValueXY());
|
|
35
|
+
const opacity = (0, react_1.useRef)(new react_native_1.Animated.Value(0));
|
|
36
|
+
const [rectangle, setRectangle] = react_1.default.useState();
|
|
37
|
+
// we need to force update the component when the rectangle is available
|
|
38
|
+
// we cannot just rely on the rectangle because it is not available on the first render
|
|
39
|
+
// and we need snapAlignments to be in a Ref so that it can be used in the panResponder's creation Ref
|
|
40
|
+
const [_, forceUpdate] = (0, react_1.useReducer)((x) => x + 1, 0);
|
|
41
|
+
// the offsets for the translate bounds of the floating view
|
|
42
|
+
// stored in ref, because it is used in the panResponder (which has to be a ref)
|
|
43
|
+
const snapAlignmentsRef = (0, react_1.useRef)({
|
|
44
|
+
[common_1.FloatingViewAlignment.topLeft]: { x: 0, y: 0 },
|
|
45
|
+
[common_1.FloatingViewAlignment.topRight]: { x: 0, y: 0 },
|
|
46
|
+
[common_1.FloatingViewAlignment.bottomLeft]: { x: 0, y: 0 },
|
|
47
|
+
[common_1.FloatingViewAlignment.bottomRight]: { x: 0, y: 0 },
|
|
48
|
+
});
|
|
49
|
+
(0, react_1.useEffect)(() => {
|
|
50
|
+
if (!rectangle) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const snapAlignments = (0, common_1.getSnapAlignments)({
|
|
54
|
+
rootContainerDimensions: {
|
|
55
|
+
width: containerWidth,
|
|
56
|
+
height: containerHeight,
|
|
57
|
+
},
|
|
58
|
+
floatingViewDimensions: {
|
|
59
|
+
width: rectangle.width,
|
|
60
|
+
height: rectangle.height,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const { x, y } = snapAlignments[initialAlignment];
|
|
64
|
+
snapAlignmentsRef.current = snapAlignments;
|
|
65
|
+
translateRef.current.setOffset({ x, y });
|
|
66
|
+
translateRef.current.setValue({ x: 0, y: 0 });
|
|
67
|
+
opacity.current.setValue(1);
|
|
68
|
+
forceUpdate();
|
|
69
|
+
// any time the dependency changes, we need to snap to the new alignment
|
|
70
|
+
}, [initialAlignment, rectangle, containerWidth, containerHeight]);
|
|
71
|
+
const panResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({
|
|
72
|
+
onStartShouldSetPanResponder: () => true,
|
|
73
|
+
onMoveShouldSetPanResponder: () => true,
|
|
74
|
+
// while doing move, the value will be set to distance and offset is the current position
|
|
75
|
+
// example if we 100 to the left
|
|
76
|
+
// value is x:-100 y:0, offset is the previous position
|
|
77
|
+
onPanResponderMove: react_native_1.Animated.event([
|
|
78
|
+
null,
|
|
79
|
+
{
|
|
80
|
+
// dx, dy are the accumulated distance of the gesture since the touch started
|
|
81
|
+
dx: translateRef.current.x,
|
|
82
|
+
dy: translateRef.current.y,
|
|
83
|
+
},
|
|
84
|
+
], {
|
|
85
|
+
useNativeDriver: false, // pan responder move event doesn't support nativeDriver
|
|
86
|
+
}),
|
|
87
|
+
onPanResponderGrant: () => {
|
|
88
|
+
// start of a drag value is always (0,0) and offset is the last (translateX, translateY)
|
|
89
|
+
translateRef.current.extractOffset();
|
|
90
|
+
},
|
|
91
|
+
onPanResponderRelease: () => {
|
|
92
|
+
// make offset to 0 and value is set to the current position (so that we can do the timing animation later)
|
|
93
|
+
translateRef.current.flattenOffset();
|
|
94
|
+
// @ts-expect-error panResponder doesn't support nativeDriver so we can use __getValue() safely
|
|
95
|
+
const currentPosition = translateRef.current.__getValue();
|
|
96
|
+
const closestAlignment = (0, common_1.getClosestSnapAlignment)({
|
|
97
|
+
position: currentPosition,
|
|
98
|
+
snapAlignments: snapAlignmentsRef.current,
|
|
99
|
+
});
|
|
100
|
+
react_native_1.Animated.timing(translateRef.current, {
|
|
101
|
+
toValue: closestAlignment,
|
|
102
|
+
duration: 300,
|
|
103
|
+
useNativeDriver: true,
|
|
104
|
+
easing: react_native_1.Easing.inOut(react_native_1.Easing.quad),
|
|
105
|
+
}).start();
|
|
106
|
+
},
|
|
107
|
+
})).current;
|
|
108
|
+
(0, react_1.useEffect)(() => {
|
|
109
|
+
console.info('react-native-reanimated and/or react-native-gesture-handler libraries are not installed. Please install them to get a more performant draggable local video component');
|
|
110
|
+
}, []);
|
|
111
|
+
const containerStyle = {
|
|
112
|
+
...styles.animContainer,
|
|
113
|
+
height: rectangle?.height,
|
|
114
|
+
width: rectangle?.width,
|
|
115
|
+
// do not show anything in the UI until we have the rectangle (onLayout)
|
|
116
|
+
opacity: opacity.current,
|
|
117
|
+
// we use interpolation to keep the value in the bounds of the necessary FloatingViewAlignment
|
|
118
|
+
transform: [
|
|
119
|
+
{
|
|
120
|
+
translateX: translateRef.current.x.interpolate({
|
|
121
|
+
inputRange: [
|
|
122
|
+
0,
|
|
123
|
+
snapAlignmentsRef.current[common_1.FloatingViewAlignment.topRight].x,
|
|
124
|
+
],
|
|
125
|
+
outputRange: [
|
|
126
|
+
0,
|
|
127
|
+
snapAlignmentsRef.current[common_1.FloatingViewAlignment.topRight].x,
|
|
128
|
+
],
|
|
129
|
+
extrapolate: 'clamp',
|
|
130
|
+
}),
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
translateY: translateRef.current.y.interpolate({
|
|
134
|
+
inputRange: [
|
|
135
|
+
0,
|
|
136
|
+
snapAlignmentsRef.current[common_1.FloatingViewAlignment.bottomRight].y,
|
|
137
|
+
],
|
|
138
|
+
outputRange: [
|
|
139
|
+
0,
|
|
140
|
+
snapAlignmentsRef.current[common_1.FloatingViewAlignment.bottomRight].y,
|
|
141
|
+
],
|
|
142
|
+
extrapolate: 'clamp',
|
|
143
|
+
}),
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
};
|
|
147
|
+
return (<react_native_1.Animated.View style={containerStyle} {...panResponder.panHandlers}>
|
|
148
|
+
<react_native_1.View onLayout={(event) => {
|
|
149
|
+
const layout = event.nativeEvent.layout;
|
|
150
|
+
setRectangle((prev) => {
|
|
151
|
+
if (prev &&
|
|
152
|
+
prev.width === layout.width &&
|
|
153
|
+
prev.height === layout.height &&
|
|
154
|
+
prev.x === layout.x &&
|
|
155
|
+
prev.y === layout.y) {
|
|
156
|
+
return prev;
|
|
157
|
+
}
|
|
158
|
+
return layout;
|
|
159
|
+
});
|
|
160
|
+
}} style={common_1.floatingChildViewContainerStyle}>
|
|
161
|
+
{children}
|
|
162
|
+
</react_native_1.View>
|
|
163
|
+
</react_native_1.Animated.View>);
|
|
164
|
+
};
|
|
165
|
+
const styles = react_native_1.StyleSheet.create({
|
|
166
|
+
animContainer: {
|
|
167
|
+
position: 'absolute',
|
|
168
|
+
top: 0,
|
|
169
|
+
left: 0,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
exports.default = AnimatedFloatingView;
|
|
173
|
+
//# sourceMappingURL=AnimatedFloatingView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimatedFloatingView.js","sourceRoot":"","sources":["../../../../../../src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.tsx"],"names":[],"mappings":"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"}
|