@sheinx/hooks 3.9.3-beta.14 → 3.9.3-beta.16

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.
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC9C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBA6EkC,MAAM;;;;;CA+EvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC9C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBA6EkC,MAAM;;;;;CAoGvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -131,7 +131,7 @@ var useColumns = function useColumns(props) {
131
131
  sum += curCol.width || 100;
132
132
  if (scrollLeft < sum) {
133
133
  // 计算可视区域内需要渲染的列数
134
- for (var j = i + 1; j < len; j++) {
134
+ for (var j = i + 1; j <= len; j++) {
135
135
  var _props$scrollRef$curr;
136
136
  var nextCol = middleColumns[j];
137
137
  sum += nextCol.width || 100;
@@ -140,6 +140,11 @@ var useColumns = function useColumns(props) {
140
140
  var visibleCount = j - i;
141
141
  setRenderedCount(Math.min(visibleCount + overscan * 2, len));
142
142
  break;
143
+ } else if (j === len) {
144
+ // 到达最后一列
145
+ var _visibleCount = j - i + 1;
146
+ setRenderedCount(Math.min(_visibleCount + overscan * 2, len));
147
+ break;
143
148
  }
144
149
  }
145
150
 
@@ -158,14 +163,14 @@ var useColumns = function useColumns(props) {
158
163
  });
159
164
  }, []);
