@douyinfe/semi-ui 2.11.0-beta.0 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/anchor/link.tsx +2 -2
- package/autoComplete/index.tsx +3 -3
- package/avatar/interface.ts +2 -2
- package/badge/index.tsx +1 -1
- package/banner/index.tsx +4 -4
- package/breadcrumb/bread-context.tsx +1 -1
- package/card/cardGroup.tsx +1 -1
- package/card/index.tsx +1 -1
- package/cascader/index.tsx +4 -4
- package/collapse/index.tsx +1 -1
- package/collapse/item.tsx +1 -1
- package/collapsible/index.tsx +1 -1
- package/descriptions/item.tsx +1 -1
- package/dist/umd/semi-ui.js +27 -22
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/empty/index.tsx +1 -1
- package/form/errorMessage.tsx +1 -1
- package/form/interface.ts +1 -1
- package/form/label.tsx +1 -1
- package/form/section.tsx +2 -2
- package/form/slot.tsx +1 -1
- package/layout/Sider.tsx +1 -1
- package/lib/cjs/anchor/link.d.ts +2 -2
- package/lib/cjs/autoComplete/index.d.ts +1 -1
- package/lib/cjs/autoComplete/index.js +1 -1
- package/lib/cjs/avatar/interface.d.ts +2 -2
- package/lib/cjs/badge/index.d.ts +1 -1
- package/lib/cjs/banner/index.d.ts +4 -4
- package/lib/cjs/breadcrumb/bread-context.d.ts +1 -1
- package/lib/cjs/card/cardGroup.d.ts +1 -1
- package/lib/cjs/card/index.d.ts +1 -1
- package/lib/cjs/cascader/index.d.ts +1 -1
- package/lib/cjs/collapse/index.d.ts +1 -1
- package/lib/cjs/collapse/item.d.ts +1 -1
- package/lib/cjs/collapsible/index.d.ts +1 -1
- package/lib/cjs/descriptions/item.d.ts +1 -1
- package/lib/cjs/empty/index.d.ts +1 -1
- package/lib/cjs/form/errorMessage.d.ts +1 -1
- package/lib/cjs/form/interface.d.ts +1 -1
- package/lib/cjs/form/label.d.ts +1 -1
- package/lib/cjs/form/section.d.ts +2 -2
- package/lib/cjs/form/slot.d.ts +1 -1
- package/lib/cjs/layout/Sider.d.ts +1 -1
- package/lib/cjs/list/index.d.ts +1 -1
- package/lib/cjs/list/item.d.ts +1 -1
- package/lib/cjs/modal/Modal.d.ts +5 -5
- package/lib/cjs/modal/ModalContent.d.ts +1 -1
- package/lib/cjs/modal/confirm.d.ts +4 -2
- package/lib/cjs/modal/useModal/index.d.ts +16 -23
- package/lib/cjs/navigation/Footer.d.ts +1 -1
- package/lib/cjs/navigation/Item.d.ts +1 -1
- package/lib/cjs/radio/radioGroup.d.ts +1 -1
- package/lib/cjs/select/index.d.ts +1 -1
- package/lib/cjs/select/index.js +27 -24
- package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -1
- package/lib/cjs/table/HeadTable.d.ts +2 -1
- package/lib/cjs/table/HeadTable.js +2 -1
- package/lib/cjs/table/Table.js +2 -0
- package/lib/cjs/table/interface.d.ts +1 -1
- package/lib/cjs/timeline/index.d.ts +1 -1
- package/lib/cjs/timeline/item.d.ts +1 -1
- package/lib/es/anchor/link.d.ts +2 -2
- package/lib/es/autoComplete/index.d.ts +1 -1
- package/lib/es/autoComplete/index.js +1 -1
- package/lib/es/avatar/interface.d.ts +2 -2
- package/lib/es/badge/index.d.ts +1 -1
- package/lib/es/banner/index.d.ts +4 -4
- package/lib/es/breadcrumb/bread-context.d.ts +1 -1
- package/lib/es/card/cardGroup.d.ts +1 -1
- package/lib/es/card/index.d.ts +1 -1
- package/lib/es/cascader/index.d.ts +1 -1
- package/lib/es/collapse/index.d.ts +1 -1
- package/lib/es/collapse/item.d.ts +1 -1
- package/lib/es/collapsible/index.d.ts +1 -1
- package/lib/es/descriptions/item.d.ts +1 -1
- package/lib/es/empty/index.d.ts +1 -1
- package/lib/es/form/errorMessage.d.ts +1 -1
- package/lib/es/form/interface.d.ts +1 -1
- package/lib/es/form/label.d.ts +1 -1
- package/lib/es/form/section.d.ts +2 -2
- package/lib/es/form/slot.d.ts +1 -1
- package/lib/es/layout/Sider.d.ts +1 -1
- package/lib/es/list/index.d.ts +1 -1
- package/lib/es/list/item.d.ts +1 -1
- package/lib/es/modal/Modal.d.ts +5 -5
- package/lib/es/modal/ModalContent.d.ts +1 -1
- package/lib/es/modal/confirm.d.ts +4 -2
- package/lib/es/modal/confirm.js +1 -1
- package/lib/es/modal/useModal/index.d.ts +16 -23
- package/lib/es/navigation/Footer.d.ts +1 -1
- package/lib/es/navigation/Item.d.ts +1 -1
- package/lib/es/radio/radioGroup.d.ts +1 -1
- package/lib/es/select/index.d.ts +1 -1
- package/lib/es/select/index.js +23 -21
- package/lib/es/sideSheet/SideSheetContent.d.ts +1 -1
- package/lib/es/table/HeadTable.d.ts +2 -1
- package/lib/es/table/HeadTable.js +2 -1
- package/lib/es/table/Table.js +2 -0
- package/lib/es/table/interface.d.ts +1 -1
- package/lib/es/timeline/index.d.ts +1 -1
- package/lib/es/timeline/item.d.ts +1 -1
- package/list/index.tsx +1 -1
- package/list/item.tsx +1 -1
- package/modal/Modal.tsx +7 -7
- package/modal/ModalContent.tsx +1 -1
- package/modal/confirm.tsx +10 -11
- package/modal/useModal/index.tsx +9 -1
- package/navigation/Footer.tsx +2 -2
- package/navigation/Item.tsx +1 -1
- package/package.json +9 -9
- package/radio/radioGroup.tsx +1 -1
- package/select/index.tsx +4 -2
- package/sideSheet/SideSheetContent.tsx +1 -1
- package/table/HeadTable.tsx +3 -1
- package/table/Table.tsx +2 -0
- package/table/_story/v2/FixedOnHeaderRow/index.jsx +134 -0
- package/table/_story/v2/index.js +2 -1
- package/table/interface.ts +1 -1
- package/timeline/index.tsx +1 -1
- package/timeline/item.tsx +1 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import React, { useState, useMemo, useEffect } from 'react';
|
|
2
|
+
import { Table, Avatar, Toast } from '@douyinfe/semi-ui';
|
|
3
|
+
import * as dateFns from 'date-fns';
|
|
4
|
+
|
|
5
|
+
App.storyName = 'fix onHeaderRow';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* test with cypress
|
|
9
|
+
*/
|
|
10
|
+
export default function App() {
|
|
11
|
+
const [dataSource, setData] = useState([]);
|
|
12
|
+
const DAY = 24 * 60 * 60 * 1000;
|
|
13
|
+
const figmaIconUrl = 'https://lf3-static.bytednsdoc.com/obj/eden-cn/ptlz_zlp/ljhwZthlaukjlkulzlp/figma-icon.png';
|
|
14
|
+
|
|
15
|
+
const columns = [
|
|
16
|
+
{
|
|
17
|
+
title: '标题',
|
|
18
|
+
dataIndex: 'name',
|
|
19
|
+
fixed: true,
|
|
20
|
+
width: 250,
|
|
21
|
+
render: (text, record, index) => {
|
|
22
|
+
return (
|
|
23
|
+
<div>
|
|
24
|
+
<Avatar size="small" shape="square" src={figmaIconUrl} style={{ marginRight: 12 }}></Avatar>
|
|
25
|
+
{text}
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
},
|
|
29
|
+
filters: [
|
|
30
|
+
{
|
|
31
|
+
text: 'Semi Design 设计稿',
|
|
32
|
+
value: 'Semi Design 设计稿',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
text: 'Semi Pro 设计稿',
|
|
36
|
+
value: 'Semi Pro 设计稿',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
onFilter: (value, record) => record.name.includes(value),
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: '大小',
|
|
43
|
+
dataIndex: 'size',
|
|
44
|
+
width: 200,
|
|
45
|
+
sorter: (a, b) => (a.size - b.size > 0 ? 1 : -1),
|
|
46
|
+
render: text => `${text} KB`,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: '所有者',
|
|
50
|
+
dataIndex: 'owner',
|
|
51
|
+
width: 200,
|
|
52
|
+
render: (text, record, index) => {
|
|
53
|
+
return (
|
|
54
|
+
<div>
|
|
55
|
+
<Avatar size="small" color={record.avatarBg} style={{ marginRight: 4 }}>
|
|
56
|
+
{typeof text === 'string' && text.slice(0, 1)}
|
|
57
|
+
</Avatar>
|
|
58
|
+
{text}
|
|
59
|
+
</div>
|
|
60
|
+
);
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: '更新日期',
|
|
65
|
+
dataIndex: 'updateTime',
|
|
66
|
+
width: 200,
|
|
67
|
+
sorter: (a, b) => (a.updateTime - b.updateTime > 0 ? 1 : -1),
|
|
68
|
+
render: value => {
|
|
69
|
+
return dateFns.format(new Date(value), 'yyyy-MM-dd');
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: '',
|
|
74
|
+
dataIndex: 'operate',
|
|
75
|
+
fixed: 'right',
|
|
76
|
+
align: 'center',
|
|
77
|
+
width: 100,
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const scroll = useMemo(() => ({ y: 300, x: 1200 }), []);
|
|
82
|
+
const rowSelection = useMemo(
|
|
83
|
+
() => ({
|
|
84
|
+
onChange: (selectedRowKeys, selectedRows) => {
|
|
85
|
+
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
|
|
86
|
+
},
|
|
87
|
+
getCheckboxProps: record => ({
|
|
88
|
+
disabled: record.name === 'Michael James', // Column configuration not to be checked
|
|
89
|
+
name: record.name,
|
|
90
|
+
}),
|
|
91
|
+
fixed: true,
|
|
92
|
+
}),
|
|
93
|
+
[]
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
const getData = () => {
|
|
97
|
+
const data = [];
|
|
98
|
+
for (let i = 0; i < 46; i++) {
|
|
99
|
+
const isSemiDesign = i % 2 === 0;
|
|
100
|
+
const randomNumber = (i * 1000) % 199;
|
|
101
|
+
data.push({
|
|
102
|
+
key: '' + i,
|
|
103
|
+
name: isSemiDesign ? `Semi Design 设计稿${i}.fig` : `Semi Pro 设计稿${i}.fig`,
|
|
104
|
+
owner: isSemiDesign ? '姜鹏志' : '郝宣',
|
|
105
|
+
size: randomNumber,
|
|
106
|
+
updateTime: new Date().valueOf() + randomNumber * DAY,
|
|
107
|
+
avatarBg: isSemiDesign ? 'grey' : 'red',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return data;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
const data = getData();
|
|
115
|
+
setData(data);
|
|
116
|
+
}, []);
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<Table
|
|
120
|
+
onHeaderRow={(columns, index) => {
|
|
121
|
+
return {
|
|
122
|
+
onClick: event => {
|
|
123
|
+
console.log(event);
|
|
124
|
+
Toast.info('header click');
|
|
125
|
+
}, // 点击表头行
|
|
126
|
+
};
|
|
127
|
+
}}
|
|
128
|
+
columns={columns}
|
|
129
|
+
dataSource={dataSource}
|
|
130
|
+
rowSelection={rowSelection}
|
|
131
|
+
scroll={scroll}
|
|
132
|
+
/>
|
|
133
|
+
);
|
|
134
|
+
}
|
package/table/_story/v2/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export { default as FixedZIndex } from './FixedZIndex';
|
|
|
4
4
|
export { default as FixedHeaderMerge } from './FixedHeaderMerge';
|
|
5
5
|
export { default as FixedResizable } from './FixedResizable';
|
|
6
6
|
export { default as FixedExpandedRow } from './FixedExpandedRow';
|
|
7
|
-
export { default as FixedMemoryLeak } from './FixedMemoryLeak';
|
|
7
|
+
export { default as FixedMemoryLeak } from './FixedMemoryLeak';
|
|
8
|
+
export { default as FixedOnHeaderRow } from './FixedOnHeaderRow';
|
package/table/interface.ts
CHANGED
|
@@ -240,7 +240,7 @@ export type RowSelectionOnSelect<RecordType> = (
|
|
|
240
240
|
nativeEvent?: React.MouseEvent
|
|
241
241
|
) => void;
|
|
242
242
|
export type RowSelectionOnSelectAll<RecordType> = (selected?: boolean, selectedRows?: RecordType[], changedRows?: RecordType[]) => void;
|
|
243
|
-
export type ExpandIcon = ((expanded?: boolean) => React.ReactNode) | React.ReactNode
|
|
243
|
+
export type ExpandIcon = ((expanded?: boolean) => React.ReactNode) | React.ReactNode;
|
|
244
244
|
export type ExpandedRowRender<RecordType> = (record?: RecordType, index?: number, expanded?: boolean) => React.ReactNode;
|
|
245
245
|
export type Footer<RecordType> = ReactNode | ((pageData?: RecordType[]) => React.ReactNode);
|
|
246
246
|
export type FormatPageText = ((pageInfo?: { currentStart?: number; currentEnd?: number; total?: number }) => React.ReactNode) | boolean;
|
package/timeline/index.tsx
CHANGED
|
@@ -17,7 +17,7 @@ export interface TimelineProps extends Pick<React.AriaAttributes, 'aria-label'>
|
|
|
17
17
|
className?: string;
|
|
18
18
|
style?: React.CSSProperties;
|
|
19
19
|
dataSource?: Data[];
|
|
20
|
-
children?: React.ReactNode
|
|
20
|
+
children?: React.ReactNode;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const prefixCls = cssClasses.PREFIX;
|
package/timeline/item.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import '@douyinfe/semi-foundation/timeline/timeline.scss';
|
|
|
7
7
|
|
|
8
8
|
export interface TimelineItemProps {
|
|
9
9
|
color?: string;
|
|
10
|
-
children?: React.ReactNode
|
|
10
|
+
children?: React.ReactNode;
|
|
11
11
|
time?: React.ReactNode;
|
|
12
12
|
type?: 'default' | 'ongoing' | 'success' | 'warning' | 'error';
|
|
13
13
|
dot?: React.ReactNode;
|