@sheinx/base 3.8.0-beta.27 → 3.8.0-beta.29

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":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,QAAA,MAAM,IAAI,+GAqNT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,QAAA,MAAM,IAAI,+GAiQT,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/cjs/list/list.js CHANGED
@@ -110,7 +110,7 @@ var List = function List(props) {
110
110
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
111
111
  className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.row,
112
112
  style: {
113
- height: props.fixed ? lineHeight : 'auto'
113
+ height: props.fixed && !props.dynamicHeight ? lineHeight : 'auto'
114
114
  },
115
115
  children: columnData.map(function (item, rowIndex) {
116
116
  var index = rowIndex + columnIndex * colNum;
@@ -118,6 +118,35 @@ var List = function List(props) {
118
118
  })
119
119
  }, columnIndex);
120
120
  });
121
+ var DynamicRow = function DynamicRow(_ref) {
122
+ var columnData = _ref.columnData,
123
+ columnIndex = _ref.columnIndex,
124
+ setRowHeight = _ref.setRowHeight;
125
+ var rowRef = (0, _react.useRef)(null);
126
+ (0, _react.useLayoutEffect)(function () {
127
+ if (rowRef.current && setRowHeight) {
128
+ var rect = rowRef.current.getBoundingClientRect();
129
+ if (rect.height > 0) {
130
+ setRowHeight(columnIndex, rect.height);
131
+ }
132
+ }
133
+ });
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
135
+ ref: rowRef,
136
+ className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.row,
137
+ children: columnData.map(function (item, rowIndex) {
138
+ var index = rowIndex + columnIndex * colNum;
139
+ return renderItem(item, index);
140
+ })
141
+ });
142
+ };
143
+ var renderDynamicColumn = (0, _hooks.usePersistFn)(function (columnData, columnIndex, _relativeIndex, setRowHeight) {
144
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(DynamicRow, {
145
+ columnData: columnData,
146
+ columnIndex: columnIndex,
147
+ setRowHeight: setRowHeight
148
+ }, columnIndex);
149
+ });
121
150
  var loadingPosition = props.loadingPosition || 'center';
122
151
  var renderCenterLoading = function renderCenterLoading() {
123
152
  if (!props.loading || loadingPosition !== 'center') return null;
@@ -176,27 +205,30 @@ var List = function List(props) {
176
205
  });
177
206
  var renderList = function renderList() {
178
207
  if (isEmpty) return null;
179
- if (props.fixed) return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
180
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_virtualScroll.VirtualScrollList, {
181
- data: columnData,
182
- renderItem: renderColumn,
183
- lineHeight: lineHeight,
184
- rowsInView: rowsInView,
185
- onScroll: handleVirtualScroll,
186
- height: 'auto',
187
- style: {
188
- flex: '1',
189
- minHeight: '0',
190
- display: 'flex'
191
- },
192
- scrollerStyle: {
193
- flex: 1,
194
- minHeight: 0,
195
- minWidth: 0,
196
- overflow: 'auto'
197
- }
198
- }), renderFooter()]
199
- });
208
+ if (props.fixed) {
209
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
210
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_virtualScroll.VirtualScrollList, {
211
+ data: columnData,
212
+ renderItem: props.dynamicHeight ? renderDynamicColumn : renderColumn,
213
+ lineHeight: lineHeight,
214
+ rowsInView: rowsInView,
215
+ onScroll: handleVirtualScroll,
216
+ height: 'auto',
217
+ style: {
218
+ flex: '1',
219
+ minHeight: '0',
220
+ display: 'flex'
221
+ },
222
+ scrollerStyle: {
223
+ flex: 1,
224
+ minHeight: 0,
225
+ minWidth: 0,
226
+ overflow: 'auto'
227
+ },
228
+ dynamicVirtual: props.dynamicHeight
229
+ }), renderFooter()]
230
+ });
231
+ }
200
232
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
201
233
  className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.scrollContainer,
202
234
  onScroll: handleListScroll,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import type { KeygenType, ObjectKey } from '@sheinx/hooks';
3
3
  import { CommonType } from '../common/type';
4
4
  import { PaginationProps, PaginationJssStyle } from '../pagination/pagination.type';
@@ -79,6 +79,13 @@ export interface ListProps<DataItem, Value> extends Pick<CommonType, 'className'
79
79
  * @default false
80
80
  */
81
81
  fixed?: boolean;
82
+ /**
83
+ * @en enable dynamic height virtual list (requires fixed=true)
84
+ * @cn 启用不定高虚拟列表 (需要设置 fixed=true)
85
+ * @default false
86
+ * @version 3.8.0
87
+ */
88
+ dynamicHeight?: boolean;
82
89
  /**
83
90
  * @en list height
84
91
  * @cn 列表高度
@@ -1 +1 @@
1
- {"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,QAAA,MAAM,IAAI,+GAqNT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,QAAA,MAAM,IAAI,+GAiQT,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/esm/list/list.js CHANGED
@@ -9,7 +9,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
9
9
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
10
  import { usePersistFn, util, usePaginationList, useListSelectMultiple, useInputAble } from '@sheinx/hooks';
11
11
  import classNames from 'classnames';
12
- import { useMemo } from 'react';
12
+ import { useMemo, useLayoutEffect, useRef } from 'react';
13
13
  import React from 'react';
14
14
  import { VirtualScrollList } from "../virtual-scroll";
15
15
  import Pagination from "../pagination";
@@ -104,7 +104,7 @@ var List = function List(props) {
104
104
  return /*#__PURE__*/_jsx("div", {
105
105
  className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.row,
106
106
  style: {
107
- height: props.fixed ? lineHeight : 'auto'
107
+ height: props.fixed && !props.dynamicHeight ? lineHeight : 'auto'
108
108
  },
109
109
  children: columnData.map(function (item, rowIndex) {
110
110
  var index = rowIndex + columnIndex * colNum;
@@ -112,6 +112,35 @@ var List = function List(props) {
112
112
  })
113
113
  }, columnIndex);
114
114
  });