160
165
  (0, _react.useEffect)(function () {
161
- var _props$scrollRef$curr2;
162
166
  if (!props.virtualColumn) return;
163
- if (((_props$scrollRef$curr2 = props.scrollRef.current) === null || _props$scrollRef$curr2 === void 0 ? void 0 : _props$scrollRef$curr2.scrollLeft) === 0) {
167
+ if (props.scrollRef.current) {
168
+ var _props$scrollRef$curr2;
164
169
  handleScroll({
165
- scrollLeft: 0
170
+ scrollLeft: (_props$scrollRef$curr2 = props.scrollRef.current) === null || _props$scrollRef$curr2 === void 0 ? void 0 : _props$scrollRef$curr2.scrollLeft
166
171
  });
167
172
  }
168
- }, [(_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length]);
173
+ }, [(_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length, columns]);
169
174
  var processedColumns = (0, _react.useMemo)(function () {
170
175
  if (!props.virtualColumn) return columns;
171
176
  return columns.map(function (col, index) {
@@ -174,14 +179,21 @@ var useColumns = function useColumns(props) {
174
179
  }
175
180
  if (index < startIndex || index > startIndex + renderedCount) {
176
181
  var colSpan;
182
+ var colSpanWidth;
177
183
  if (index > startIndex + renderedCount && index === startIndex + renderedCount + 1) {
178
184
  colSpan = function colSpan() {
179
- return middleColumns.length - (startIndex + renderedCount) + 1;
185
+ return middleColumns.length - index;
180
186
  };
187
+ colSpanWidth = middleColumns.slice(index).reduce(function (sum, c) {
188
+ return sum + (c.width || 0);
189
+ }, 0);
181
190
  } else if (index < startIndex && index === leftFixedColumns.length && startIndex > 0) {
182
191
  colSpan = function colSpan() {
183
192
  return startIndex;
184
193
  };
194
+ colSpanWidth = middleColumns.slice(0, startIndex).reduce(function (sum, c) {
195
+ return sum + (c.width || 0);
196
+ }, 0);
185
197
  }
186
198
  var hiddenTitle = context.groupLevel > 0 ? col.title : null;
187
199
  return _objectSpread(_objectSpread({}, col), {}, {
@@ -189,7 +201,10 @@ var useColumns = function useColumns(props) {
189
201
  render: function render() {
190
202
  return null;
191
203
  },
192
- title: hiddenTitle
204
+ title: hiddenTitle,
205
+ style: {
206
+ width: colSpanWidth
207
+ }
193
208
  });
194
209
  }
195
210
  return col;
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC9C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBA6EkC,MAAM;;;;;CA+EvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-table-columns.d.ts","sourceRoot":"","sources":["use-table-columns.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,MAAM,WAAW,eAAe,CAAC,IAAI;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC9C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACzC;AAYD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,GAAG,IAAI,CAAC;AAKT,QAAA,MAAM,UAAU;;;;wBA6EkC,MAAM;;;;;CAoGvD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -124,7 +124,7 @@ var useColumns = function useColumns(props) {
124
124
  sum += curCol.width || 100;
125
125
  if (scrollLeft < sum) {
126
126
  // 计算可视区域内需要渲染的列数
127
- for (var j = i + 1; j < len; j++) {
127
+ for (var j = i + 1; j <= len; j++) {
128
128
  var _props$scrollRef$curr;
129
129
  var nextCol = middleColumns[j];
130
130
  sum += nextCol.width || 100;
@@ -133,6 +133,11 @@ var useColumns = function useColumns(props) {
133
133
  var visibleCount = j - i;
134
134
  setRenderedCount(Math.min(visibleCount + overscan * 2, len));
135
135
  break;
136
+ } else if (j === len) {
137
+ // 到达最后一列
138
+ var _visibleCount = j - i + 1;
139
+ setRenderedCount(Math.min(_visibleCount + overscan * 2, len));
140
+ break;
136
141
  }
137
142
  }
138
143
 
@@ -151,14 +156,14 @@ var useColumns = function useColumns(props) {
151
156
  });
152
157
  }, []);
153
158
  useEffect(function () {
154
- var _props$scrollRef$curr2;
155
159
  if (!props.virtualColumn) return;
156
- if (((_props$scrollRef$curr2 = props.scrollRef.current) === null || _props$scrollRef$curr2 === void 0 ? void 0 : _props$scrollRef$curr2.scrollLeft) === 0) {
160
+ if (props.scrollRef.current) {
161
+ var _props$scrollRef$curr2;
157
162
  handleScroll({
158
- scrollLeft: 0
163
+ scrollLeft: (_props$scrollRef$curr2 = props.scrollRef.current) === null || _props$scrollRef$curr2 === void 0 ? void 0 : _props$scrollRef$curr2.scrollLeft
159
164
  });
160
165
  }
161
- }, [(_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length]);
166
+ }, [(_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length, columns]);
162
167
  var processedColumns = useMemo(function () {
163
168
  if (!props.virtualColumn) return columns;
164
169
  return columns.map(function (col, index) {
@@ -167,14 +172,21 @@ var useColumns = function useColumns(props) {
167
172
  }
168
173
  if (index < startIndex || index > startIndex + renderedCount) {
169
174
  var colSpan;
175
+ var colSpanWidth;
170
176
  if (index > startIndex + renderedCount && index === startIndex + renderedCount + 1) {
171
177
  colSpan = function colSpan() {
172
- return middleColumns.length - (startIndex + renderedCount) + 1;
178
+ return middleColumns.length - index;
173
179
  };
180
+ colSpanWidth = middleColumns.slice(index).reduce(function (sum, c) {
181
+ return sum + (c.width || 0);
182
+ }, 0);
174
183
  } else if (index < startIndex && index === leftFixedColumns.length && startIndex > 0) {
175
184
  colSpan = function colSpan() {
176
185
  return startIndex;
177
186
  };
187
+ colSpanWidth = middleColumns.slice(0, startIndex).reduce(function (sum, c) {
188
+ return sum + (c.width || 0);
189
+ }, 0);
178
190
  }
179
191
  var hiddenTitle = context.groupLevel > 0 ? col.title : null;
180
192
  return _objectSpread(_objectSpread({}, col), {}, {
@@ -182,7 +194,10 @@ var useColumns = function useColumns(props) {
182
194
  render: function render() {
183
195
  return null;
184
196
  },
185
- title: hiddenTitle
197
+ title: hiddenTitle,
198
+ style: {
199
+ width: colSpanWidth
200
+ }
186
201
  });
187
202
  }
188
203
  return col;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.9.3-beta.14",
3
+ "version": "3.9.3-beta.16",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",