@shopify/flash-list 2.0.3 → 2.1.0

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 (194) hide show
  1. package/dist/AnimatedFlashList.js +4 -6
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.js +1 -5
  4. package/dist/FlashList.js.map +1 -1
  5. package/dist/FlashListProps.d.ts +9 -1
  6. package/dist/FlashListProps.d.ts.map +1 -1
  7. package/dist/FlashListProps.js +1 -4
  8. package/dist/FlashListProps.js.map +1 -1
  9. package/dist/FlashListRef.js +1 -2
  10. package/dist/benchmark/AutoScrollHelper.js +22 -30
  11. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.js +27 -33
  13. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  14. package/dist/benchmark/roundToDecimalPlaces.js +2 -5
  15. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  16. package/dist/benchmark/useBenchmark.d.ts +9 -1
  17. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  18. package/dist/benchmark/useBenchmark.js +86 -95
  19. package/dist/benchmark/useBenchmark.js.map +1 -1
  20. package/dist/benchmark/useDataMultiplier.js +6 -10
  21. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  22. package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
  23. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +73 -81
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/errors/ErrorMessages.js +1 -4
  27. package/dist/errors/ErrorMessages.js.map +1 -1
  28. package/dist/errors/WarningMessages.d.ts +1 -0
  29. package/dist/errors/WarningMessages.d.ts.map +1 -1
  30. package/dist/errors/WarningMessages.js +2 -4
  31. package/dist/errors/WarningMessages.js.map +1 -1
  32. package/dist/index.js +17 -35
  33. package/dist/index.js.map +1 -1
  34. package/dist/isNewArch.js +6 -9
  35. package/dist/isNewArch.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.android.js +2 -5
  37. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.ios.js +2 -5
  39. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.js +2 -5
  41. package/dist/native/config/PlatformHelper.js.map +1 -1
  42. package/dist/native/config/PlatformHelper.web.js +2 -5
  43. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  44. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  45. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  46. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  47. package/dist/recyclerview/RecyclerView.js +117 -107
  48. package/dist/recyclerview/RecyclerView.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  50. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewManager.d.ts +2 -0
  52. package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -1
  53. package/dist/recyclerview/RecyclerViewManager.js +146 -164
  54. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  55. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  56. package/dist/recyclerview/RenderStackManager.js +97 -188
  57. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  58. package/dist/recyclerview/ViewHolder.js +16 -20
  59. package/dist/recyclerview/ViewHolder.js.map +1 -1
  60. package/dist/recyclerview/ViewHolderCollection.js +26 -30
  61. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  62. package/dist/recyclerview/components/CompatScroller.js +6 -7
  63. package/dist/recyclerview/components/CompatScroller.js.map +1 -1
  64. package/dist/recyclerview/components/CompatView.js +6 -7
  65. package/dist/recyclerview/components/CompatView.js.map +1 -1
  66. package/dist/recyclerview/components/ScrollAnchor.js +10 -15
  67. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  68. package/dist/recyclerview/components/StickyHeaders.js +34 -40
  69. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  70. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  71. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  72. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  73. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  74. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  75. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  77. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  78. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  79. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  80. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  81. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  82. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  83. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  84. package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -1
  85. package/dist/recyclerview/hooks/useOnLoad.js +17 -22
  86. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  87. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  90. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  92. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  93. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  94. package/dist/recyclerview/hooks/useSecondaryProps.js +24 -30
  95. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  96. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  97. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  98. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  99. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  100. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  101. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  102. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  103. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  104. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  105. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  106. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  107. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  108. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  109. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  110. package/dist/recyclerview/utils/componentUtils.js +4 -9
  111. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  112. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  113. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  114. package/dist/recyclerview/utils/measureLayout.js +12 -20
  115. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  116. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  117. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  118. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  119. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  120. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  122. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/utils/AverageWindow.js +28 -39
  125. package/dist/utils/AverageWindow.js.map +1 -1
  126. package/package.json +4 -6
  127. package/src/FlashListProps.ts +8 -1
  128. package/src/benchmark/useBenchmark.ts +47 -4
  129. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  130. package/src/errors/WarningMessages.ts +2 -0
  131. package/src/recyclerview/RecyclerView.tsx +18 -5
  132. package/src/recyclerview/RecyclerViewManager.ts +12 -0
  133. package/src/recyclerview/hooks/useOnLoad.ts +1 -0
  134. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  135. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  136. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  137. package/dist/__tests__/AverageWindow.test.js +0 -104
  138. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  139. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  140. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  141. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  142. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  143. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  144. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  145. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  146. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  147. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  148. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  149. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  150. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  151. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  152. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  153. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  154. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  155. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  158. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  160. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  161. package/dist/__tests__/RecyclerView.test.js +0 -103
  162. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  163. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  164. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  165. package/dist/__tests__/RenderStackManager.test.js +0 -485
  166. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  167. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  168. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  169. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  170. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  171. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  172. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  173. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  174. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  175. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  176. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  177. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  178. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  179. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  180. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  181. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  182. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  183. package/src/__tests__/AverageWindow.test.ts +0 -128
  184. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  185. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  186. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  187. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  188. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  189. package/src/__tests__/RecyclerView.test.tsx +0 -144
  190. package/src/__tests__/RenderStackManager.test.ts +0 -574
  191. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  192. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  193. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  194. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,8 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_native_1 = require("react-native");
