UNPKG

tdesign-react

Version:
34 lines (33 loc) 1.85 kB
/** * important info: only resize happened, th width calculating allowed * 验证场景:多级表头调整叶子结点列宽、吸顶表头调整列宽、列数量发生变化、表格未超出、表格已超出 * - 固定列,调整列宽,需要更新固定位置;右侧固定列,调整列宽,需特殊处理 * - 当表格内容没有超出时,即没有出现横向滚动条时,此时认为表格有足够的列宽呈现内容,修改宽度为相邻宽度调整 * - 当表格内容超出,出现横向滚动条时,会自动调整当前列宽和表格总列宽,不影响相邻列宽 */ import React, { MutableRefObject } from 'react'; import { BaseTableCol, TableRowData, TdBaseTableProps } from '../type'; export default function useColumnResize(params: { isWidthOverflow: boolean; tableContentRef: MutableRefObject<HTMLDivElement>; showColumnShadow: { left: boolean; right: boolean; }; getThWidthList: (type?: 'default' | 'calculate') => { [colKeys: string]: number; }; updateThWidthList: (data: { [colKeys: string]: number; }) => void; setTableElmWidth: (width: number) => void; updateTableAfterColumnResize: () => void; onColumnResizeChange: TdBaseTableProps['onColumnResizeChange']; }): { resizeLineRef: React.MutableRefObject<HTMLDivElement>; resizeLineStyle: React.CSSProperties; onColumnMouseover: (e: React.MouseEvent<HTMLTableHeaderCellElement, MouseEvent>, col: BaseTableCol<TableRowData>) => void; onColumnMousedown: (e: React.MouseEvent<HTMLTableHeaderCellElement, MouseEvent>, col: BaseTableCol<TableRowData>, index: number) => void; setEffectColMap: (nodes: BaseTableCol<TableRowData>[], parent: BaseTableCol<TableRowData> | null) => void; updateTableWidthOnColumnChange: (colKeys: string[]) => void; };