@legendapp/list 3.0.0-beta.32 → 3.0.0-beta.34

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 (54) hide show
  1. package/README.md +7 -1
  2. package/animated.d.ts +605 -6
  3. package/animated.js +2 -2
  4. package/animated.mjs +1 -1
  5. package/index.d.ts +503 -118
  6. package/index.js +607 -275
  7. package/index.mjs +607 -275
  8. package/index.native.js +348 -189
  9. package/index.native.mjs +347 -188
  10. package/keyboard-controller.d.ts +616 -6
  11. package/keyboard-controller.js +2 -2
  12. package/keyboard-controller.mjs +1 -1
  13. package/keyboard.d.ts +204 -8
  14. package/keyboard.js +68 -53
  15. package/keyboard.mjs +71 -55
  16. package/{index.d.mts → list-react-native.d.ts} +138 -42
  17. package/list-react-native.js +4348 -0
  18. package/list-react-native.mjs +4318 -0
  19. package/{index.native.d.mts → list-react.d.ts} +195 -42
  20. package/list-react.js +4709 -0
  21. package/list-react.mjs +4679 -0
  22. package/package.json +52 -1
  23. package/reanimated.d.ts +605 -7
  24. package/reanimated.js +180 -12
  25. package/reanimated.mjs +177 -9
  26. package/section-list.d.ts +615 -14
  27. package/section-list.js +6 -6
  28. package/section-list.mjs +1 -1
  29. package/animated.d.mts +0 -9
  30. package/animated.native.d.mts +0 -9
  31. package/animated.native.d.ts +0 -9
  32. package/animated.native.js +0 -9
  33. package/animated.native.mjs +0 -7
  34. package/index.native.d.ts +0 -817
  35. package/keyboard-controller.d.mts +0 -12
  36. package/keyboard-controller.native.d.mts +0 -12
  37. package/keyboard-controller.native.d.ts +0 -12
  38. package/keyboard-controller.native.js +0 -69
  39. package/keyboard-controller.native.mjs +0 -48
  40. package/keyboard.d.mts +0 -13
  41. package/keyboard.native.d.mts +0 -13
  42. package/keyboard.native.d.ts +0 -13
  43. package/keyboard.native.js +0 -399
  44. package/keyboard.native.mjs +0 -377
  45. package/reanimated.d.mts +0 -18
  46. package/reanimated.native.d.mts +0 -18
  47. package/reanimated.native.d.ts +0 -18
  48. package/reanimated.native.js +0 -89
  49. package/reanimated.native.mjs +0 -65
  50. package/section-list.d.mts +0 -112
  51. package/section-list.native.d.mts +0 -112
  52. package/section-list.native.d.ts +0 -112
  53. package/section-list.native.js +0 -293
  54. package/section-list.native.mjs +0 -271
package/reanimated.js CHANGED
@@ -1,8 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
3
+ var React3 = require('react');
4
+ var reactNative = require('react-native');
4
5
  var Reanimated = require('react-native-reanimated');
5
- var list = require('@legendapp/list');
6
+ var reactNative$1 = require('@legendapp/list/react-native');
7
+ var shim = require('use-sync-external-store/shim');
6
8
 
7
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
10
 
@@ -24,11 +26,72 @@ function _interopNamespace(e) {
24
26
  return Object.freeze(n);
25
27
  }
26
28
 
27
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
28
30
  var Reanimated__default = /*#__PURE__*/_interopDefault(Reanimated);
29
31
 
30
32
  // src/integrations/reanimated.tsx
31
33
 
