UNPKG

@arco-design/web-react

Version:

Arco Design React UI Library.

44 lines (43 loc) 2.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var classNames_1 = __importDefault(require("../../_util/classNames")); var is_1 = require("../../_util/is"); // get sticky cell's className function useStickyClassNames(groupColumns, columns, prefixCls) { var colFixed = columns.map(function (c) { return c.fixed; }); function getClassNameFromColumn(column, index) { var _a; return (0, classNames_1.default)((_a = {}, _a[prefixCls + "-col-fixed-left"] = column.fixed === 'left', _a[prefixCls + "-col-fixed-right"] = column.fixed === 'right', _a[prefixCls + "-col-fixed-left-last"] = column.fixed === 'left' && ((0, is_1.isObject)(columns[index + 1]) ? columns[index + 1].fixed !== 'left' : true), _a[prefixCls + "-col-fixed-right-first"] = column.fixed === 'right' && ((0, is_1.isObject)(columns[index - 1]) ? columns[index - 1].fixed !== 'right' : true), _a)); } var stickyClassNames = (0, react_1.useMemo)(function () { return columns.map(function (column, index) { return getClassNameFromColumn(column, index); }); }, [colFixed.join('-')]); var groupStickyClassNames = (0, react_1.useMemo)(function () { return groupColumns.map(function (gc) { return gc.map(function (column, i) { var index = i; var columnIndex = column.$$columnIndex; if (Array.isArray(columnIndex) && columnIndex.length === 2) { index = column.fixed === 'right' ? columnIndex[0] : columnIndex[1]; } else if (typeof columnIndex === 'number') { index = columnIndex; } return getClassNameFromColumn(column, index); }); }); }, [groupColumns.map(function (c) { return "|" + c.map(function (a) { return a.fixed || 'undefined'; }).join('-') + "|"; }).join('_')]); return [groupStickyClassNames, stickyClassNames]; } exports.default = useStickyClassNames;