1
|
import { Button, Input, Space } from 'antd';
|
2
|
import { SearchOutlined } from '@ant-design/icons';
|
3
|
import React from 'react';
|
4
|
import { style } from 'dom-helpers';
|
5
|
|
6
|
export const getLocaleProps = () => ({
|
7
|
filterSearchPlaceholder: 'Hledat uživatele',
|
8
|
triggerDesc: 'Seřadit sestupně',
|
9
|
triggerAsc: 'Seřadit vzestupně',
|
10
|
cancelSort: 'Vypnout řazení',
|
11
|
});
|
12
|
|
13
|
const handleSearch = (
|
14
|
selectedKeys: React.SetStateAction<string>[],
|
15
|
confirm: () => void
|
16
|
) => {
|
17
|
confirm();
|
18
|
};
|
19
|
|
20
|
const handleReset = (clearFilters: () => void) => {
|
21
|
clearFilters();
|
22
|
};
|
23
|
|
24
|
export const getColumnSearchProps = (dataIndex: string, searchLabel: string) => ({
|
25
|
// @ts-ignore
|
26
|
filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => (
|
27
|
<div style={{ padding: 8 }}>
|
28
|
<Input
|
29
|
placeholder={`Vyhledat ${searchLabel}`}
|
30
|
value={selectedKeys[0]}
|
31
|
onChange={(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])}
|
32
|
onPressEnter={() => handleSearch(selectedKeys, confirm)}
|
33
|
style={{ marginBottom: 8, display: 'block' }}
|
34
|
/>
|
35
|
<Space>
|
36
|
<Button
|
37
|
type="primary"
|
38
|
onClick={() => handleSearch(selectedKeys, confirm)}
|
39
|
icon={<SearchOutlined />}
|
40
|
style={{ width: 90 }}
|
41
|
>
|
42
|
Hledat
|
43
|
</Button>
|
44
|
<Button onClick={() => handleReset(clearFilters)} style={{ width: 90 }}>
|
45
|
Smazat
|
46
|
</Button>
|
47
|
</Space>
|
48
|
</div>
|
49
|
),
|
50
|
filterIcon: (filtered: any) => (
|
51
|
<SearchOutlined
|
52
|
style={{ color: filtered ? '#1890ff' : '#757575', fontSize: '140%' }}
|
53
|
/>
|
54
|
),
|
55
|
onFilter: (value: string, record: { [x: string]: { toString: () => string } }) =>
|
56
|
record[dataIndex]
|
57
|
? record[dataIndex].toString().toLowerCase().includes(value.toLowerCase())
|
58
|
: '',
|
59
|
});
|