11import { useState , useMemo , useCallback } from "preact/hooks" ;
2- import { createFilter } from "../shared/create-filter" ;
2+ import { createFilter , FilterModel } from "../shared/create-filter" ;
33
44export type FilterSetter = ( value : string ) => void ;
55
@@ -22,6 +22,8 @@ export type UseFilter = {
2222 setIncludeFilter : FilterSetter ;
2323 setExcludeFilter : FilterSetter ;
2424 getModuleFilterMultiplier : ( bundleId : string , data : { id : string } ) => number ;
25+ filterModel : string
26+ setFilterModel : ( value : FilterModel ) => void
2527} ;
2628
2729export const prepareFilter = ( filt : string ) => {
@@ -61,15 +63,17 @@ export const prepareFilter = (filt: string) => {
6163 ) ;
6264} ;
6365
66+
6467export const useFilter = ( ) : UseFilter => {
6568 const [ includeFilter , setIncludeFilter ] = useState < string > ( "" ) ;
6669 const [ excludeFilter , setExcludeFilter ] = useState < string > ( "" ) ;
70+ const [ filterModel , setFilterModel ] = useState < 'glob' | 'regexp' > ( 'glob' )
6771
6872 const setIncludeFilterTrottled = useMemo ( ( ) => throttleFilter ( setIncludeFilter , 200 ) , [ ] ) ;
6973 const setExcludeFilterTrottled = useMemo ( ( ) => throttleFilter ( setExcludeFilter , 200 ) , [ ] ) ;
7074
7175 const isIncluded = useMemo (
72- ( ) => createFilter ( prepareFilter ( includeFilter ) , prepareFilter ( excludeFilter ) ) ,
76+ ( ) => createFilter ( prepareFilter ( includeFilter ) , prepareFilter ( excludeFilter ) , filterModel ) ,
7377 [ includeFilter , excludeFilter ] ,
7478 ) ;
7579
@@ -86,5 +90,7 @@ export const useFilter = (): UseFilter => {
8690 excludeFilter,
8791 setExcludeFilter : setExcludeFilterTrottled ,
8892 setIncludeFilter : setIncludeFilterTrottled ,
93+ filterModel,
94+ setFilterModel
8995 } ;
9096} ;
0 commit comments