@capillarytech/blaze-ui 1.0.3-alpha.8 → 1.0.3-alpha.9
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.
|
@@ -96,6 +96,15 @@ export interface CapUnifiedSelectProps extends Omit<TreeSelectProps, 'treeData'
|
|
|
96
96
|
* }}
|
|
97
97
|
*/
|
|
98
98
|
onPopupScroll?: () => void;
|
|
99
|
+
/**
|
|
100
|
+
* Indicates whether there are more items available to load via pagination.
|
|
101
|
+
* When false, the component will not show loading state or trigger onPopupScroll when scrolling to bottom.
|
|
102
|
+
* This prevents infinite loading when all items have been exhausted.
|
|
103
|
+
* @default true - Assumes more items are available if not specified
|
|
104
|
+
* @example
|
|
105
|
+
* hasMore={enumData?.hasMore ?? false}
|
|
106
|
+
*/
|
|
107
|
+
hasMore?: boolean;
|
|
99
108
|
/**
|
|
100
109
|
* Enable controlled virtualization for large lists.
|
|
101
110
|
* When true, disables Ant Design's built-in virtualization (virtual prop).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapUnifiedSelect.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/CapUnifiedSelect.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CapUnifiedSelect.d.ts","sourceRoot":"","sources":["../../components/CapUnifiedSelect/CapUnifiedSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -776,7 +776,7 @@ var _CapTooltipWithInfo = _interopRequireDefault(__webpack_require__(2608));
|
|
|
776
776
|
var _constants = __webpack_require__(9788);
|
|
777
777
|
var _styles = _interopRequireDefault(__webpack_require__(8263));
|
|
778
778
|
var _jsxRuntime = __webpack_require__(4848);
|
|
779
|
-
const _excluded = ["type", "options", "value", "onChange", "placeholder", "className", "style", "isError", "errorMessage", "containerClassName", "popoverClassName", "allowClear", "headerLabel", "onUpload", "uploadLabel", "tooltip", "bylineText", "disabled", "showUpload", "customPopupRender", "showSearch", "searchBasedOn", "onSearch", "searchDebounce", "onConfirm", "clearText", "noResultCustomText", "noResultCustomIcon", "readOnly", "staticValue", "onFooterDownloadChange", "onPopupScroll", "enableVirtualization", "virtualRowHeight", "resetSearch", "resetData", "fetchMissingOptions"];
|
|
779
|
+
const _excluded = ["type", "options", "value", "onChange", "placeholder", "className", "style", "isError", "errorMessage", "containerClassName", "popoverClassName", "allowClear", "headerLabel", "onUpload", "uploadLabel", "tooltip", "bylineText", "disabled", "showUpload", "customPopupRender", "showSearch", "searchBasedOn", "onSearch", "searchDebounce", "onConfirm", "clearText", "noResultCustomText", "noResultCustomIcon", "readOnly", "staticValue", "onFooterDownloadChange", "onPopupScroll", "hasMore", "enableVirtualization", "virtualRowHeight", "resetSearch", "resetData", "fetchMissingOptions"];
|
|
780
780
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
781
781
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
782
782
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
@@ -946,6 +946,7 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
946
946
|
staticValue = true,
|
|
947
947
|
onFooterDownloadChange,
|
|
948
948
|
onPopupScroll,
|
|
949
|
+
hasMore = true,
|
|
949
950
|
enableVirtualization = false,
|
|
950
951
|
virtualRowHeight = _constants.DEFAULTS.VIRTUAL_ROW_HEIGHT,
|
|
951
952
|
resetSearch = true,
|
|
@@ -1280,6 +1281,18 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
1280
1281
|
return () => clearTimeout(fallbackTimeout);
|
|
1281
1282
|
}, [isResettingData, options]);
|
|
1282
1283
|
|
|
1284
|
+
// Clear loading state when hasMore becomes false (all items exhausted)
|
|
1285
|
+
(0, _react.useEffect)(() => {
|
|
1286
|
+
if (!hasMore && isLoadingOnScroll) {
|
|
1287
|
+
setIsLoadingOnScroll(false);
|
|
1288
|
+
isScrollProcessingRef.current = false;
|
|
1289
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
1290
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
1291
|
+
scrollLoadingTimeoutRef.current = null;
|
|
1292
|
+
}
|
|
1293
|
+
}
|
|
1294
|
+
}, [hasMore, isLoadingOnScroll]);
|
|
1295
|
+
|
|
1283
1296
|
// Detect when options change after scroll to clear loading overlay
|
|
1284
1297
|
(0, _react.useEffect)(() => {
|
|
1285
1298
|
// Always update refs when options change (when not loading)
|
|
@@ -1831,7 +1844,7 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
1831
1844
|
hasInteractedRef.current = false;
|
|
1832
1845
|
}
|
|
1833
1846
|
setDropdownOpen(open);
|
|
1834
|
-
}, [customPopupRender, value, onChange, tempValue, readOnly, resetSearch, resetData, options]);
|
|
1847
|
+
}, [customPopupRender, value, onChange, tempValue, readOnly, resetSearch, resetData, options, isResettingData]);
|
|
1835
1848
|
const handleFooterDownload = (0, _react.useCallback)(() => {
|
|
1836
1849
|
const currentValues = Array.isArray(tempValue) ? tempValue : tempValue ? [tempValue] : [];
|
|
1837
1850
|
onFooterDownloadChange == null || onFooterDownloadChange(currentValues);
|
|
@@ -1886,6 +1899,13 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
1886
1899
|
// This ensures loading state is managed properly and data loading completes
|
|
1887
1900
|
if (isLoadingOnScroll) return;
|
|
1888
1901
|
|
|
1902
|
+
// Don't trigger if there are no more items to load
|
|
1903
|
+
// This prevents showing loading state when all items are exhausted
|
|
1904
|
+
if (!hasMore) {
|
|
1905
|
+
isScrollProcessingRef.current = false;
|
|
1906
|
+
return;
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1889
1909
|
// Throttle scroll events to prevent rapid-fire API calls
|
|
1890
1910
|
// Clear any existing throttle timeout
|
|
1891
1911
|
if (scrollThrottleTimeoutRef.current) {
|
|
@@ -1899,7 +1919,8 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
1899
1919
|
scrollThrottleTimeoutRef.current = setTimeout(() => {
|
|
1900
1920
|
// Double-check we're still near bottom and not loading
|
|
1901
1921
|
const stillNearBottom = Math.floor(target.scrollHeight - target.scrollTop) <= target.clientHeight;
|
|
1902
|
-
if (
|
|
1922
|
+
// Also check if hasMore is still true (might have changed during throttle delay)
|
|
1923
|
+
if (!stillNearBottom || isLoadingOnScroll || !hasMore) {
|
|
1903
1924
|
isScrollProcessingRef.current = false;
|
|
1904
1925
|
return;
|
|
1905
1926
|
}
|
|
@@ -1948,7 +1969,7 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
1948
1969
|
});
|
|
1949
1970
|
}, _constants.TIMEOUTS.SCROLL_LOADING_TIMEOUT);
|
|
1950
1971
|
}, 150); // 150ms throttle to prevent rapid-fire events
|
|
1951
|
-
}, [onPopupScroll, isLoadingOnScroll]);
|
|
1972
|
+
}, [onPopupScroll, isLoadingOnScroll, hasMore]);
|
|
1952
1973
|
|
|
1953
1974
|
// Setup scroll listener for onPopupScroll
|
|
1954
1975
|
(0, _react.useEffect)(() => {
|
|
@@ -2112,7 +2133,7 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
2112
2133
|
children: "Loading..."
|
|
2113
2134
|
})
|
|
2114
2135
|
})]
|
|
2115
|
-
}), isLoadingOnScroll && onPopupScroll && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
2136
|
+
}), isLoadingOnScroll && onPopupScroll && hasMore && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
2116
2137
|
className: _styles.default['cap-unified-select-loading-overlay'],
|
|
2117
2138
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CapRow.default, {
|
|
2118
2139
|
align: "middle",
|
|
@@ -2169,7 +2190,7 @@ const CapUnifiedSelect = _ref4 => {
|
|
|
2169
2190
|
})
|
|
2170
2191
|
})]
|
|
2171
2192
|
});
|
|
2172
|
-
}, [customPopupRender, filteredTree, searchText, isMulti, showUpload, uploadLabel, handleUpload, noResultCustomText, noResultCustomIcon, options, type, tempValue, handleConfirm, handleClearAll, popoverClassName, className, selectedLeafCount, clearText, allowClear, staticValue, showSearch, onFooterDownloadChange, handleFooterDownload, isSearching, handleSearchChange, handleSearchKeyDown, isLoadingOnScroll, onPopupScroll, isResettingData]);
|
|
2193
|
+
}, [customPopupRender, filteredTree, searchText, isMulti, showUpload, uploadLabel, handleUpload, noResultCustomText, noResultCustomIcon, options, type, tempValue, handleConfirm, handleClearAll, popoverClassName, className, selectedLeafCount, clearText, allowClear, staticValue, showSearch, onFooterDownloadChange, handleFooterDownload, isSearching, handleSearchChange, handleSearchKeyDown, isLoadingOnScroll, onPopupScroll, hasMore, isResettingData]);
|
|
2173
2194
|
const combinedClassName = (0, _react.useMemo)(() => (0, _classnames.default)(containerClassName, _styles.default['cap-unified-tree-select'], {
|
|
2174
2195
|
[_styles.default['cap-unified-tree-select-readonly']]: readOnly
|
|
2175
2196
|
}, className), [containerClassName, className, readOnly]);
|