115
+ var DynamicRow = function DynamicRow(_ref) {
116
+ var columnData = _ref.columnData,
117
+ columnIndex = _ref.columnIndex,
118
+ setRowHeight = _ref.setRowHeight;
119
+ var rowRef = useRef(null);
120
+ useLayoutEffect(function () {
121
+ if (rowRef.current && setRowHeight) {
122
+ var rect = rowRef.current.getBoundingClientRect();
123
+ if (rect.height > 0) {
124
+ setRowHeight(columnIndex, rect.height);
125
+ }
126
+ }
127
+ });
128
+ return /*#__PURE__*/_jsx("div", {
129
+ ref: rowRef,
130
+ className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.row,
131
+ children: columnData.map(function (item, rowIndex) {
132
+ var index = rowIndex + columnIndex * colNum;
133
+ return renderItem(item, index);
134
+ })
135
+ });
136
+ };
137
+ var renderDynamicColumn = usePersistFn(function (columnData, columnIndex, _relativeIndex, setRowHeight) {
138
+ return /*#__PURE__*/_jsx(DynamicRow, {
139
+ columnData: columnData,
140
+ columnIndex: columnIndex,
141
+ setRowHeight: setRowHeight
142
+ }, columnIndex);
143
+ });
115
144
  var loadingPosition = props.loadingPosition || 'center';
116
145
  var renderCenterLoading = function renderCenterLoading() {
117
146
  if (!props.loading || loadingPosition !== 'center') return null;
@@ -170,27 +199,30 @@ var List = function List(props) {
170
199
  });
171
200
  var renderList = function renderList() {
172
201
  if (isEmpty) return null;
173
- if (props.fixed) return /*#__PURE__*/_jsxs(_Fragment, {
174
- children: [/*#__PURE__*/_jsx(VirtualScrollList, {
175
- data: columnData,
176
- renderItem: renderColumn,
177
- lineHeight: lineHeight,
178
- rowsInView: rowsInView,
179
- onScroll: handleVirtualScroll,
180
- height: 'auto',
181
- style: {
182
- flex: '1',
183
- minHeight: '0',
184
- display: 'flex'
185
- },
186
- scrollerStyle: {
187
- flex: 1,
188
- minHeight: 0,
189
- minWidth: 0,
190
- overflow: 'auto'
191
- }
192
- }), renderFooter()]
193
- });
202
+ if (props.fixed) {
203
+ return /*#__PURE__*/_jsxs(_Fragment, {
204
+ children: [/*#__PURE__*/_jsx(VirtualScrollList, {
205
+ data: columnData,
206
+ renderItem: props.dynamicHeight ? renderDynamicColumn : renderColumn,
207
+ lineHeight: lineHeight,
208
+ rowsInView: rowsInView,
209
+ onScroll: handleVirtualScroll,
210
+ height: 'auto',
211
+ style: {
212
+ flex: '1',
213
+ minHeight: '0',
214
+ display: 'flex'
215
+ },
216
+ scrollerStyle: {
217
+ flex: 1,
218
+ minHeight: 0,
219
+ minWidth: 0,
220
+ overflow: 'auto'
221
+ },
222
+ dynamicVirtual: props.dynamicHeight
223
+ }), renderFooter()]
224
+ });
225
+ }
194
226
  return /*#__PURE__*/_jsxs("div", {
195
227
  className: listClasses === null || listClasses === void 0 ? void 0 : listClasses.scrollContainer,
196
228
  onScroll: handleListScroll,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import type { KeygenType, ObjectKey } from '@sheinx/hooks';
3
3
  import { CommonType } from '../common/type';
4
4
  import { PaginationProps, PaginationJssStyle } from '../pagination/pagination.type';
@@ -79,6 +79,13 @@ export interface ListProps<DataItem, Value> extends Pick<CommonType, 'className'
79
79
  * @default false
80
80
  */
81
81
  fixed?: boolean;
82
+ /**
83
+ * @en enable dynamic height virtual list (requires fixed=true)
84
+ * @cn 启用不定高虚拟列表 (需要设置 fixed=true)
85
+ * @default false
86
+ * @version 3.8.0
87
+ */
88
+ dynamicHeight?: boolean;
82
89
  /**
83
90
  * @en list height
84
91
  * @cn 列表高度
@@ -1 +1 @@
1
- {"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/base",
3
- "version": "3.8.0-beta.27",
3
+ "version": "3.8.0-beta.29",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "module": "./esm/index.js",
11
11
  "typings": "./cjs/index.d.ts",
12
12
  "dependencies": {
13
- "@sheinx/hooks": "3.8.0-beta.27",
13
+ "@sheinx/hooks": "3.8.0-beta.29",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"