@wordpress/dataviews 17.1.0 → 17.1.2-next.v.202607070741.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 (96) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/build/components/dataform-controls/select.cjs +0 -1
  3. package/build/components/dataform-controls/select.cjs.map +2 -2
  4. package/build/components/dataform-controls/toggle-group.cjs +0 -1
  5. package/build/components/dataform-controls/toggle-group.cjs.map +2 -2
  6. package/build/components/dataform-controls/utils/relative-date-control.cjs +0 -1
  7. package/build/components/dataform-controls/utils/relative-date-control.cjs.map +2 -2
  8. package/build/components/dataviews-footer/index.cjs +6 -2
  9. package/build/components/dataviews-footer/index.cjs.map +2 -2
  10. package/build/components/dataviews-layouts/grid/preview-size-picker.cjs +0 -1
  11. package/build/components/dataviews-layouts/grid/preview-size-picker.cjs.map +2 -2
  12. package/build/components/dataviews-layouts/list/index.cjs +13 -1
  13. package/build/components/dataviews-layouts/list/index.cjs.map +2 -2
  14. package/build/components/dataviews-layouts/utils/density-picker.cjs +0 -1
  15. package/build/components/dataviews-layouts/utils/density-picker.cjs.map +2 -2
  16. package/build/components/dataviews-layouts/utils/preview-size-picker.cjs +0 -1
  17. package/build/components/dataviews-layouts/utils/preview-size-picker.cjs.map +2 -2
  18. package/build/components/dataviews-pagination/index.cjs +12 -13
  19. package/build/components/dataviews-pagination/index.cjs.map +2 -2
  20. package/build/components/dataviews-view-config/index.cjs +0 -3
  21. package/build/components/dataviews-view-config/index.cjs.map +2 -2
  22. package/build/dataform/index.cjs.map +2 -2
  23. package/build/dataviews/index.cjs.map +2 -2
  24. package/build/dataviews-picker/index.cjs.map +2 -2
  25. package/build/hooks/use-infinite-scroll.cjs +2 -1
  26. package/build/hooks/use-infinite-scroll.cjs.map +2 -2
  27. package/build-module/components/dataform-controls/select.mjs +0 -1
  28. package/build-module/components/dataform-controls/select.mjs.map +2 -2
  29. package/build-module/components/dataform-controls/toggle-group.mjs +0 -1
  30. package/build-module/components/dataform-controls/toggle-group.mjs.map +2 -2
  31. package/build-module/components/dataform-controls/utils/relative-date-control.mjs +0 -1
  32. package/build-module/components/dataform-controls/utils/relative-date-control.mjs.map +2 -2
  33. package/build-module/components/dataviews-footer/index.mjs +9 -3
  34. package/build-module/components/dataviews-footer/index.mjs.map +2 -2
  35. package/build-module/components/dataviews-layouts/grid/preview-size-picker.mjs +0 -1
  36. package/build-module/components/dataviews-layouts/grid/preview-size-picker.mjs.map +2 -2
  37. package/build-module/components/dataviews-layouts/list/index.mjs +13 -1
  38. package/build-module/components/dataviews-layouts/list/index.mjs.map +2 -2
  39. package/build-module/components/dataviews-layouts/utils/density-picker.mjs +0 -1
  40. package/build-module/components/dataviews-layouts/utils/density-picker.mjs.map +2 -2
  41. package/build-module/components/dataviews-layouts/utils/preview-size-picker.mjs +0 -1
  42. package/build-module/components/dataviews-layouts/utils/preview-size-picker.mjs.map +2 -2
  43. package/build-module/components/dataviews-pagination/index.mjs +10 -12
  44. package/build-module/components/dataviews-pagination/index.mjs.map +2 -2
  45. package/build-module/components/dataviews-view-config/index.mjs +0 -3
  46. package/build-module/components/dataviews-view-config/index.mjs.map +2 -2
  47. package/build-module/dataform/index.mjs.map +2 -2
  48. package/build-module/dataviews/index.mjs.map +2 -2
  49. package/build-module/dataviews-picker/index.mjs.map +2 -2
  50. package/build-module/hooks/use-infinite-scroll.mjs +2 -1
  51. package/build-module/hooks/use-infinite-scroll.mjs.map +2 -2
  52. package/build-style/style-rtl.css +9 -2
  53. package/build-style/style.css +9 -2
  54. package/build-types/components/dataform-controls/select.d.ts.map +1 -1
  55. package/build-types/components/dataform-controls/toggle-group.d.ts.map +1 -1
  56. package/build-types/components/dataform-controls/utils/relative-date-control.d.ts.map +1 -1
  57. package/build-types/components/dataviews-footer/index.d.ts +1 -1
  58. package/build-types/components/dataviews-footer/index.d.ts.map +1 -1
  59. package/build-types/components/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
  60. package/build-types/components/dataviews-layouts/list/index.d.ts.map +1 -1
  61. package/build-types/components/dataviews-layouts/utils/density-picker.d.ts.map +1 -1
  62. package/build-types/components/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -1
  63. package/build-types/components/dataviews-pagination/index.d.ts +6 -1
  64. package/build-types/components/dataviews-pagination/index.d.ts.map +1 -1
  65. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  66. package/build-types/dataform/index.d.ts +5 -0
  67. package/build-types/dataform/index.d.ts.map +1 -1
  68. package/build-types/dataviews/index.d.ts +5 -0
  69. package/build-types/dataviews/index.d.ts.map +1 -1
  70. package/build-types/dataviews/stories/async-infinite-scroll.d.ts +8 -0
  71. package/build-types/dataviews/stories/async-infinite-scroll.d.ts.map +1 -0
  72. package/build-types/dataviews/stories/index.story.d.ts +19 -0
  73. package/build-types/dataviews/stories/index.story.d.ts.map +1 -1
  74. package/build-types/dataviews-picker/index.d.ts +5 -0
  75. package/build-types/dataviews-picker/index.d.ts.map +1 -1
  76. package/build-types/hooks/use-infinite-scroll.d.ts.map +1 -1
  77. package/build-wp/index.js +1476 -1227
  78. package/package.json +17 -17
  79. package/src/components/dataform-controls/select.tsx +0 -1
  80. package/src/components/dataform-controls/toggle-group.tsx +0 -1
  81. package/src/components/dataform-controls/utils/relative-date-control.tsx +0 -1
  82. package/src/components/dataviews-footer/index.tsx +27 -26
  83. package/src/components/dataviews-layouts/grid/preview-size-picker.tsx +0 -1
  84. package/src/components/dataviews-layouts/list/index.tsx +14 -2
  85. package/src/components/dataviews-layouts/utils/density-picker.tsx +0 -1
  86. package/src/components/dataviews-layouts/utils/preview-size-picker.tsx +0 -1
  87. package/src/components/dataviews-pagination/index.tsx +82 -78
  88. package/src/components/dataviews-view-config/index.tsx +0 -3
  89. package/src/components/dataviews-view-config/style.scss +0 -1
  90. package/src/dataform/index.tsx +5 -0
  91. package/src/dataviews/index.tsx +5 -0
  92. package/src/dataviews/stories/async-infinite-scroll.tsx +115 -0
  93. package/src/dataviews/stories/index.story.tsx +27 -0
  94. package/src/dataviews/style.scss +5 -1
  95. package/src/dataviews-picker/index.tsx +5 -0
  96. package/src/hooks/use-infinite-scroll.ts +10 -2
