Parcourir la source

fix(table): resolve some ts error (#235)

走鹃 il y a 4 ans
Parent
commit
49dd3e8264

+ 9 - 2
packages/semi-foundation/table/foundation.ts

@@ -102,7 +102,14 @@ export interface TableAdapter<RecordType> extends DefaultAdapter {
 }
 
 class TableFoundation<RecordType> extends BaseFoundation<TableAdapter<RecordType>> {
-    memoizedWithFnsColumns: (queries: BaseColumnProps<RecordType>[], cachedColumns: BaseColumnProps<RecordType>[]) => BaseColumnProps<RecordType>[];
+    memoizedWithFnsColumns: (
+        queries: BaseColumnProps<RecordType>[], 
+        cachedColumns: BaseColumnProps<RecordType>[], 
+        rowSelectionUpdate: boolean, 
+        hideExpandedColumn: boolean,
+        scrollbarColumnUpdate: boolean | string | number,
+        bodyHasScrollBar: boolean,
+    ) => BaseColumnProps<RecordType>[];
     memoizedFilterColumns: (columns: BaseColumnProps<RecordType>[], ignoreKeys?: string[]) => BaseColumnProps<RecordType>[];
     memoizedFlattenFnsColumns: (columns: BaseColumnProps<RecordType>[], childrenColumnName?: string) => BaseColumnProps<RecordType>[];
     memoizedPagination: (pagination: BasePagination) => BasePagination;
@@ -214,7 +221,7 @@ class TableFoundation<RecordType> extends BaseFoundation<TableAdapter<RecordType
      * @param {object} queries
      * @returns {{dataSource: RecordType[], groups: Map<string, Set<string>>, pagination: object, disabledRowKeys: string[], queries: BaseColumnProps[], allRowKeys: string[]}}
      */
-    getCurrentPageData(dataSource: RecordType[], pagination?: BasePagination, queries?: BaseColumnProps<RecordType>[]) {
+    getCurrentPageData(dataSource?: RecordType[], pagination?: BasePagination, queries?: BaseColumnProps<RecordType>[]) {
         const filteredSortedDataSource = this._adapter.getCachedFilteredSortedDataSource();
         dataSource = dataSource == null ? [...filteredSortedDataSource] : dataSource;
         pagination =

+ 2 - 0
packages/semi-ui/table/ColumnFilter.tsx

@@ -137,6 +137,8 @@ export interface ColumnFilterProps {
     filterDropdown?: React.ReactElement;
     renderFilterDropdown?: (props: RenderDropdownProps, options: { iconElem: React.ReactNode }) => React.ReactElement;
     filterDropdownProps?: DropdownProps;
+    onFilterDropdownVisibleChange?: OnFilterDropdownVisibleChange;
+    onSelect?: (data: OnSelectData) => void;
 }
 
 export default function ColumnFilter(props: ColumnFilterProps = {}): React.ReactElement {

+ 9 - 3
packages/semi-ui/table/Table.tsx

@@ -555,7 +555,7 @@ class Table<RecordType extends Record<string, any>> extends BaseComponent<Normal
                 pagination: statePagination = null,
                 dataSource: stateDataSource = null,
             } = states;
-            const handledProps: Partial<NormalTableState<RecordType>> = this.foundation.getCurrentPageData(stateDataSource, statePagination, stateQueries);
+            const handledProps: Partial<NormalTableState<RecordType>> = this.foundation.getCurrentPageData(stateDataSource, statePagination as TablePaginationProps, stateQueries);
 
             // After the pager is updated, reset allRowKeys of the current page
             this.adapter.setAllRowKeys(handledProps.allRowKeys);
@@ -614,7 +614,7 @@ class Table<RecordType extends Record<string, any>> extends BaseComponent<Normal
         }
     };
 
-    _invokeColumnFn = (key: string | number, funcName: string, ...args: any[]) => {
+    _invokeColumnFn = (key: string, funcName: string, ...args: any[]) => {
         if (key && funcName) {
             const column = this.foundation.getQuery(key);
             const func = get(column, funcName, null);
@@ -643,10 +643,15 @@ class Table<RecordType extends Record<string, any>> extends BaseComponent<Normal
 
     getColumns = (columns: ColumnProps<RecordType>[], children: ReactNode) => (!Array.isArray(columns) || !columns || !columns.length ? getColumns(children) : columns);
 
+    // @ts-ignore
     getCellWidths = (...args: any[]) => this.foundation.getCellWidths(...args);
+    // @ts-ignore
     setHeadWidths = (...args: any[]) => this.foundation.setHeadWidths(...args);
+    // @ts-ignore
     getHeadWidths = (...args: any[]) => this.foundation.getHeadWidths(...args);
+    // @ts-ignore
     mergedRowExpandable = (...args: any[]) => this.foundation.mergedRowExpandable(...args);
+    // @ts-ignore
     setBodyHasScrollbar = (...args: any[]) => this.foundation.setBodyHasScrollbar(...args);
 
     handleWheel = (event: React.WheelEvent<HTMLDivElement>) => {
@@ -858,7 +863,7 @@ class Table<RecordType extends Record<string, any>> extends BaseComponent<Normal
         const key =
             typeof groupKey === 'string' || typeof groupKey === 'number' ?
                 groupKey :
-                this.foundation.getRecordKey(record);
+                this.foundation.getRecordKey(record as RecordType);
 
         return (
             <ExpandedIcon
@@ -871,6 +876,7 @@ class Table<RecordType extends Record<string, any>> extends BaseComponent<Normal
         );
     };
 
+    // @ts-ignore
     handleRowExpanded = (...args: any[]) => this.foundation.handleRowExpanded(...args);
 
     normalizeExpandColumn = (props: { prefixCls?: string; expandCellFixed?: ArrayElement<typeof strings.FIXED_SET>; expandIcon?: ExpandIcon } = {}) => {