34
+ // src/constants.ts
35
+ var POSITION_OUT_OF_VIEW = -1e7;
36
+
37
+ // src/constants-platform.native.ts
38
+ var f = global.nativeFabricUIManager;
39
+ var IsNewArchitecture = f !== void 0 && f != null;
40
+ var ContextState = React3__namespace.createContext(null);
41
+ function createSelectorFunctionsArr(ctx, signalNames) {
42
+ let lastValues = [];
43
+ let lastSignalValues = [];
44
+ return {
45
+ get: () => {
46
+ const currentValues = [];
47
+ let hasChanged = false;
48
+ for (let i = 0; i < signalNames.length; i++) {
49
+ const value = peek$(ctx, signalNames[i]);
50
+ currentValues.push(value);
51
+ if (value !== lastSignalValues[i]) {
52
+ hasChanged = true;
53
+ }
54
+ }
55
+ lastSignalValues = currentValues;
56
+ if (hasChanged) {
57
+ lastValues = currentValues;
58
+ }
59
+ return lastValues;
60
+ },
61
+ subscribe: (cb) => {
62
+ const listeners = [];
63
+ for (const signalName of signalNames) {
64
+ listeners.push(listen$(ctx, signalName, cb));
65
+ }
66
+ return () => {
67
+ for (const listener of listeners) {
68
+ listener();
69
+ }
70
+ };
71
+ }
72
+ };
73
+ }
74
+ function listen$(ctx, signalName, cb) {
75
+ const { listeners } = ctx;
76
+ let setListeners = listeners.get(signalName);
77
+ if (!setListeners) {
78
+ setListeners = /* @__PURE__ */ new Set();
79
+ listeners.set(signalName, setListeners);
80
+ }
81
+ setListeners.add(cb);
82
+ return () => setListeners.delete(cb);
83
+ }
84
+ function peek$(ctx, signalName) {
85
+ const { values } = ctx;
86
+ return values.get(signalName);
87
+ }
88
+ function useArr$(signalNames) {
89
+ const ctx = React3__namespace.useContext(ContextState);
90
+ const { subscribe, get } = React3__namespace.useMemo(() => createSelectorFunctionsArr(ctx, signalNames), [ctx, signalNames]);
91
+ const value = shim.useSyncExternalStore(subscribe, get);
92
+ return value;
93
+ }
94
+
32
95
  // src/utils/helpers.ts
