sheet-happens 0.0.47 → 0.0.48

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.
@@ -1744,6 +1744,8 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
1744
1744
  var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cellLayout) {
1745
1745
  var newX = offset[0],
1746
1746
  newY = offset[1];
1747
+ var freezeX = freeze[0],
1748
+ freezeY = freeze[1];
1747
1749
  var maxColumns = maxCells[0],
1748
1750
  maxRows = maxCells[1];
1749
1751
  var absoluteToColumn = cellLayout.absoluteToColumn,
@@ -1760,14 +1762,14 @@ var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cel
1760
1762
  scrollH = _getViewExtent$viewpo[1];
1761
1763
 
1762
1764
  if (rightEdge > maxColumns) {
1763
- var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX);
1764
- newX = absoluteToColumn(columnToAbsolute(newX) - scrollW + remainder) + 1;
1765
+ var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX + freezeX);
1766
+ newX = Math.max(0, absoluteToColumn(columnToAbsolute(newX + freezeX) - scrollW + remainder) - freezeX + 1);
1765
1767
  }
1766
1768
 
1767
1769
  if (bottomEdge > maxRows) {
1768
- var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY);
1770
+ var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY + freezeY);
1769
1771
 
1770
- newY = absoluteToRow(rowToAbsolute(newY) - scrollH + _remainder) + 1;
1772
+ newY = Math.max(0, absoluteToRow(rowToAbsolute(newY + freezeY) - scrollH + _remainder) - freezeY + 1);
1771
1773
  }
1772
1774
 
1773
1775
  return [newX, newY];
@@ -1851,20 +1853,25 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
1851
1853
 
1852
1854
  if (!isSameXY(newOffset, offset)) {
1853
1855
  var scroll = cellToAbsolute(newOffset);
1854
-
1855
- var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
1856
- nudgeX = _cellToAbsolute4[0],
1857
- nudgeY = _cellToAbsolute4[1];
1858
-
1859
1856
  callback(newOffset, maxXY(maxScroll, scroll));
1860
1857
  setTimeout(function () {
1861
- var scrollX = scroll[0],
1862
- scrollY = scroll[1];
1863
- element.scrollLeft = scrollX - nudgeX;
1864
- element.scrollTop = scrollY - nudgeY;
1858
+ updateScrollPosition(element, newOffset, cellLayout);
1865
1859
  });
1866
1860
  }
1867
1861
  };
1862
+ var updateScrollPosition = function updateScrollPosition(element, dataOffset, cellLayout) {
1863
+ var cellToAbsolute = cellLayout.cellToAbsolute;
1864
+ var scroll = cellToAbsolute(dataOffset);
1865
+
1866
+ var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
1867
+ nudgeX = _cellToAbsolute4[0],
1868
+ nudgeY = _cellToAbsolute4[1];
1869
+
1870
+ var scrollX = scroll[0],
1871
+ scrollY = scroll[1];
1872
+ element.scrollLeft = scrollX - nudgeX;
1873
+ element.scrollTop = scrollY - nudgeY;
1874
+ };
1868
1875
 
1869
1876
  var useAutoSizeColumn = function useAutoSizeColumn(rows, displayData, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth) {
1870
1877
  var context = useMemo(function () {
@@ -3723,9 +3730,13 @@ var Sheet = forwardRef(function (props, ref) {
3723
3730
  _props$maxRows = props.maxRows,
3724
3731
  maxRows = _props$maxRows === void 0 ? Infinity : _props$maxRows;
3725
3732
  useLayoutEffect(function () {
3733
+ var overlay = overlayRef.current;
3734
+ if (!overlay) return;
3726
3735
  var view = [canvasWidth, canvasHeight];
3727
3736
  var freeze = [freezeColumns, freezeRows];
3728
- setDataOffset(clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout));
3737
+ var newOffset = clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout);
3738
+ setDataOffset(newOffset);
3739
+ updateScrollPosition(overlay, newOffset, cellLayout);
3729
3740
  }, [maxRows, maxColumns]);
3730
3741
  var hitmapRef = useRef(NO_CLICKABLES);
3731
3742
  var isFocused = focused || editMode;