1
1
import { useState , useMemo , useCallback } from "preact/hooks" ;
2
- import { createFilter } from "../shared/create-filter" ;
2
+ import { createFilter , FilterModel } from "../shared/create-filter" ;
3
3
4
4
export type FilterSetter = ( value : string ) => void ;
5
5
@@ -22,6 +22,8 @@ export type UseFilter = {
22
22
setIncludeFilter : FilterSetter ;
23
23
setExcludeFilter : FilterSetter ;
24
24
getModuleFilterMultiplier : ( bundleId : string , data : { id : string } ) => number ;
25
+ filterModel : string
26
+ setFilterModel : ( value : FilterModel ) => void
25
27
} ;
26
28
27
29
export const prepareFilter = ( filt : string ) => {
@@ -61,15 +63,17 @@ export const prepareFilter = (filt: string) => {
61
63
) ;
62
64
} ;
63
65
66
+
64
67
export const useFilter = ( ) : UseFilter => {
65
68
const [ includeFilter , setIncludeFilter ] = useState < string > ( "" ) ;
66
69
const [ excludeFilter , setExcludeFilter ] = useState < string > ( "" ) ;
70
+ const [ filterModel , setFilterModel ] = useState < 'glob' | 'regexp' > ( 'glob' )
67
71
68
72
const setIncludeFilterTrottled = useMemo ( ( ) => throttleFilter ( setIncludeFilter , 200 ) , [ ] ) ;
69
73
const setExcludeFilterTrottled = useMemo ( ( ) => throttleFilter ( setExcludeFilter , 200 ) , [ ] ) ;
70
74
71
75
const isIncluded = useMemo (
72
- ( ) => createFilter ( prepareFilter ( includeFilter ) , prepareFilter ( excludeFilter ) ) ,
76
+ ( ) => createFilter ( prepareFilter ( includeFilter ) , prepareFilter ( excludeFilter ) , filterModel ) ,
73
77
[ includeFilter , excludeFilter ] ,
74
78
) ;
75
79
@@ -86,5 +90,7 @@ export const useFilter = (): UseFilter => {
86
90
excludeFilter,
87
91
setExcludeFilter : setExcludeFilterTrottled ,
88
92
setIncludeFilter : setIncludeFilterTrottled ,
93
+ filterModel,
94
+ setFilterModel
89
95
} ;
90
96
} ;
0 commit comments