@@ -48,6 +48,24 @@ export const UserHandleFilter: FC = () => {
48
48
mapValuesToTokens ( settings . filterIncludeHandles ) ,
49
49
) ;
50
50
51
+ const addIncludeHandlesToken = (
52
+ event :
53
+ | React . KeyboardEvent < HTMLInputElement >
54
+ | React . FocusEvent < HTMLInputElement > ,
55
+ ) => {
56
+ const value = ( event . target as HTMLInputElement ) . value . trim ( ) ;
57
+
58
+ if ( value . length > 0 && ! includeHandles . some ( ( v ) => v . text === value ) ) {
59
+ setIncludeHandles ( [
60
+ ...includeHandles ,
61
+ { id : includeHandles . length , text : value } ,
62
+ ] ) ;
63
+ updateFilter ( 'filterIncludeHandles' , value as UserHandle , true ) ;
64
+
65
+ ( event . target as HTMLInputElement ) . value = '' ;
66
+ }
67
+ } ;
68
+
51
69
const removeIncludeHandleToken = ( tokenId : string | number ) => {
52
70
const value = includeHandles . find ( ( v ) => v . id === tokenId ) ?. text || '' ;
53
71
updateFilter ( 'filterIncludeHandles' , value as UserHandle , false ) ;
@@ -58,29 +76,33 @@ export const UserHandleFilter: FC = () => {
58
76
const includeHandlesKeyDown = (
59
77
event : React . KeyboardEvent < HTMLInputElement > ,
60
78
) => {
61
- const value = ( event . target as HTMLInputElement ) . value . trim ( ) ;
79
+ if ( tokenEvents . includes ( event . key ) ) {
80
+ addIncludeHandlesToken ( event ) ;
81
+ }
82
+ } ;
62
83
63
- if (
64
- tokenEvents . includes ( event . key ) &&
65
- ! includeHandles . some ( ( v ) => v . text === value ) &&
66
- value . length > 0
67
- ) {
68
- event . preventDefault ( ) ;
84
+ const [ excludeHandles , setExcludeHandles ] = useState < InputToken [ ] > (
85
+ mapValuesToTokens ( settings . filterExcludeHandles ) ,
86
+ ) ;
69
87
70
- setIncludeHandles ( [
71
- ...includeHandles ,
72
- { id : includeHandles . length , text : value } ,
88
+ const addExcludeHandlesToken = (
89
+ event :
90
+ | React . KeyboardEvent < HTMLInputElement >
91
+ | React . FocusEvent < HTMLInputElement > ,
92
+ ) => {
93
+ const value = ( event . target as HTMLInputElement ) . value . trim ( ) ;
94
+
95
+ if ( value . length > 0 && ! excludeHandles . some ( ( v ) => v . text === value ) ) {
96
+ setExcludeHandles ( [
97
+ ...excludeHandles ,
98
+ { id : excludeHandles . length , text : value } ,
73
99
] ) ;
74
- updateFilter ( 'filterIncludeHandles ' , value as UserHandle , true ) ;
100
+ updateFilter ( 'filterExcludeHandles ' , value as UserHandle , true ) ;
75
101
76
102
( event . target as HTMLInputElement ) . value = '' ;
77
103
}
78
104
} ;
79
105
80
- const [ excludeHandles , setExcludeHandles ] = useState < InputToken [ ] > (
81
- mapValuesToTokens ( settings . filterExcludeHandles ) ,
82
- ) ;
83
-
84
106
const removeExcludeHandleToken = ( tokenId : string | number ) => {
85
107
const value = excludeHandles . find ( ( v ) => v . id === tokenId ) ?. text || '' ;
86
108
updateFilter ( 'filterExcludeHandles' , value as UserHandle , false ) ;
@@ -91,22 +113,8 @@ export const UserHandleFilter: FC = () => {
91
113
const excludeHandlesKeyDown = (
92
114
event : React . KeyboardEvent < HTMLInputElement > ,
93
115
) => {
94
- const value = ( event . target as HTMLInputElement ) . value . trim ( ) ;
95
-
96
- if (
97
- tokenEvents . includes ( event . key ) &&
98
- ! excludeHandles . some ( ( v ) => v . text === value ) &&
99
- value . length > 0
100
- ) {
101
- event . preventDefault ( ) ;
102
-
103
- setExcludeHandles ( [
104
- ...excludeHandles ,
105
- { id : excludeHandles . length , text : value } ,
106
- ] ) ;
107
- updateFilter ( 'filterExcludeHandles' , value as UserHandle , true ) ;
108
-
109
- ( event . target as HTMLInputElement ) . value = '' ;
116
+ if ( tokenEvents . includes ( event . key ) ) {
117
+ addExcludeHandlesToken ( event ) ;
110
118
}
111
119
} ;
112
120
@@ -146,6 +154,7 @@ export const UserHandleFilter: FC = () => {
146
154
tokens = { includeHandles }
147
155
onTokenRemove = { removeIncludeHandleToken }
148
156
onKeyDown = { includeHandlesKeyDown }
157
+ onBlur = { addIncludeHandlesToken }
149
158
size = "small"
150
159
disabled = {
151
160
! settings . detailedNotifications ||
@@ -172,6 +181,7 @@ export const UserHandleFilter: FC = () => {
172
181
tokens = { excludeHandles }
173
182
onTokenRemove = { removeExcludeHandleToken }
174
183
onKeyDown = { excludeHandlesKeyDown }
184
+ onBlur = { addExcludeHandlesToken }
175
185
size = "small"
176
186
disabled = {
177
187
! settings . detailedNotifications ||
0 commit comments