@@ -28,6 +28,7 @@ function captureAnchorElement(
28
28
  anchorElementRef: React.MutableRefObject< {
29
29
  posinset: number;
30
30
  viewportOffset: number;
31
+ scrollTop: number;
31
32
  direction: 'up' | 'down' | null;
32
33
  } | null >,
33
34
  direction: 'up' | 'down'
@@ -61,6 +62,7 @@ function captureAnchorElement(
61
62
  anchorElementRef.current = {
62
63
  posinset,
63
64
  viewportOffset: anchorRect.top - containerRect.top,
65
+ scrollTop: container.scrollTop,
64
66
  direction,
65
67
  };
66
68
  return true;
@@ -95,6 +97,7 @@ export function useInfiniteScroll( {
95
97
  const anchorElementRef = useRef< {
96
98
  posinset: number;
97
99
  viewportOffset: number;
100
+ scrollTop: number;
98
101
  direction: 'up' | 'down' | null;
99
102
  } | null >( null );
100
103
  const viewRef = useRef( view );
@@ -174,8 +177,13 @@ export function useInfiniteScroll( {
174
177
  const anchorRect = anchorElement.getBoundingClientRect();
175
178
  const currentOffset = anchorRect.top - containerRect.top;
176
179
 
177
- // Calculate how much the anchor has moved and adjust scroll to compensate
178
- const scrollAdjustment = currentOffset - anchor.viewportOffset;
180
+ // Compensate only for the content shift, not for scrolling the user
181
+ // did during an async load. Adding back the scroll delta since capture
182
+ // keeps the list from snapping back to the capture-time position.
183
+ const scrollAdjustment =
184
+ currentOffset -
185
+ anchor.viewportOffset +
186
+ ( container.scrollTop - anchor.scrollTop );
179
187
 
180
188
  if ( Math.abs( scrollAdjustment ) > 1 ) {
181
189
  container.scrollTop += scrollAdjustment;