4
- var FlashList_1 = require("./FlashList");
1
+ import { Animated } from "react-native";
2
+ import { FlashList } from "./FlashList";
5
3
  // Typecast as required
6
- var AnimatedFlashList = react_native_1.Animated.createAnimatedComponent(FlashList_1.FlashList);
7
- exports.default = AnimatedFlashList;
4
+ const AnimatedFlashList = Animated.createAnimatedComponent(FlashList);
5
+ export default AnimatedFlashList;
8
6
  //# sourceMappingURL=AnimatedFlashList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedFlashList.js","sourceRoot":"","sources":["../src/AnimatedFlashList.ts"],"names":[],"mappings":";;AAAA,6CAAwC;AAGxC,yCAAwC;AAExC,uBAAuB;AACvB,IAAM,iBAAiB,GACrB,uBAAQ,CAAC,uBAAuB,CAC9B,qBAAS,CACV,CAAC;AAEJ,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"AnimatedFlashList.js","sourceRoot":"","sources":["../src/AnimatedFlashList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,uBAAuB;AACvB,MAAM,iBAAiB,GACrB,QAAQ,CAAC,uBAAuB,CAC9B,SAAS,CACV,CAAC;AAEJ,eAAe,iBAAiB,CAAC"}
package/dist/FlashList.js CHANGED
@@ -1,6 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlashList = void 0;
4
- var RecyclerView_1 = require("./recyclerview/RecyclerView");
5
- Object.defineProperty(exports, "FlashList", { enumerable: true, get: function () { return RecyclerView_1.RecyclerView; } });
1
+ export { RecyclerView as FlashList } from "./recyclerview/RecyclerView";
6
2
  //# sourceMappingURL=FlashList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlashList.js","sourceRoot":"","sources":["../src/FlashList.ts"],"names":[],"mappings":";;;AAAA,4DAAwE;AAA/D,yGAAA,YAAY,OAAa"}
