@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/__tests__/components/CallParticipants.test.js +2 -2
  3. package/dist/__tests__/components/CallParticipants.test.js.map +1 -1
  4. package/dist/jest-setup.js +4 -0
  5. package/dist/jest-setup.js.map +1 -1
  6. package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.d.ts +3 -0
  7. package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.js +173 -0
  8. package/dist/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.js.map +1 -0
  9. package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.d.ts +3 -0
  10. package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.js +145 -0
  11. package/dist/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.js.map +1 -0
  12. package/dist/src/components/participants/LocalParticipantView/FloatingView/common.d.ts +38 -0
  13. package/dist/src/components/participants/LocalParticipantView/FloatingView/common.js +64 -0
  14. package/dist/src/components/participants/LocalParticipantView/FloatingView/common.js.map +1 -0
  15. package/dist/src/components/participants/LocalParticipantView/FloatingView/index.d.ts +4 -0
  16. package/dist/src/components/participants/LocalParticipantView/FloatingView/index.js +8 -0
  17. package/dist/src/components/participants/LocalParticipantView/FloatingView/index.js.map +1 -0
  18. package/dist/src/components/participants/LocalParticipantView/index.js +125 -0
  19. package/dist/src/components/participants/LocalParticipantView/index.js.map +1 -0
  20. package/dist/src/components/participants/Participant.js +3 -1
  21. package/dist/src/components/participants/Participant.js.map +1 -1
  22. package/dist/src/utils/internal/optionalLibs.d.ts +5 -0
  23. package/dist/src/utils/internal/optionalLibs.js +28 -0
  24. package/dist/src/utils/internal/optionalLibs.js.map +1 -0
  25. package/dist/src/utils/push/ios.js +0 -1
  26. package/dist/src/utils/push/ios.js.map +1 -1
  27. package/dist/version.d.ts +1 -1
  28. package/dist/version.js +1 -1
  29. package/package.json +13 -3
  30. package/src/components/participants/LocalParticipantView/FloatingView/AnimatedFloatingView.tsx +193 -0
  31. package/src/components/participants/LocalParticipantView/FloatingView/ReanimatedFloatingView.tsx +168 -0
  32. package/src/components/participants/LocalParticipantView/FloatingView/common.ts +90 -0
  33. package/src/components/participants/LocalParticipantView/FloatingView/index.ts +12 -0
  34. package/src/components/participants/{LocalParticipantView.tsx → LocalParticipantView/index.tsx} +81 -71
  35. package/src/components/participants/Participant.tsx +1 -0
  36. package/src/utils/internal/optionalLibs.ts +27 -0
  37. package/src/utils/push/ios.ts +0 -1
  38. package/dist/src/components/participants/LocalParticipantView.js +0 -134
  39. package/dist/src/components/participants/LocalParticipantView.js.map +0 -1
  40. /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
- expect(localParticipant.getByTestId(TestIds_1.ComponentTestIds.PARTICIPANT_MEDIA_STREAM)).toHaveProp('streamURL', 'video-test-url');
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":"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"}
1
+ {"version":3,"file":"CallParticipants.test.js","sourceRoot":"","sources":["../../../__tests__/components/CallParticipants.test.tsx"],"names":[],"mappings":"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"}
@@ -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 = {
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import { FloatingViewProps } from './common';
2
+ declare const AnimatedFloatingView: ({ initialAlignment, containerWidth, containerHeight, children, }: FloatingViewProps) => JSX.Element;
3
+ export default AnimatedFloatingView;
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ import { FloatingViewProps } from './common';
2
+ declare const ReanimatedFloatingView: ({ initialAlignment, containerHeight, containerWidth, children, }: FloatingViewProps) => JSX.Element;
3
+ export default ReanimatedFloatingView;
@@ -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,4 @@
1
+ /// <reference types="react" />
2
+ import { FloatingViewProps } from './common';
3
+ declare const FloatingView: React.FC<FloatingViewProps>;
4
+ export default FloatingView;
@@ -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"}