Skip to content

Commit 14dd1e9

Browse files
authored
feat(AccessCodeTable): add search (#192)
1 parent f681e47 commit 14dd1e9

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/lib/ui/AccessCodeTable/AccessCodeTable.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { TableCell } from 'lib/ui/Table/TableCell.js'
1919
import { TableHeader } from 'lib/ui/Table/TableHeader.js'
2020
import { TableRow } from 'lib/ui/Table/TableRow.js'
2121
import { TableTitle } from 'lib/ui/Table/TableTitle.js'
22+
import { SearchTextField } from 'lib/ui/TextField/SearchTextField.js'
2223
import { Caption } from 'lib/ui/typography/Caption.js'
2324
import { Title } from 'lib/ui/typography/Title.js'
2425

@@ -38,6 +39,7 @@ export function AccessCodeTable(
3839
const [selectedAccessCode, selectAccessCode] = useState<AccessCode | null>(
3940
null
4041
)
42+
const [searchTerm, setSearchTerm] = useState('')
4143

4244
if (selectedAccessCode != null) {
4345
return (
@@ -54,16 +56,31 @@ export function AccessCodeTable(
5456
return null
5557
}
5658

59+
const filteredCodes = accessCodes.filter((accessCode) => {
60+
if (searchTerm === '') {
61+
return true
62+
}
63+
64+
return new RegExp(searchTerm, 'i').test(accessCode.name ?? '')
65+
})
66+
67+
const accessCodeCount = accessCodes.length
68+
5769
return (
5870
<div className='seam-access-code-table'>
5971
<ContentHeader onBack={onBack} />
6072
<TableHeader>
6173
<TableTitle>
62-
{t.accessCodes} <Caption>({accessCodes.length})</Caption>
74+
{t.accessCodes} <Caption>({accessCodeCount})</Caption>
6375
</TableTitle>
76+
<SearchTextField
77+
value={searchTerm}
78+
onChange={setSearchTerm}
79+
disabled={accessCodeCount === 0}
80+
/>
6481
</TableHeader>
6582
<TableBody>
66-
<Body accessCodes={accessCodes} selectAccessCode={selectAccessCode} />
83+
<Body accessCodes={filteredCodes} selectAccessCode={selectAccessCode} />
6784
</TableBody>
6885
</div>
6986
)

src/styles/_access-code-table.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
@mixin all {
44
.seam-access-code-table {
5+
.seam-search-text-field {
6+
width: 170px;
7+
}
8+
59
.seam-table-row {
610
cursor: pointer;
711

0 commit comments

Comments
 (0)