1
+ {"version":3,"file":"FlashList.js","sourceRoot":"","sources":["../src/FlashList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
@@ -113,6 +113,14 @@ export interface FlashListProps<TItem> extends Omit<ScrollViewProps, "maintainVi
113
113
  * Instead of starting at the top with the first item, start at initialScrollIndex.
114
114
  */
115
115
  initialScrollIndex?: number | null | undefined;
116
+ /**
117
+ * Additional configuration for initialScrollIndex.
118
+ * Use viewOffset to apply an offset to the initial scroll position as defined by initialScrollIndex.
119
+ * Ignored if initialScrollIndex is not set.
120
+ */
121
+ initialScrollIndexParams?: {
122
+ viewOffset?: number;
123
+ } | null | undefined;
116
124
  /**
117
125
  * Used to extract a unique key for a given item at the specified index.
118
126
  * Key is used for optimizing performance. Defining `keyExtractor` is also necessary
@@ -239,7 +247,7 @@ export interface FlashListProps<TItem> extends Omit<ScrollViewProps, "maintainVi
239
247
  * Style for the RecyclerView's parent container.
240
248
  * Please avoid anything which can mess size of children in this view. For example, margin is okay but padding is not.
241
249
  */
242
- style?: ViewStyle;
250
+ style?: StyleProp<ViewStyle>;
243
251
  /**
244
252
  * New arch only
245
253
  * Configuration for maintaining scroll position when content changes.
@@ -1 +1 @@
1
- {"version":3,"file":"FlashListProps.d.ts","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlashListProps.d.ts","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderTargetOptions = void 0;
4
- exports.RenderTargetOptions = {
1
+ export const RenderTargetOptions = {
5
2
  Cell: "Cell",
6
3
  StickyHeader: "StickyHeader",
7
4
  Measurement: "Measurement",
@@ -1 +1 @@
1
- {"version":3,"file":"FlashListProps.js","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":";;;AA+Ba,QAAA,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAC3B,CAAC"}
1
+ {"version":3,"file":"FlashListProps.js","sourceRoot":"","sources":["../src/FlashListProps.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,mBAAmB,GAAiC;IAC/D,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAC3B,CAAC"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=FlashListRef.js.map
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Cancellable = void 0;
4
- exports.autoScroll = autoScroll;
5
1
  /**
6
2
  * This method can be used to trigger scroll events that can be forwarded to an element. Anything that implements scrollable can leverage this.
7
3
  * @param scroll The scrollable element
@@ -13,31 +9,29 @@ exports.autoScroll = autoScroll;
13
9
  * @param cancellable can be used to cancel the scroll
14
10
  * @returns Promise that resolves when the scroll is complete
15
11
  */
16
- function autoScroll(scroll, fromX, fromY, toX, toY, speedMultiplier, cancellable) {
17
- if (speedMultiplier === void 0) { speedMultiplier = 1; }
18
- if (cancellable === void 0) { cancellable = new Cancellable(); }
19
- return new Promise(function (resolve) {
12
+ export function autoScroll(scroll, fromX, fromY, toX, toY, speedMultiplier = 1, cancellable = new Cancellable()) {
13
+ return new Promise((resolve) => {
20
14
  scroll(fromX, fromY, false);
21
15
  // Very fast scrolls on Android/iOS typically move content 7px every millisecond.
22
- var incrementPerMs = 7 * speedMultiplier;
23
- var directionMultiplierX = toX > fromX ? 1 : -1;
24
- var directionMultiplierY = toY > fromY ? 1 : -1;
25
- var comparatorX = toX > fromX ? Math.min : Math.max;
26
- var comparatorY = toY > fromY ? Math.min : Math.max;
27
- var startTime = Date.now();
28
- var startX = fromX;
29
- var startY = fromY;
16
+ const incrementPerMs = 7 * speedMultiplier;
17
+ const directionMultiplierX = toX > fromX ? 1 : -1;
18
+ const directionMultiplierY = toY > fromY ? 1 : -1;
19
+ const comparatorX = toX > fromX ? Math.min : Math.max;
20
+ const comparatorY = toY > fromY ? Math.min : Math.max;
21
+ let startTime = Date.now();
22
+ let startX = fromX;
23
+ let startY = fromY;
30
24
  // Computes the number of pixels to scroll in the given time
31
25
  // Also invokes the scrollable to update the scroll position
32
- var animationLoop = function () {
33
- requestAnimationFrame(function () {
26
+ const animationLoop = () => {
27
+ requestAnimationFrame(() => {
34
28
  if (cancellable.isCancelled()) {
35
29
  resolve(false);
36
30
  return;
37
31
  }
38
- var currentTime = Date.now();
39
- var timeElapsed = currentTime - startTime;
40
- var distanceToCover = incrementPerMs * timeElapsed;
32
+ const currentTime = Date.now();
33
+ const timeElapsed = currentTime - startTime;
34
+ const distanceToCover = incrementPerMs * timeElapsed;
41
35
  startX += distanceToCover * directionMultiplierX;
42
36
  startY += distanceToCover * directionMultiplierY;
43
37
  scroll(comparatorX(toX, startX), comparatorY(toY, startY), false);
@@ -52,17 +46,15 @@ function autoScroll(scroll, fromX, fromY, toX, toY, speedMultiplier, cancellable
52
46
  animationLoop();
53
47
  });
54
48
  }
55
- var Cancellable = /** @class */ (function () {
56
- function Cancellable() {
49
+ export class Cancellable {
50
+ constructor() {
57
51
  this._isCancelled = false;
58
52
  }
59
- Cancellable.prototype.cancel = function () {
53
+ cancel() {
60
54
  this._isCancelled = true;
61
- };
62
- Cancellable.prototype.isCancelled = function () {
55
+ }
56
+ isCancelled() {
63
57
  return this._isCancelled;
64
- };
65
- return Cancellable;
66
- }());
67
- exports.Cancellable = Cancellable;
58
+ }
59
+ }
68
60
  //# sourceMappingURL=AutoScrollHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoScrollHelper.js","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":";;;AAWA,gCA8CC;AAzDD;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACxB,MAAyD,EACzD,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,eAAmB,EACnB,WAA4C;IAD5C,gCAAA,EAAA,mBAAmB;IACnB,4BAAA,EAAA,kBAA+B,WAAW,EAAE;IAE5C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,iFAAiF;QACjF,IAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC;QAC3C,IAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,4DAA4D;QAC5D,4DAA4D;QAC5D,IAAM,aAAa,GAAG;YACpB,qBAAqB,CAAC;gBACpB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;gBAC5C,IAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;gBACrD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClE,SAAS,GAAG,WAAW,CAAC;gBACxB,IACE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG;oBAChC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,EAChC,CAAC;oBACD,OAAO,aAAa,EAAE,CAAC;gBACzB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;IAAA;QASS,iBAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IATQ,4BAAM,GAAb;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,iCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAGH,kBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,kCAAW"}
1
+ {"version":3,"file":"AutoScrollHelper.js","sourceRoot":"","sources":["../../src/benchmark/AutoScrollHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,MAAyD,EACzD,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAW,EACX,eAAe,GAAG,CAAC,EACnB,cAA2B,IAAI,WAAW,EAAE;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,iFAAiF;QACjF,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC;QAC3C,MAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,oBAAoB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,MAAM,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,4DAA4D;QAC5D,4DAA4D;QAC5D,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,qBAAqB,CAAC,GAAG,EAAE;gBACzB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,OAAO;gBACT,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;gBAC5C,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC;gBACrD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC;gBACjD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClE,SAAS,GAAG,WAAW,CAAC;gBACxB,IACE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG;oBAChC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,EAChC,CAAC;oBACD,OAAO,aAAa,EAAE,CAAC;gBACzB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,WAAW;IAAxB;QASS,iBAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IATQ,MAAM;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CAGF"}
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JSFPSMonitor = void 0;
4
- var ErrorMessages_1 = require("../errors/ErrorMessages");
5
- var roundToDecimalPlaces_1 = require("./roundToDecimalPlaces");
1
+ import { ErrorMessages } from "../errors/ErrorMessages";
2
+ import { roundToDecimalPlaces } from "./roundToDecimalPlaces";
6
3
  /**
7
4
  * Can be used to monitor JS thread performance
8
5
  * Use startTracking() and stopAndGetData() to start and stop tracking
9
6
  */
10
- var JSFPSMonitor = /** @class */ (function () {
11
- function JSFPSMonitor() {
12
- var _this = this;
7
+ export class JSFPSMonitor {
8
+ constructor() {
13
9
  this.startTime = 0;
14
10
  this.frameCount = 0;
15
11
  this.timeWindow = {
@@ -20,47 +16,45 @@ var JSFPSMonitor = /** @class */ (function () {
20
16
  this.maxFPS = 0;
21
17
  this.averageFPS = 0;
22
18
  this.clearAnimationNumber = 0;
23
- this.updateLoopCompute = function () {
24
- _this.frameCount++;
25
- var elapsedTime = (Date.now() - _this.startTime) / 1000;
26
- _this.averageFPS = elapsedTime > 0 ? _this.frameCount / elapsedTime : 0;
27
- _this.timeWindow.frameCount++;
28
- var timeWindowElapsedTime = (Date.now() - _this.timeWindow.startTime) / 1000;
19
+ this.updateLoopCompute = () => {
20
+ this.frameCount++;
21
+ const elapsedTime = (Date.now() - this.startTime) / 1000;
22
+ this.averageFPS = elapsedTime > 0 ? this.frameCount / elapsedTime : 0;
23
+ this.timeWindow.frameCount++;
24
+ const timeWindowElapsedTime = (Date.now() - this.timeWindow.startTime) / 1000;
29
25
  if (timeWindowElapsedTime >= 1) {
30
- var timeWindowAverageFPS = _this.timeWindow.frameCount / timeWindowElapsedTime;
31
- _this.minFPS = Math.min(_this.minFPS, timeWindowAverageFPS);
32
- _this.maxFPS = Math.max(_this.maxFPS, timeWindowAverageFPS);
33
- _this.timeWindow.frameCount = 0;
34
- _this.timeWindow.startTime = Date.now();
26
+ const timeWindowAverageFPS = this.timeWindow.frameCount / timeWindowElapsedTime;
27
+ this.minFPS = Math.min(this.minFPS, timeWindowAverageFPS);
28
+ this.maxFPS = Math.max(this.maxFPS, timeWindowAverageFPS);
29
+ this.timeWindow.frameCount = 0;
30
+ this.timeWindow.startTime = Date.now();
35
31
  }
36
- _this.measureLoop();
32
+ this.measureLoop();
37
33
  };
38
34
  }
39
- JSFPSMonitor.prototype.measureLoop = function () {
35
+ measureLoop() {
40
36
  // This looks weird but I'm avoiding a new closure
41
37
  this.clearAnimationNumber = requestAnimationFrame(this.updateLoopCompute);
42
- };
43
- JSFPSMonitor.prototype.startTracking = function () {
38
+ }
39
+ startTracking() {
44
40
  if (this.startTime !== 0) {
45
- throw new Error(ErrorMessages_1.ErrorMessages.fpsMonitorAlreadyRunning);
41
+ throw new Error(ErrorMessages.fpsMonitorAlreadyRunning);
46
42
  }
47
43
  this.startTime = Date.now();
48
44
  this.timeWindow.startTime = Date.now();
49
45
  this.measureLoop();
50
- };
51
- JSFPSMonitor.prototype.stopAndGetData = function () {
46
+ }
47
+ stopAndGetData() {
52
48
  cancelAnimationFrame(this.clearAnimationNumber);
53
49
  if (this.minFPS === Number.MAX_SAFE_INTEGER) {
54
50
  this.minFPS = this.averageFPS;
55
51
  this.maxFPS = this.averageFPS;
56
52
  }
57
53
  return {
58
- minFPS: (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(this.minFPS, 1),
59
- maxFPS: (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(this.maxFPS, 1),
60
- averageFPS: (0, roundToDecimalPlaces_1.roundToDecimalPlaces)(this.averageFPS, 1),
54
+ minFPS: roundToDecimalPlaces(this.minFPS, 1),
55
+ maxFPS: roundToDecimalPlaces(this.maxFPS, 1),
56
+ averageFPS: roundToDecimalPlaces(this.averageFPS, 1),
61
57
  };
62
- };
63
- return JSFPSMonitor;
64
- }());
65
- exports.JSFPSMonitor = JSFPSMonitor;
58
+ }
59
+ }
66
60
  //# sourceMappingURL=JSFPSMonitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JSFPSMonitor.js","sourceRoot":"","sources":["../../src/benchmark/JSFPSMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSFPSMonitor.js","sourceRoot":"","sources":["../../src/benchmark/JSFPSMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,eAAU,GAAG;YACnB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;SACb,CAAC;QAEM,WAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjC,WAAM,GAAG,CAAC,CAAC;QACX,eAAU,GAAG,CAAC,CAAC;QAEf,yBAAoB,GAAG,CAAC,CAAC;QAOzB,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YACzD,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,qBAAqB,GACzB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAClD,IAAI,qBAAqB,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,oBAAoB,GACxB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,qBAAqB,CAAC;gBACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;gBAC1D,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;IAuBJ,CAAC;IA7CS,WAAW;QACjB,kDAAkD;QAClD,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC;IAqBM,aAAa;QAClB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEM,cAAc;QACnB,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,CAAC;QACD,OAAO;YACL,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.roundToDecimalPlaces = roundToDecimalPlaces;
4
- function roundToDecimalPlaces(value, decimalPlaces) {
5
- var multiplier = Math.pow(10, decimalPlaces);
1
+ export function roundToDecimalPlaces(value, decimalPlaces) {
2
+ const multiplier = 10 ** decimalPlaces;
6
3
  return Math.round(value * multiplier) / multiplier;
7
4
  }
8
5
  //# sourceMappingURL=roundToDecimalPlaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"roundToDecimalPlaces.js","sourceRoot":"","sources":["../../src/benchmark/roundToDecimalPlaces.ts"],"names":[],"mappings":";;AAAA,oDAGC;AAHD,SAAgB,oBAAoB,CAAC,KAAa,EAAE,aAAqB;IACvE,IAAM,UAAU,GAAG,SAAA,EAAE,EAAI,aAAa,CAAA,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"roundToDecimalPlaces.js","sourceRoot":"","sources":["../../src/benchmark/roundToDecimalPlaces.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,aAAqB;IACvE,MAAM,UAAU,GAAG,EAAE,IAAI,aAAa,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AACrD,CAAC"}
@@ -16,6 +16,11 @@ export interface BenchmarkParams {
16
16
  * Blank area is negative when list is able to draw faster than the scroll speed.
17
17
  */
18
18
  sumNegativeBlankAreaValues?: boolean;
19
+ /**
20
+ * When set to true, the benchmark will not start automatically.
21
+ * Use the returned startBenchmark function to trigger it manually.
22
+ */
23
+ startManually?: boolean;
19
24
  }
20
25
  export interface BenchmarkResult {
21
26
  js?: JSFPSResult;
@@ -28,6 +33,9 @@ export interface BenchmarkResult {
28
33
  * Response object has a formatted string that can be printed to the console or shown as an alert.
29
34
  * Result is posted to the callback method passed to the hook.
30
35
  */
31
- export declare function useBenchmark(flashListRef: React.RefObject<FlashListRef<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params?: BenchmarkParams): void;
36
+ export declare function useBenchmark(flashListRef: React.RefObject<FlashListRef<any>>, callback: (benchmarkResult: BenchmarkResult) => void, params?: BenchmarkParams): {
37
+ readonly startBenchmark: () => void;
38
+ readonly isBenchmarkRunning: boolean;
39
+ };
32
40
  export declare function getFormattedString(res: BenchmarkResult): string;
33
41
  //# sourceMappingURL=useBenchmark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AAEH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAChD,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,GAAE,eAAoB,QA2C7B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,UAYtD"}
1
+ {"version":3,"file":"useBenchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AAEH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAChD,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,EACpD,MAAM,GAAE,eAAoB;;;EA+E7B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,UAYtD"}
@@ -1,128 +1,119 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useBenchmark = useBenchmark;
4
- exports.getFormattedString = getFormattedString;
5
- var tslib_1 = require("tslib");
6
- var react_1 = require("react");
7
- var ErrorMessages_1 = require("../errors/ErrorMessages");
8
- var AutoScrollHelper_1 = require("./AutoScrollHelper");
9
- var JSFPSMonitor_1 = require("./JSFPSMonitor");
1
+ import { useEffect, useState, useCallback, useRef } from "react";
2
+ import { ErrorMessages } from "../errors/ErrorMessages";
3
+ import { autoScroll, Cancellable } from "./AutoScrollHelper";
4
+ import { JSFPSMonitor } from "./JSFPSMonitor";
10
5
  /**
11
6
  * Runs the benchmark on FlashList.
12
7
  * Response object has a formatted string that can be printed to the console or shown as an alert.
13
8
  * Result is posted to the callback method passed to the hook.
14
9
  */
15
- function useBenchmark(flashListRef, callback, params) {
16
- var _this = this;
17
- if (params === void 0) { params = {}; }
18
- (0, react_1.useEffect)(function () {
10
+ export function useBenchmark(flashListRef, callback, params = {}) {
11
+ const [isBenchmarkRunning, setIsBenchmarkRunning] = useState(false);
12
+ const cancellableRef = useRef(null);
13
+ const startBenchmark = useCallback(() => {
19
14
  var _a;
20
- var cancellable = new AutoScrollHelper_1.Cancellable();
21
- var suggestions = [];
15
+ if (isBenchmarkRunning) {
16
+ return;
17
+ }
18
+ const cancellable = new Cancellable();
19
+ cancellableRef.current = cancellable;
20
+ const suggestions = [];
22
21
  if (flashListRef.current) {
23
22
  if (!(Number((_a = flashListRef.current.props.data) === null || _a === void 0 ? void 0 : _a.length) > 0)) {
24
- throw new Error(ErrorMessages_1.ErrorMessages.dataEmptyCannotRunBenchmark);
23
+ throw new Error(ErrorMessages.dataEmptyCannotRunBenchmark);
24
+ }
25
+ }
26
+ setIsBenchmarkRunning(true);
27
+ const runBenchmark = async () => {
28
+ const jsFPSMonitor = new JSFPSMonitor();
29
+ jsFPSMonitor.startTracking();
30
+ for (let i = 0; i < (params.repeatCount || 1); i++) {
31
+ await runScrollBenchmark(flashListRef, cancellable, params.speedMultiplier || 1);
25
32
  }
33
+ const jsProfilerResponse = jsFPSMonitor.stopAndGetData();
34
+ if (jsProfilerResponse.averageFPS < 35) {
35
+ suggestions.push(`Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any`);
36
+ }
37
+ computeSuggestions(flashListRef, suggestions);
38
+ const result = generateResult(jsProfilerResponse, suggestions, cancellable);
39
+ if (!cancellable.isCancelled()) {
40
+ result.formattedString = getFormattedString(result);
41
+ }
42
+ callback(result);
43
+ setIsBenchmarkRunning(false);
44
+ };
45
+ runBenchmark();
46
+ }, [
47
+ callback,
48
+ flashListRef,
49
+ isBenchmarkRunning,
50
+ params.repeatCount,
51
+ params.speedMultiplier,
52
+ ]);
53
+ useEffect(() => {
54
+ if (params.startManually) {
55
+ return;
26
56
  }
27
- var cancelTimeout = setTimeout(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
28
- var jsFPSMonitor, i, jsProfilerResponse, result;
29
- return tslib_1.__generator(this, function (_a) {
30
- switch (_a.label) {
31
- case 0:
32
- jsFPSMonitor = new JSFPSMonitor_1.JSFPSMonitor();
33
- jsFPSMonitor.startTracking();
34
- i = 0;
35
- _a.label = 1;
36
- case 1:
37
- if (!(i < (params.repeatCount || 1))) return [3 /*break*/, 4];
38
- return [4 /*yield*/, runScrollBenchmark(flashListRef, cancellable, params.speedMultiplier || 1)];
39
- case 2:
40
- _a.sent();
41
- _a.label = 3;
42
- case 3:
43
- i++;
44
- return [3 /*break*/, 1];
45
- case 4:
46
- jsProfilerResponse = jsFPSMonitor.stopAndGetData();
47
- if (jsProfilerResponse.averageFPS < 35) {
48
- suggestions.push("Your average JS FPS is low. This can indicate that your components are doing too much work. Try to optimize your components and reduce re-renders if any");
49
- }
50
- computeSuggestions(flashListRef, suggestions);
51
- result = generateResult(jsProfilerResponse, suggestions, cancellable);
52
- if (!cancellable.isCancelled()) {
53
- result.formattedString = getFormattedString(result);
54
- }
55
- callback(result);
56
- return [2 /*return*/];
57
- }
58
- });
59
- }); }, params.startDelayInMs || 3000);
60
- return function () {
57
+ const cancelTimeout = setTimeout(() => {
58
+ startBenchmark();
59
+ }, params.startDelayInMs || 3000);
60
+ return () => {
61
61
  clearTimeout(cancelTimeout);
62
- cancellable.cancel();
62
+ if (cancellableRef.current) {
63
+ cancellableRef.current.cancel();
64
+ }
63
65
  };
64
66
  // eslint-disable-next-line react-hooks/exhaustive-deps
65
67
  }, []);
68
+ return { startBenchmark, isBenchmarkRunning };
66
69
  }
67
- function getFormattedString(res) {
70
+ export function getFormattedString(res) {
68
71
  var _a, _b, _c;
69
- return ("Results:\n\n" +
70
- "JS FPS: Avg: ".concat((_a = res.js) === null || _a === void 0 ? void 0 : _a.averageFPS, " | Min: ").concat((_b = res.js) === null || _b === void 0 ? void 0 : _b.minFPS, " | Max: ").concat((_c = res.js) === null || _c === void 0 ? void 0 : _c.maxFPS, "\n\n") +
71
- "".concat(res.suggestions.length > 0
72
- ? "Suggestions:\n\n".concat(res.suggestions
73
- .map(function (value, index) { return "".concat(index + 1, ". ").concat(value); })
74
- .join("\n"))
75
- : ""));
72
+ return (`Results:\n\n` +
73
+ `JS FPS: Avg: ${(_a = res.js) === null || _a === void 0 ? void 0 : _a.averageFPS} | Min: ${(_b = res.js) === null || _b === void 0 ? void 0 : _b.minFPS} | Max: ${(_c = res.js) === null || _c === void 0 ? void 0 : _c.maxFPS}\n\n` +
74
+ `${res.suggestions.length > 0
75
+ ? `Suggestions:\n\n${res.suggestions
76
+ .map((value, index) => `${index + 1}. ${value}`)
77
+ .join("\n")}`
78
+ : ``}`);
76
79
  }
77
80
  function generateResult(jsProfilerResponse, suggestions, cancellable) {
78
81
  return {
79
82
  js: jsProfilerResponse,
80
- suggestions: suggestions,
83
+ suggestions,
81
84
  interrupted: cancellable.isCancelled(),
82
85
  };
83
86
  }
84
87
  /**
85
88
  * Scrolls to the end of the list and then back to the top
86
89
  */
87
- function runScrollBenchmark(flashListRef, cancellable, scrollSpeedMultiplier) {
88
- return tslib_1.__awaiter(this, void 0, void 0, function () {
89
- var horizontal_1, rv, rvSize, rvContentSize, fromX, fromY, toX, toY, scrollNow;
90
- return tslib_1.__generator(this, function (_a) {
91
- switch (_a.label) {
92
- case 0:
93
- if (!flashListRef.current) return [3 /*break*/, 3];
94
- horizontal_1 = flashListRef.current.props.horizontal;
95
- rv = flashListRef.current;
96
- if (!rv) return [3 /*break*/, 3];
97
- rvSize = rv.getWindowSize();
98
- rvContentSize = rv.getChildContainerDimensions();
99
- fromX = 0;
100
- fromY = 0;
101
- toX = rvContentSize.width - rvSize.width;
102
- toY = rvContentSize.height - rvSize.height;
103
- scrollNow = function (x, y) {
104
- var _a;
105
- (_a = flashListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
106
- offset: horizontal_1 ? x : y,
107
- animated: false,
108
- });
109
- };
110
- return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable)];
111
- case 1:
112
- _a.sent();
113
- return [4 /*yield*/, (0, AutoScrollHelper_1.autoScroll)(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable)];
114
- case 2:
115
- _a.sent();
116
- _a.label = 3;
117
- case 3: return [2 /*return*/];
118
- }
119
- });
120
- });
90
+ async function runScrollBenchmark(flashListRef, cancellable, scrollSpeedMultiplier) {
91
+ if (flashListRef.current) {
92
+ const horizontal = flashListRef.current.props.horizontal;
93
+ const rv = flashListRef.current;
94
+ if (rv) {
95
+ const rvSize = rv.getWindowSize();
96
+ const rvContentSize = rv.getChildContainerDimensions();
97
+ const fromX = 0;
98
+ const fromY = 0;
99
+ const toX = rvContentSize.width - rvSize.width;
100
+ const toY = rvContentSize.height - rvSize.height;
101
+ const scrollNow = (x, y) => {
102
+ var _a;
103
+ (_a = flashListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToOffset({
104
+ offset: horizontal ? x : y,
105
+ animated: false,
106
+ });
107
+ };
108
+ await autoScroll(scrollNow, fromX, fromY, toX, toY, scrollSpeedMultiplier, cancellable);
109
+ await autoScroll(scrollNow, toX, toY, fromX, fromY, scrollSpeedMultiplier, cancellable);
110
+ }
111
+ }
121
112
  }
122
113
  function computeSuggestions(flashListRef, suggestions) {
123
114
  if (flashListRef.current) {
124
115
  if (flashListRef.current.props.data.length < 200) {
125
- suggestions.push("Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.");
116
+ suggestions.push(`Data count is low. Try to increase it to a large number (e.g 200) using the 'useDataMultiplier' hook.`);
126
117
  }
127
118
  }
128
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBenchmark.js","sourceRoot":"","sources":["../../src/benchmark/useBenchmark.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useDataMultiplier = useDataMultiplier;
4
- var tslib_1 = require("tslib");
5
1
  /**
6
2
  * Increases the data size by duplicating it, it's kept in hook format so that in future we can add auto pagination support.
7
3
  * If you're using this with FlatList then make sure you remove `keyExtractor` because this method might duplicate ids that might be in the data.
@@ -9,15 +5,15 @@ var tslib_1 = require("tslib");
9
5
  * @param count Final count of data to be returned from this hook
10
6
  * @returns Multiplied data.
11
7
  */
12
- function useDataMultiplier(data, count) {
13
- var len = data.length;
14
- var arr = new Array(count);
15
- var isObject = false;
8
+ export function useDataMultiplier(data, count) {
9
+ const len = data.length;
10
+ const arr = new Array(count);
11
+ let isObject = false;
16
12
  if (typeof data[0] === "object") {
17
13
  isObject = true;
18
14
  }
19
- for (var i = 0; i < count; i++) {
20
- arr[i] = isObject ? tslib_1.__assign({}, data[i % len]) : data[i % len];
15
+ for (let i = 0; i < count; i++) {
16
+ arr[i] = isObject ? { ...data[i % len] } : data[i % len];
21
17
  }
22
18
  return [arr];
23
19
  }