33
96
  function isFunction(obj) {
34
97
  return typeof obj === "function";
@@ -36,7 +99,7 @@ function isFunction(obj) {
36
99
 
37
100
  // src/hooks/useCombinedRef.ts
38
101
  var useCombinedRef = (...refs) => {
39
- const callback = React.useCallback((element) => {
102
+ const callback = React3.useCallback((element) => {
40
103
  for (const ref of refs) {
41
104
  if (!ref) {
42
105
  continue;
@@ -50,31 +113,136 @@ var useCombinedRef = (...refs) => {
50
113
  }, refs);
51
114
  return callback;
52
115
  };
116
+ var getComponent = (Component) => {
117
+ if (React3__namespace.isValidElement(Component)) {
118
+ return Component;
119
+ }
120
+ if (Component) {
121
+ return /* @__PURE__ */ React3__namespace.createElement(Component, null);
122
+ }
123
+ return null;
124
+ };
53
125
 
54
126
  // src/integrations/reanimated.tsx
55
- var typedMemo = React.memo;
127
+ var typedMemo = React3.memo;
128
+ var ReanimatedScrollBridge = typedMemo(function ReanimatedScrollBridgeComponent({
129
+ forwardedRef,
130
+ scrollOffset,
131
+ ...props
132
+ }) {
133
+ const animatedScrollRef = Reanimated.useAnimatedRef();
134
+ Reanimated.useScrollViewOffset(animatedScrollRef, scrollOffset);
135
+ const combinedRef = useCombinedRef(animatedScrollRef, forwardedRef);
136
+ return /* @__PURE__ */ React3__namespace.createElement(Reanimated__default.default.ScrollView, { ...props, ref: combinedRef });
137
+ });
138
+ var StickyOverlay = typedMemo(function StickyOverlayComponent({ stickyHeaderConfig }) {
139
+ if (!(stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.backdropComponent)) {
140
+ return null;
141
+ }
142
+ return /* @__PURE__ */ React3__namespace.createElement(
143
+ reactNative.View,
144
+ {
145
+ style: {
146
+ inset: 0,
147
+ pointerEvents: "none",
148
+ position: "absolute"
149
+ }
150
+ },
151
+ getComponent(stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.backdropComponent)
152
+ );
153
+ });
154
+ var ReanimatedPositionViewSticky = typedMemo(function ReanimatedPositionViewStickyComponent(props) {
155
+ var _a;
156
+ const { id, horizontal, style, refView, stickyScrollOffset, stickyHeaderConfig, index, children, ...rest } = props;
157
+ const [position = POSITION_OUT_OF_VIEW, headerSize = 0, stylePaddingTop = 0] = useArr$([
158
+ `containerPosition${id}`,
159
+ "headerSize",
160
+ "stylePaddingTop"
161
+ ]);
162
+ const stickyOffset = (_a = stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.offset) != null ? _a : 0;
163
+ const stickyStart = position + headerSize + stylePaddingTop - stickyOffset;
164
+ const transformStyle = Reanimated.useAnimatedStyle(() => {
165
+ const delta = Math.max(0, stickyScrollOffset.value - stickyStart);
166
+ return horizontal ? { transform: [{ translateX: position + delta }] } : { transform: [{ translateY: position + delta }] };
167
+ }, [horizontal, position, stickyStart]);
168
+ const viewStyle = React3__namespace.useMemo(
169
+ () => [style, { zIndex: index + 1e3 }, transformStyle],
170
+ [index, style, transformStyle]
171
+ );
172
+ return /* @__PURE__ */ React3__namespace.createElement(Reanimated__default.default.View, { ref: refView, style: viewStyle, ...rest }, /* @__PURE__ */ React3__namespace.createElement(StickyOverlay, { stickyHeaderConfig }), children);
173
+ });
174
+ var ReanimatedPositionView = typedMemo(function ReanimatedPositionViewComponent(props) {
175
+ const { id, horizontal, style, refView, children, layoutTransition, ...rest } = props;
176
+ const [positionValue = POSITION_OUT_OF_VIEW] = useArr$([`containerPosition${id}`]);
177
+ const viewStyle = React3__namespace.useMemo(
178
+ () => [style, horizontal ? { left: positionValue } : { top: positionValue }],
179
+ [horizontal, positionValue, style]
180
+ );
181
+ return /* @__PURE__ */ React3__namespace.createElement(Reanimated__default.default.View, { layout: layoutTransition, ref: refView, style: viewStyle, ...rest }, children);
182
+ });
56
183
  var LegendListForwardedRef = typedMemo(
57
184
  // biome-ignore lint/nursery/noShadow: const function name shadowing is intentional
58
- React__namespace.forwardRef(function LegendListForwardedRef2(props, ref) {
59
- const { refLegendList, ...rest } = props;
60
- const refFn = React.useCallback(
185
+ React3__namespace.forwardRef(function LegendListForwardedRef2(props, ref) {
186
+ const { itemLayoutAnimation, refLegendList, ...rest } = props;
187
+ const refFn = React3.useCallback(
61
188
  (r) => {
62
189
  refLegendList(r);
63
190
  },
64
191
  [refLegendList]
65
192
  );
66
- return /* @__PURE__ */ React__namespace.createElement(list.LegendList, { ref: refFn, refScrollView: ref, ...rest });
193
+ const stickyScrollOffset = Reanimated.useSharedValue(0);
194
+ const shouldUseReanimatedScrollView = IsNewArchitecture;
195
+ const renderReanimatedScrollComponent = React3.useCallback(
196
+ (scrollViewProps) => {
197
+ const { ref: forwardedRef, ...restScrollViewProps } = scrollViewProps;
198
+ return /* @__PURE__ */ React3__namespace.createElement(
199
+ ReanimatedScrollBridge,
200
+ {
201
+ ...restScrollViewProps,
202
+ forwardedRef,
203
+ scrollOffset: stickyScrollOffset
204
+ }
205
+ );
206
+ },
207
+ [stickyScrollOffset]
208
+ );
209
+ const stickyPositionComponentInternal = React3__namespace.useMemo(
210
+ () => function StickyPositionComponent(stickyProps) {
211
+ return /* @__PURE__ */ React3__namespace.createElement(ReanimatedPositionViewSticky, { ...stickyProps, stickyScrollOffset });
212
+ },
213
+ [stickyScrollOffset]
214
+ );
215
+ const itemLayoutAnimationRef = React3__namespace.useRef(itemLayoutAnimation);
216
+ itemLayoutAnimationRef.current = itemLayoutAnimation;
217
+ const hasItemLayoutAnimation = !!itemLayoutAnimation;
218
+ const positionComponentInternal = React3__namespace.useMemo(() => {
219
+ if (!hasItemLayoutAnimation) {
220
+ return void 0;
221
+ }
222
+ return function PositionComponent(positionProps) {
223
+ return /* @__PURE__ */ React3__namespace.createElement(ReanimatedPositionView, { ...positionProps, layoutTransition: itemLayoutAnimationRef.current });
224
+ };
225
+ }, [hasItemLayoutAnimation]);
226
+ const legendListProps = {
227
+ ...rest,
228
+ positionComponentInternal,
229
+ ...shouldUseReanimatedScrollView ? {
230
+ renderScrollComponent: renderReanimatedScrollComponent,
231
+ stickyPositionComponentInternal
232
+ } : {}
233
+ };
234
+ return /* @__PURE__ */ React3__namespace.createElement(reactNative$1.LegendList, { ref: refFn, refScrollView: ref, ...legendListProps });
67
235
  })
68
236
  );
69
237
  var AnimatedLegendListComponent = Reanimated__default.default.createAnimatedComponent(LegendListForwardedRef);
70
238
  var AnimatedLegendList = typedMemo(
71
239
  // biome-ignore lint/nursery/noShadow: const function name shadowing is intentional
72
- React__namespace.forwardRef(function AnimatedLegendList2(props, ref) {
240
+ React3__namespace.forwardRef(function AnimatedLegendList2(props, ref) {
73
241
  const { refScrollView, ...rest } = props;
74
242
  const { animatedProps } = props;
75
- const refLegendList = React__namespace.useRef(null);
243
+ const refLegendList = React3__namespace.useRef(null);
76
244
  const combinedRef = useCombinedRef(refLegendList, ref);
77
- return /* @__PURE__ */ React__namespace.createElement(
245
+ return /* @__PURE__ */ React3__namespace.createElement(
78
246
  AnimatedLegendListComponent,
79
247
  {
80
248
  animatedPropsInternal: animatedProps,
package/reanimated.mjs CHANGED
@@ -1,10 +1,73 @@
1
- import * as React from 'react';
1
+ import * as React3 from 'react';
2
2
  import { useCallback, memo } from 'react';
3
- import Reanimated from 'react-native-reanimated';
4
- import { LegendList } from '@legendapp/list';
3
+ import { View } from 'react-native';
4
+ import Reanimated, { useAnimatedRef, useScrollViewOffset, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
5
+ import { LegendList } from '@legendapp/list/react-native';
6
+ import { useSyncExternalStore } from 'use-sync-external-store/shim';
5
7
 
6
8
  // src/integrations/reanimated.tsx
7
9
 
10
+ // src/constants.ts
11
+ var POSITION_OUT_OF_VIEW = -1e7;
12
+
13
+ // src/constants-platform.native.ts
14
+ var f = global.nativeFabricUIManager;
15
+ var IsNewArchitecture = f !== void 0 && f != null;
16
+ var ContextState = React3.createContext(null);
17
+ function createSelectorFunctionsArr(ctx, signalNames) {
18
+ let lastValues = [];
19
+ let lastSignalValues = [];
20
+ return {
21
+ get: () => {
22
+ const currentValues = [];
23
+ let hasChanged = false;
24
+ for (let i = 0; i < signalNames.length; i++) {
25
+ const value = peek$(ctx, signalNames[i]);
26
+ currentValues.push(value);
27
+ if (value !== lastSignalValues[i]) {
28
+ hasChanged = true;
29
+ }
30
+ }
31
+ lastSignalValues = currentValues;
32
+ if (hasChanged) {
33
+ lastValues = currentValues;
34
+ }
35
+ return lastValues;
36
+ },
37
+ subscribe: (cb) => {
38
+ const listeners = [];
39
+ for (const signalName of signalNames) {
40
+ listeners.push(listen$(ctx, signalName, cb));
41
+ }
42
+ return () => {
43
+ for (const listener of listeners) {
44
+ listener();
45
+ }
46
+ };
47
+ }
48
+ };
49
+ }
50
+ function listen$(ctx, signalName, cb) {
51
+ const { listeners } = ctx;
52
+ let setListeners = listeners.get(signalName);
53
+ if (!setListeners) {
54
+ setListeners = /* @__PURE__ */ new Set();
55
+ listeners.set(signalName, setListeners);
56
+ }
57
+ setListeners.add(cb);
58
+ return () => setListeners.delete(cb);
59
+ }
60
+ function peek$(ctx, signalName) {
61
+ const { values } = ctx;
62
+ return values.get(signalName);
63
+ }
64
+ function useArr$(signalNames) {
65
+ const ctx = React3.useContext(ContextState);
66
+ const { subscribe, get } = React3.useMemo(() => createSelectorFunctionsArr(ctx, signalNames), [ctx, signalNames]);
67
+ const value = useSyncExternalStore(subscribe, get);
68
+ return value;
69
+ }
70
+
8
71
  // src/utils/helpers.ts
9
72
  function isFunction(obj) {
10
73
  return typeof obj === "function";
@@ -26,31 +89,136 @@ var useCombinedRef = (...refs) => {
26
89
  }, refs);
27
90
  return callback;
28
91
  };
92
+ var getComponent = (Component) => {
93
+ if (React3.isValidElement(Component)) {
94
+ return Component;
95
+ }
96
+ if (Component) {
97
+ return /* @__PURE__ */ React3.createElement(Component, null);
98
+ }
99
+ return null;
100
+ };
29
101
 
30
102
  // src/integrations/reanimated.tsx
31
103
  var typedMemo = memo;
104
+ var ReanimatedScrollBridge = typedMemo(function ReanimatedScrollBridgeComponent({
105
+ forwardedRef,
106
+ scrollOffset,
107
+ ...props
108
+ }) {
109
+ const animatedScrollRef = useAnimatedRef();
110
+ useScrollViewOffset(animatedScrollRef, scrollOffset);
111
+ const combinedRef = useCombinedRef(animatedScrollRef, forwardedRef);
112
+ return /* @__PURE__ */ React3.createElement(Reanimated.ScrollView, { ...props, ref: combinedRef });
113
+ });
114
+ var StickyOverlay = typedMemo(function StickyOverlayComponent({ stickyHeaderConfig }) {
115
+ if (!(stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.backdropComponent)) {
116
+ return null;
117
+ }
118
+ return /* @__PURE__ */ React3.createElement(
119
+ View,
120
+ {
121
+ style: {
122
+ inset: 0,
123
+ pointerEvents: "none",
124
+ position: "absolute"
125
+ }
126
+ },
127
+ getComponent(stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.backdropComponent)
128
+ );
129
+ });
130
+ var ReanimatedPositionViewSticky = typedMemo(function ReanimatedPositionViewStickyComponent(props) {
131
+ var _a;
132
+ const { id, horizontal, style, refView, stickyScrollOffset, stickyHeaderConfig, index, children, ...rest } = props;
133
+ const [position = POSITION_OUT_OF_VIEW, headerSize = 0, stylePaddingTop = 0] = useArr$([
134
+ `containerPosition${id}`,
135
+ "headerSize",
136
+ "stylePaddingTop"
137
+ ]);
138
+ const stickyOffset = (_a = stickyHeaderConfig == null ? void 0 : stickyHeaderConfig.offset) != null ? _a : 0;
139
+ const stickyStart = position + headerSize + stylePaddingTop - stickyOffset;
140
+ const transformStyle = useAnimatedStyle(() => {
141
+ const delta = Math.max(0, stickyScrollOffset.value - stickyStart);
142
+ return horizontal ? { transform: [{ translateX: position + delta }] } : { transform: [{ translateY: position + delta }] };
143
+ }, [horizontal, position, stickyStart]);
144
+ const viewStyle = React3.useMemo(
145
+ () => [style, { zIndex: index + 1e3 }, transformStyle],
146
+ [index, style, transformStyle]
147
+ );
148
+ return /* @__PURE__ */ React3.createElement(Reanimated.View, { ref: refView, style: viewStyle, ...rest }, /* @__PURE__ */ React3.createElement(StickyOverlay, { stickyHeaderConfig }), children);
149
+ });
150
+ var ReanimatedPositionView = typedMemo(function ReanimatedPositionViewComponent(props) {
151
+ const { id, horizontal, style, refView, children, layoutTransition, ...rest } = props;
152
+ const [positionValue = POSITION_OUT_OF_VIEW] = useArr$([`containerPosition${id}`]);
153
+ const viewStyle = React3.useMemo(
154
+ () => [style, horizontal ? { left: positionValue } : { top: positionValue }],
155
+ [horizontal, positionValue, style]
156
+ );
157
+ return /* @__PURE__ */ React3.createElement(Reanimated.View, { layout: layoutTransition, ref: refView, style: viewStyle, ...rest }, children);
158
+ });
32
159
  var LegendListForwardedRef = typedMemo(
33
160
  // biome-ignore lint/nursery/noShadow: const function name shadowing is intentional
34
- React.forwardRef(function LegendListForwardedRef2(props, ref) {
35
- const { refLegendList, ...rest } = props;
161
+ React3.forwardRef(function LegendListForwardedRef2(props, ref) {
162
+ const { itemLayoutAnimation, refLegendList, ...rest } = props;
36
163
  const refFn = useCallback(
37
164
  (r) => {
38
165
  refLegendList(r);
39
166
  },
40
167
  [refLegendList]
41
168
  );
42
- return /* @__PURE__ */ React.createElement(LegendList, { ref: refFn, refScrollView: ref, ...rest });
169
+ const stickyScrollOffset = useSharedValue(0);
170
+ const shouldUseReanimatedScrollView = IsNewArchitecture;
171
+ const renderReanimatedScrollComponent = useCallback(
172
+ (scrollViewProps) => {
173
+ const { ref: forwardedRef, ...restScrollViewProps } = scrollViewProps;
174
+ return /* @__PURE__ */ React3.createElement(
175
+ ReanimatedScrollBridge,
176
+ {
177
+ ...restScrollViewProps,
178
+ forwardedRef,
179
+ scrollOffset: stickyScrollOffset
180
+ }
181
+ );
182
+ },
183
+ [stickyScrollOffset]
184
+ );
185
+ const stickyPositionComponentInternal = React3.useMemo(
186
+ () => function StickyPositionComponent(stickyProps) {
187
+ return /* @__PURE__ */ React3.createElement(ReanimatedPositionViewSticky, { ...stickyProps, stickyScrollOffset });
188
+ },
189
+ [stickyScrollOffset]
190
+ );
191
+ const itemLayoutAnimationRef = React3.useRef(itemLayoutAnimation);
192
+ itemLayoutAnimationRef.current = itemLayoutAnimation;
193
+ const hasItemLayoutAnimation = !!itemLayoutAnimation;
194
+ const positionComponentInternal = React3.useMemo(() => {
195
+ if (!hasItemLayoutAnimation) {
196
+ return void 0;
197
+ }
198
+ return function PositionComponent(positionProps) {
199
+ return /* @__PURE__ */ React3.createElement(ReanimatedPositionView, { ...positionProps, layoutTransition: itemLayoutAnimationRef.current });
200
+ };
201
+ }, [hasItemLayoutAnimation]);
202
+ const legendListProps = {
203
+ ...rest,
204
+ positionComponentInternal,
205
+ ...shouldUseReanimatedScrollView ? {
206
+ renderScrollComponent: renderReanimatedScrollComponent,
207
+ stickyPositionComponentInternal
208
+ } : {}
209
+ };
210
+ return /* @__PURE__ */ React3.createElement(LegendList, { ref: refFn, refScrollView: ref, ...legendListProps });
43
211
  })
44
212
  );
45
213
  var AnimatedLegendListComponent = Reanimated.createAnimatedComponent(LegendListForwardedRef);
46
214
  var AnimatedLegendList = typedMemo(
47
215
  // biome-ignore lint/nursery/noShadow: const function name shadowing is intentional
48
- React.forwardRef(function AnimatedLegendList2(props, ref) {
216
+ React3.forwardRef(function AnimatedLegendList2(props, ref) {
49
217
  const { refScrollView, ...rest } = props;
50
218
  const { animatedProps } = props;
51
- const refLegendList = React.useRef(null);
219
+ const refLegendList = React3.useRef(null);
52
220
  const combinedRef = useCombinedRef(refLegendList, ref);
53
- return /* @__PURE__ */ React.createElement(
221
+ return /* @__PURE__ */ React3.createElement(
54
222
  AnimatedLegendListComponent,
55
223
  {
56
224
  animatedPropsInternal: animatedProps,