UNPKG

@cainiaofe/cn-ui-m

Version:
42 lines (41 loc) 1.34 kB
import { useMemo } from 'react'; import { withCache } from "../cn-picker/with-cache"; export function generateColumnsExtend(rawColumns, val) { var columns = withCache(function () { var c = typeof rawColumns === 'function' ? rawColumns(val) : rawColumns; return c.map(function (column) { return column.map(function (item) { if (typeof item === 'string') { return { label: item, value: item, }; } else { return item; } }); }); }); var items = withCache(function () { return val.map(function (v, index) { var _a; var column = columns()[index]; if (!column) return null; return (_a = column.find(function (item) { return item.value === v; })) !== null && _a !== void 0 ? _a : null; }); }); var extend = { get columns() { return columns(); }, get items() { return items(); }, }; return extend; } export function useColumnsExtend(rawColumns, value) { return useMemo(function () { return generateColumnsExtend(rawColumns, value); }, [rawColumns, value]); }