@@ -14,16 +14,22 @@ import { useLiveQuery } from "dexie-react-hooks";
14
14
import { tagService } from "../../scripts/db/TagService" ;
15
15
import { TagConfig } from "./TagConfig/TagConfig" ;
16
16
import { Input } from "../../common/components/shadcn/input" ;
17
+ import type React from "react" ;
17
18
import { useState } from "react" ;
18
19
import { matchSorter } from "match-sorter" ;
19
20
20
21
export const TagEditor = ( ) => {
22
+ const [ showUsageCount , setShowUsageCount ] = useState ( false ) ;
21
23
const tags = useLiveQuery ( ( ) => {
22
24
return tagService . listTags ( ) ;
23
25
} ) ;
24
26
25
27
const [ filter , setFilter ] = useState ( "" ) ;
26
28
29
+ const handleFilterChange = ( event : React . ChangeEvent < HTMLInputElement > ) => {
30
+ setFilter ( event . target . value ) ;
31
+ } ;
32
+
27
33
const filteredTags = matchSorter ( tags ?? [ ] , filter , {
28
34
keys : [
29
35
"name" ,
@@ -62,26 +68,35 @@ export const TagEditor = () => {
62
68
</ div >
63
69
< div className = "grid grid-cols-[1fr_minmax(400px,_900px)_1fr] gap-4 p-4" >
64
70
< div />
65
- < div className = "grid grid-cols-[300px_1fr] " >
71
+ < div className = "flex justify-between " >
66
72
< label className = "flex justify-center items-center gap-2" >
67
73
Filter:
68
74
< Input
69
75
value = { filter }
70
- onChange = { ( e ) => setFilter ( e . target . value ) }
76
+ onChange = { handleFilterChange }
71
77
/>
72
78
</ label >
79
+ < Button
80
+ variant = { "outline" }
81
+ onClick = { ( e ) =>
82
+ setShowUsageCount ( ! showUsageCount )
83
+ }
84
+ >
85
+ Count usage
86
+ </ Button >
73
87
</ div >
74
88
< div />
75
89
</ div >
76
90
< div className = "grid grid-cols-[1fr_minmax(400px,_900px)_1fr] gap-4 pb-10 overflow-y-auto max-h-96" >
77
91
{ ! tags || tags . length <= 0 ? (
78
92
< div > No tags yet.</ div >
79
93
) : (
80
- < div className = "col-start-2 grid grid-cols-[200px_1fr_180px_100px_100px ]" >
94
+ < div className = "col-start-2 grid grid-cols-[max-content_200px_1fr_180px_100px_100px ]" >
81
95
{ filteredTags . map ( ( tag ) => (
82
96
< TagConfig
83
97
key = { tag . name }
84
98
tag = { tag }
99
+ showUsageCount = { showUsageCount }
85
100
/>
86
101
) ) }
87
102
</ div >
0 commit comments