@@ -49,6 +49,7 @@ export const AutocompleteDropdown = memo<
49
49
dataSet : dataSetProp ,
50
50
initialValue : initialValueProp ,
51
51
clearOnFocus = true ,
52
+ caseSensitive = false ,
52
53
ignoreAccents = true ,
53
54
trimSearchText = true ,
54
55
editable = true ,
@@ -287,7 +288,13 @@ export const AutocompleteDropdown = memo<
287
288
return
288
289
}
289
290
290
- let findWhat = searchText . toLowerCase ( )
291
+ let findWhat : string
292
+
293
+ if ( caseSensitive ) {
294
+ findWhat = searchText
295
+ } else {
296
+ findWhat = searchText . toLowerCase ( )
297
+ }
291
298
292
299
if ( ignoreAccents ) {
293
300
findWhat = diacriticless ( findWhat )
@@ -297,9 +304,15 @@ export const AutocompleteDropdown = memo<
297
304
findWhat = findWhat . trim ( )
298
305
}
299
306
300
- const newSet = initialDataSet . filter ( item => {
307
+ const newSet = initialDataSet . filter ( ( item : AutocompleteDropdownItem ) => {
301
308
const titleLowercase = ( item . title || '' ) . toLowerCase ( )
302
- const findWhere = ignoreAccents ? diacriticless ( titleLowercase ) : titleLowercase . toLowerCase ( )
309
+ let findWhere : string
310
+
311
+ if ( caseSensitive ) {
312
+ findWhere = ignoreAccents ? diacriticless ( item . title || '' ) : item . title || ''
313
+ } else {
314
+ findWhere = ignoreAccents ? diacriticless ( titleLowercase ) : titleLowercase
315
+ }
303
316
304
317
if ( matchFromStart ) {
305
318
return typeof item . title === 'string' && findWhere . startsWith ( findWhat )
@@ -309,7 +322,7 @@ export const AutocompleteDropdown = memo<
309
322
} )
310
323
311
324
setDataSet ( newSet )
312
- } , [ ignoreAccents , matchFromStart , searchText , trimSearchText , useFilter ] )
325
+ } , [ ignoreAccents , matchFromStart , caseSensitive , searchText , trimSearchText , useFilter ] )
313
326
314
327
const renderItem : ListRenderItem < AutocompleteDropdownItem > = useCallback (
315
328
( { item } ) => {
0 commit comments