@schema-render/search-table-react
Version:
Conditional search table component.
79 lines (78 loc) • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return useBaseColumns;
}
});
var _corereact = require("@schema-render/core-react");
var _react = require("react");
var _valueTypes = require("../../valueTypes");
var _traverse = require("./helpers/traverse");
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
var mapKeys = _corereact.utils.mapKeys;
function useBaseColumns(param) {
var table = param.table, globalStateRef = param.globalStateRef;
// 原始列数据
var rawColumnsRef = (0, _react.useRef)([]);
var isTabChanging = globalStateRef.current.isTabChanging;
// 更新原始列
(0, _react.useMemo)(function() {
if (!isTabChanging) {
rawColumnsRef.current = table.columns || [];
}
}, [
table.columns,
isTabChanging
]);
// 合并 valueType
var finalValueTypeProcessors = (0, _react.useMemo)(function() {
var processors = _object_spread({}, _valueTypes.BUILT_IN_VALUE_TYPES, table.registerValueType);
// 统一小写化
return mapKeys(processors, function(_, key) {
return key.toLowerCase();
});
}, [
table.registerValueType
]);
var baseColumns = (0, _react.useMemo)(function() {
return (0, _traverse.processRawColumns)(rawColumnsRef.current, table, finalValueTypeProcessors);
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[
rawColumnsRef.current
]);
return {
rawColumns: rawColumnsRef.current,
baseColumns: baseColumns
};
}