@stream-io/video-react-native-sdk 0.0.1-alpha.358 → 0.0.1-alpha.360
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 +13 -0
- 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/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/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 +13 -3
- 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/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/participants/{LocalParticipantView.d.ts → LocalParticipantView/index.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [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)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **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))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [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)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
5
18
|
## [0.0.1-alpha.358](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.0.1-alpha.357...@stream-io/video-react-native-sdk-0.0.1-alpha.358) (2023-08-08)
|
|
6
19
|
|
|
7
20
|
|
|
@@ -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":";;;;;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,YAAY,GAAG,IAAA,kBAAM,EACzB,kBAAM,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC;QAEF,6CAA6C;QAC7C,MAAM,CACJ,MAAM,kBAAM,CAAC,YAAY,CAAC,0BAAgB,CAAC,iBAAiB,CAAC,CAC9D,CAAC,WAAW,EAAE,CAAC;QAEhB,MAAM,CACJ,YAAY,CAAC,WAAW,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACpE,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAE5C,2FAA2F;QAC3F,MAAM,CACJ,kBAAM,CAAC,gBAAgB,CAAC,0BAAgB,CAAC,sBAAsB,CAAC,CACjE,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,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;oBACf,wBAAS,CAAC,SAAS,CAAC,KAAK;oBACzB,wBAAS,CAAC,SAAS,CAAC,KAAK;oBACzB,wBAAS,CAAC,SAAS,CAAC,YAAY;iBACjC;gBACD,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ;gBACtB,iBAAiB,EAAE;oBACjB,KAAK,EAAE,GAAG,EAAE,CAAC,kBAAkB;iBAChC;aACF,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,2BAA2B,CAAC,CACxE,CAAC,WAAW,EAAE,CAAC;QAEhB,4GAA4G;QAC5G,MAAM,CACJ,MAAM,kBAAM,CAAC,YAAY,CAAC,0BAAgB,CAAC,sBAAsB,CAAC,CACnE,CAAC,WAAW,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gJAAgJ,EAAE,KAAK,IAAI,EAAE;QAC9J,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,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ;aACvB,CAAC;YACF,IAAA,qBAAe,EAAC;gBACd,eAAe,EAAE,CAAC,wBAAS,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5C,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ;aACvB,CAAC;YACF,IAAA,qBAAe,EAAC;gBACd,eAAe,EAAE,CAAC,wBAAS,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5C,WAAW,EAAE,IAAI;gBACjB,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,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnE,GAAG,EAAE,CAAC,CAAC,SAAS;YAChB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC,CAAC;QAEJ,MAAM,8BAA8B,CAAC,wBAAwB,CAAC,CAAC;QAE/D,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,IAAA,kBAAM,EAC7B,kBAAM,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CACnD,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAM,EACzB,kBAAM,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAM,EACzB,kBAAM,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,kBAAM,EACzB,kBAAM,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC;QAEF,kGAAkG;QAClG,MAAM,CACJ,gBAAgB,CAAC,WAAW,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACxE,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CACJ,YAAY,CAAC,WAAW,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACpE,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CACJ,YAAY,CAAC,WAAW,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACpE,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CACJ,YAAY,CAAC,WAAW,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACpE,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5C,mDAAmD;QACnD,MAAM,CACJ,kBAAM,CAAC,cAAc,CAAC,0BAAgB,CAAC,wBAAwB,CAAC,CACjE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
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"}
|
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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"}
|
package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
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 react_native_gesture_handler_1 = require("react-native-gesture-handler");
|
|
30
|
+
const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
|
|
31
|
+
const ReanimatedFloatingView = ({ initialAlignment, containerHeight, containerWidth, children, }) => {
|
|
32
|
+
// to store the starting position of the gesture
|
|
33
|
+
const startRef = (0, react_1.useRef)({ x: 0, y: 0 });
|
|
34
|
+
// to store the necessary translate x, y position
|
|
35
|
+
const translationX = (0, react_native_reanimated_1.useSharedValue)(0);
|
|
36
|
+
const translationY = (0, react_native_reanimated_1.useSharedValue)(0);
|
|
37
|
+
// we don't want to show the floating view until we have the layout rectangle
|
|
38
|
+
const opacity = (0, react_native_reanimated_1.useSharedValue)(0);
|
|
39
|
+
const [rectangle, setRectangle] = react_1.default.useState();
|
|
40
|
+
const snapAlignments = (0, react_1.useMemo)(() => {
|
|
41
|
+
if (!rectangle) {
|
|
42
|
+
return {
|
|
43
|
+
[common_1.FloatingViewAlignment.topLeft]: { x: 0, y: 0 },
|
|
44
|
+
[common_1.FloatingViewAlignment.topRight]: { x: 0, y: 0 },
|
|
45
|
+
[common_1.FloatingViewAlignment.bottomLeft]: { x: 0, y: 0 },
|
|
46
|
+
[common_1.FloatingViewAlignment.bottomRight]: { x: 0, y: 0 },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return (0, common_1.getSnapAlignments)({
|
|
50
|
+
rootContainerDimensions: {
|
|
51
|
+
width: containerWidth,
|
|
52
|
+
height: containerHeight,
|
|
53
|
+
},
|
|
54
|
+
floatingViewDimensions: {
|
|
55
|
+
width: rectangle.width,
|
|
56
|
+
height: rectangle.height,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}, [rectangle, containerWidth, containerHeight]);
|
|
60
|
+
const dragGesture = (0, react_1.useMemo)(() => react_native_gesture_handler_1.Gesture.Pan()
|
|
61
|
+
.onStart((_e) => {
|
|
62
|
+
// store the starting position of the gesture
|
|
63
|
+
startRef.current = {
|
|
64
|
+
x: translationX.value,
|
|
65
|
+
y: translationY.value,
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
.onUpdate((e) => {
|
|
69
|
+
// update the translation with the distance of the gesture + starting position
|
|
70
|
+
translationX.value = Math.max(0, Math.min(e.translationX + startRef.current.x, snapAlignments[common_1.FloatingViewAlignment.bottomRight].x));
|
|
71
|
+
translationY.value = Math.max(0, Math.min(e.translationY + startRef.current.y, snapAlignments[common_1.FloatingViewAlignment.bottomRight].y));
|
|
72
|
+
})
|
|
73
|
+
.onEnd(() => {
|
|
74
|
+
// snap to the closest alignment with a spring animation
|
|
75
|
+
const position = {
|
|
76
|
+
x: translationX.value,
|
|
77
|
+
y: translationY.value,
|
|
78
|
+
};
|
|
79
|
+
const closestAlignment = (0, common_1.getClosestSnapAlignment)({
|
|
80
|
+
position,
|
|
81
|
+
snapAlignments,
|
|
82
|
+
});
|
|
83
|
+
translationX.value = (0, react_native_reanimated_1.withTiming)(closestAlignment.x);
|
|
84
|
+
translationY.value = (0, react_native_reanimated_1.withTiming)(closestAlignment.y);
|
|
85
|
+
}), [snapAlignments, translationX, translationY]);
|
|
86
|
+
(0, react_1.useEffect)(() => {
|
|
87
|
+
if (!rectangle) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const alignment = snapAlignments[initialAlignment];
|
|
91
|
+
startRef.current = alignment;
|
|
92
|
+
translationX.value = alignment.x;
|
|
93
|
+
translationY.value = alignment.y;
|
|
94
|
+
// add a small delay to the opacity animation to avoid
|
|
95
|
+
// the floating view to be visible when it is being moved
|
|
96
|
+
opacity.value = (0, react_native_reanimated_1.withDelay)(500, (0, react_native_reanimated_1.withTiming)(1, { duration: 50 }));
|
|
97
|
+
}, [
|
|
98
|
+
rectangle,
|
|
99
|
+
snapAlignments,
|
|
100
|
+
initialAlignment,
|
|
101
|
+
opacity,
|
|
102
|
+
translationX,
|
|
103
|
+
translationY,
|
|
104
|
+
]);
|
|
105
|
+
const animatedStyle = (0, react_native_reanimated_1.useAnimatedStyle)(() => {
|
|
106
|
+
return {
|
|
107
|
+
height: rectangle?.height,
|
|
108
|
+
width: rectangle?.width,
|
|
109
|
+
opacity: opacity.value,
|
|
110
|
+
// to keep the value in the bounds we use min and max
|
|
111
|
+
transform: [
|
|
112
|
+
{
|
|
113
|
+
translateX: translationX.value,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
translateY: translationY.value,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
return (
|
|
122
|
+
// gesture handler root view must absolutely fill the bounds
|
|
123
|
+
// to intercept gestures within those bounds
|
|
124
|
+
<react_native_gesture_handler_1.GestureDetector gesture={dragGesture}>
|
|
125
|
+
<react_native_reanimated_1.default.View style={animatedStyle}>
|
|
126
|
+
<react_native_1.View onLayout={(event) => {
|
|
127
|
+
const layout = event.nativeEvent.layout;
|
|
128
|
+
setRectangle((prev) => {
|
|
129
|
+
if (prev &&
|
|
130
|
+
prev.width === layout.width &&
|
|
131
|
+
prev.height === layout.height &&
|
|
132
|
+
prev.x === layout.x &&
|
|
133
|
+
prev.y === layout.y) {
|
|
134
|
+
return prev;
|
|
135
|
+
}
|
|
136
|
+
return layout;
|
|
137
|
+
});
|
|
138
|
+
}} style={common_1.floatingChildViewContainerStyle}>
|
|
139
|
+
{children}
|
|
140
|
+
</react_native_1.View>
|
|
141
|
+
</react_native_reanimated_1.default.View>
|
|
142
|
+
</react_native_gesture_handler_1.GestureDetector>);
|
|
143
|
+
};
|
|
144
|
+
exports.default = ReanimatedFloatingView;
|
|
145
|
+
//# sourceMappingURL=ReanimatedFloatingView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReanimatedFloatingView.js","sourceRoot":"","sources":["../../../../../../src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export declare const enum FloatingViewAlignment {
|
|
4
|
+
topLeft = 0,
|
|
5
|
+
topRight = 1,
|
|
6
|
+
bottomLeft = 2,
|
|
7
|
+
bottomRight = 3
|
|
8
|
+
}
|
|
9
|
+
export type SnapAlignments = Record<FloatingViewAlignment, {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function getSnapAlignments({ rootContainerDimensions, floatingViewDimensions, }: {
|
|
14
|
+
rootContainerDimensions: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
floatingViewDimensions: {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
}): SnapAlignments;
|
|
23
|
+
export declare function getClosestSnapAlignment({ position, snapAlignments, }: {
|
|
24
|
+
position: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
28
|
+
snapAlignments: SnapAlignments;
|
|
29
|
+
}): {
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
};
|
|
33
|
+
export type FloatingViewProps = React.PropsWithChildren<{
|
|
34
|
+
initialAlignment: FloatingViewAlignment;
|
|
35
|
+
containerWidth: number;
|
|
36
|
+
containerHeight: number;
|
|
37
|
+
}>;
|
|
38
|
+
export declare const floatingChildViewContainerStyle: StyleProp<ViewStyle>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.floatingChildViewContainerStyle = exports.getClosestSnapAlignment = exports.getSnapAlignments = exports.FloatingViewAlignment = void 0;
|
|
4
|
+
var FloatingViewAlignment;
|
|
5
|
+
(function (FloatingViewAlignment) {
|
|
6
|
+
// Aligns the floating view to the top left corner.
|
|
7
|
+
FloatingViewAlignment[FloatingViewAlignment["topLeft"] = 0] = "topLeft";
|
|
8
|
+
// Aligns the floating view to the top right corner.
|
|
9
|
+
FloatingViewAlignment[FloatingViewAlignment["topRight"] = 1] = "topRight";
|
|
10
|
+
// Aligns the floating view to the bottom left corner.
|
|
11
|
+
FloatingViewAlignment[FloatingViewAlignment["bottomLeft"] = 2] = "bottomLeft";
|
|
12
|
+
// Aligns the floating view to the bottom right corner.
|
|
13
|
+
FloatingViewAlignment[FloatingViewAlignment["bottomRight"] = 3] = "bottomRight";
|
|
14
|
+
})(FloatingViewAlignment = exports.FloatingViewAlignment || (exports.FloatingViewAlignment = {}));
|
|
15
|
+
// find the bounds for the floating view
|
|
16
|
+
function getSnapAlignments({ rootContainerDimensions, floatingViewDimensions, }) {
|
|
17
|
+
const right = rootContainerDimensions.width - floatingViewDimensions.width;
|
|
18
|
+
const bottom = rootContainerDimensions.height - floatingViewDimensions.height;
|
|
19
|
+
const snapOffsets = {
|
|
20
|
+
[FloatingViewAlignment.topLeft]: {
|
|
21
|
+
x: 0,
|
|
22
|
+
y: 0,
|
|
23
|
+
},
|
|
24
|
+
[FloatingViewAlignment.topRight]: {
|
|
25
|
+
x: right,
|
|
26
|
+
y: 0,
|
|
27
|
+
},
|
|
28
|
+
[FloatingViewAlignment.bottomLeft]: {
|
|
29
|
+
x: 0,
|
|
30
|
+
y: bottom,
|
|
31
|
+
},
|
|
32
|
+
[FloatingViewAlignment.bottomRight]: {
|
|
33
|
+
x: right,
|
|
34
|
+
y: bottom,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
return snapOffsets;
|
|
38
|
+
}
|
|
39
|
+
exports.getSnapAlignments = getSnapAlignments;
|
|
40
|
+
// which is the closest snap alignment to the current position?
|
|
41
|
+
// this is done by finding the closest snap offset by computing which point is
|
|
42
|
+
// in the minimum distance between the current position and all the 4 snap offset bounds
|
|
43
|
+
function getClosestSnapAlignment({ position, snapAlignments, }) {
|
|
44
|
+
'worklet';
|
|
45
|
+
let minDistanceSquared = Number.MAX_VALUE;
|
|
46
|
+
let closestSnapAlignmentKey = FloatingViewAlignment.topRight;
|
|
47
|
+
for (const key in snapAlignments) {
|
|
48
|
+
// NOTE: key is a string always but we know that it is a FloatingViewAlignment, so we have to cast it unfortunately
|
|
49
|
+
const currentAlignmentKey = key;
|
|
50
|
+
const offset = snapAlignments[currentAlignmentKey];
|
|
51
|
+
const currDistanceSquared = (offset.x - position.x) * (offset.x - position.x) +
|
|
52
|
+
(offset.y - position.y) * (offset.y - position.y);
|
|
53
|
+
if (currDistanceSquared < minDistanceSquared) {
|
|
54
|
+
minDistanceSquared = currDistanceSquared;
|
|
55
|
+
closestSnapAlignmentKey = currentAlignmentKey;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return snapAlignments[closestSnapAlignmentKey];
|
|
59
|
+
}
|
|
60
|
+
exports.getClosestSnapAlignment = getClosestSnapAlignment;
|
|
61
|
+
exports.floatingChildViewContainerStyle = {
|
|
62
|
+
alignSelf: 'flex-start',
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../../src/components/participants/LocalParticipantView/FloatingView/common.ts"],"names":[],"mappings":";;;AAEA,IAAkB,qBAYjB;AAZD,WAAkB,qBAAqB;IACrC,mDAAmD;IACnD,uEAAO,CAAA;IAEP,oDAAoD;IACpD,yEAAQ,CAAA;IAER,sDAAsD;IACtD,6EAAU,CAAA;IAEV,uDAAuD;IACvD,+EAAW,CAAA;AACb,CAAC,EAZiB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAYtC;AAOD,wCAAwC;AACxC,SAAgB,iBAAiB,CAAC,EAChC,uBAAuB,EACvB,sBAAsB,GAIvB;IACC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC;IAC3E,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG;QAClB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;YAChC,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,CAAC;SACL;QACD,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;YAClC,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,MAAM;SACV;QACD,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE;YACnC,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,MAAM;SACV;KACF,CAAC;IACF,OAAO,WAAW,CAAC;AACrB,CAAC;AA5BD,8CA4BC;AAED,+DAA+D;AAC/D,8EAA8E;AAC9E,wFAAwF;AACxF,SAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,cAAc,GAIf;IACC,SAAS,CAAC;IACV,IAAI,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC;IAC1C,IAAI,uBAAuB,GACzB,qBAAqB,CAAC,QAAQ,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;QAChC,mHAAmH;QACnH,MAAM,mBAAmB,GAAG,GAAuC,CAAC;QACpE,MAAM,MAAM,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACnD,MAAM,mBAAmB,GACvB,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YACjD,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,mBAAmB,GAAG,kBAAkB,EAAE;YAC5C,kBAAkB,GAAG,mBAAmB,CAAC;YACzC,uBAAuB,GAAG,mBAAmB,CAAC;SAC/C;KACF;IACD,OAAO,cAAc,CAAC,uBAAuB,CAAC,CAAC;AACjD,CAAC;AAxBD,0DAwBC;AAQY,QAAA,+BAA+B,GAAyB;IACnE,SAAS,EAAE,YAAY;CACxB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const optionalLibs_1 = require("../../../../utils/internal/optionalLibs");
|
|
4
|
+
const FloatingView = (0, optionalLibs_1.getReanimatedLib)() && (0, optionalLibs_1.getGestureHandlerLib)()
|
|
5
|
+
? require('./ReanimatedFloatingView').default
|
|
6
|
+
: require('./AnimatedFloatingView').default;
|
|
7
|
+
exports.default = FloatingView;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/participants/LocalParticipantView/FloatingView/index.ts"],"names":[],"mappings":";;AAAA,0EAGiD;AAGjD,MAAM,YAAY,GAChB,IAAA,+BAAgB,GAAE,IAAI,IAAA,mCAAoB,GAAE;IAC1C,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO;IAC7C,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;AAEhD,kBAAe,YAAY,CAAC"}
|