UNPKG

@schema-render/search-table-react

Version:
79 lines (78 loc) 2.52 kB
"use strict"; 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 }; }