forked from 1Hive/gardens-ui
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathTextFilter.js
More file actions
64 lines (57 loc) · 1.39 KB
/
TextFilter.js
File metadata and controls
64 lines (57 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import React from 'react'
import PropTypes from 'prop-types'
import { GU, Popover, SearchInput, useLayout } from '@tecommons/ui'
const TextFilter = React.memo(
({ textFilter, updateTextFilter, placeholder = '' }) => {
const { layoutName } = useLayout()
const compactMode = layoutName === 'small'
return (
<div
css={`
margin-left: ${1.5 * GU}px;
${compactMode && `margin-bottom: ${1.5 * GU}px;`}
`}
>
<SearchInput
value={textFilter}
onChange={updateTextFilter}
placeholder={placeholder}
css={`
width: ${32 * GU}px;
`}
/>
</div>
)
}
)
const TextFilterPopover = ({
textFilter,
updateTextFilter,
visible,
setVisible,
opener,
}) => (
<Popover
visible={visible}
opener={opener}
onClose={() => setVisible(false)}
css={`
padding: ${1.5 * GU}px;
`}
placement="bottom-end"
>
<SearchInput value={textFilter} onChange={updateTextFilter} />
</Popover>
)
TextFilterPopover.propTypes = {
textFilter: PropTypes.string.isRequired,
updateTextFilter: PropTypes.func.isRequired,
opener: PropTypes.object,
visible: PropTypes.bool.isRequired,
setVisible: PropTypes.func.isRequired,
}
TextFilter.propTypes = {
textFilter: PropTypes.string.isRequired,
updateTextFilter: PropTypes.func.isRequired,
}
export default TextFilter