Skip to content

Commit

Permalink
fix(table): resolve props.filterIcon not work (#3422)
Browse files Browse the repository at this point in the history
* fix(table): resolve props.filterIcon not work

* chore: fix
  • Loading branch information
liweijie0812 authored and uyarn committed Dec 16, 2024
1 parent 9784490 commit fc18fcc
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 1 deletion.
50 changes: 50 additions & 0 deletions src/table/__tests__/base.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -563,5 +563,55 @@ TABLES.forEach((TTable) => {
expect(wrapper.find('.t-table__top-content').text()).toBe(topContentText);
});
});
describe(':props.filterIcon', () => {
it('props.filterIcon could be function', async () => {
const filterIconText = () => '筛';
const filterColumns = SIMPLE_COLUMNS.map((item) => ({
...item,
filter: { type: 'single', list: [{ label: 1, value: 2 }] },
}));

const wrapper = mount({
render() {
return <TTable filterIcon={filterIconText} rowKey="index" data={data} columns={filterColumns}></TTable>;
},
});

if (TTable.name === 'TBaseTable') {
expect(wrapper.find('.t-table__filter-icon').exists()).toBeFalsy();
} else {
expect(wrapper.find('.t-table__filter-icon').exists()).toBeTruthy();
expect(wrapper.find('.t-table__filter-icon').text()).toBe(filterIconText());
}
});

it('slots.filter-icon works fine', () => {
const filterIconText = (rowKey) => `筛${rowKey}`;
const filterColumns = SIMPLE_COLUMNS.map((item) => ({
...item,
filter: { type: 'single', list: [{ label: 1, value: 2 }] },
}));
const wrapper = mount({
render() {
return (
<TTable
scopedSlots={{ filterIcon: (col, colIndex) => filterIconText(col.col.colKey) }}
rowKey="index"
data={data}
columns={filterColumns}
></TTable>
);
},
});
if (TTable.name === 'TBaseTable') {
expect(wrapper.find('.t-table__filter-icon').exists()).toBeFalsy();
} else {
expect(wrapper.find('.t-table__filter-icon').exists()).toBeTruthy();
SIMPLE_COLUMNS.forEach((item, index) => {
expect(wrapper.findAll('.t-table__filter-icon').at(index).text()).toBe(filterIconText(item.colKey));
});
}
});
});
});
});
4 changes: 3 additions & 1 deletion src/table/filter-controller.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Input from '../input';
import TButton from '../button';
import { useTNodeDefault } from '../hooks/tnode';
import { useGlobalIcon } from '../hooks/useGlobalIcon';
import { PrimaryTableCol, FilterValue } from './type';
import { PrimaryTableCol, FilterValue, TdPrimaryTableProps } from './type';
import { useConfig } from '../config-provider/useConfig';
import log from '../_common/js/log';
import { AttachNode } from '../common';
Expand Down Expand Up @@ -46,6 +46,7 @@ export interface TableFilterControllerProps {
primaryTableElement: HTMLDivElement;
popupProps: PopupProps;
attach?: AttachNode;
filterIcon?: TdPrimaryTableProps['filterIcon'];
}

export default defineComponent({
Expand All @@ -62,6 +63,7 @@ export default defineComponent({
popupProps: Object as PropType<TableFilterControllerProps['popupProps']>,
attach: [String, Function] as PropType<TableFilterControllerProps['attach']>,
locale: Object,
filterIcon: [Function] as PropType<TableFilterControllerProps['filterIcon']>,
},

setup(props, { emit }) {
Expand Down

0 comments on commit fc18fcc

Please sign in to comment.