@@ -73,6 +73,7 @@ import { api, rolesApi } from '../../../state/backend-api';
7373import { AclRequestDefault } from '../../../state/rest-interfaces' ;
7474import { Features } from '../../../state/supported-features' ;
7575import { uiState } from '../../../state/ui-state' ;
76+ import { getSearchRegex } from '../../../utils/regex' ;
7677import { Code as CodeEl , DefaultSkeleton } from '../../../utils/tsx-utils' ;
7778import { FeatureLicenseNotification } from '../../license/feature-license-notification' ;
7879import { NullFallbackBoundary } from '../../misc/null-fallback-boundary' ;
@@ -284,17 +285,10 @@ const PermissionsListTab = () => {
284285 }
285286
286287 const usersFiltered = users . filter ( ( u ) => {
287- const filter = searchQuery ;
288- if ( ! filter ) {
288+ if ( ! searchQuery ) {
289289 return true ;
290290 }
291-
292- try {
293- const quickSearchRegExp = new RegExp ( filter , 'i' ) ;
294- return u . name . match ( quickSearchRegExp ) ;
295- } catch {
296- return false ;
297- }
291+ return u . name . match ( getSearchRegex ( searchQuery ) ) ;
298292 } ) ;
299293
300294 return (
@@ -384,17 +378,10 @@ const UsersTab = ({ isAdminApiConfigured }: { isAdminApiConfigured: boolean }) =
384378 } ) ) ;
385379
386380 const usersFiltered = users . filter ( ( u ) => {
387- const filter = searchQuery ;
388- if ( ! filter ) {
381+ if ( ! searchQuery ) {
389382 return true ;
390383 }
391-
392- try {
393- const quickSearchRegExp = new RegExp ( filter , 'i' ) ;
394- return u . name . match ( quickSearchRegExp ) ;
395- } catch {
396- return false ;
397- }
384+ return u . name . match ( getSearchRegex ( searchQuery ) ) ;
398385 } ) ;
399386
400387 if ( isError && error ) {
@@ -568,16 +555,10 @@ const RolesTab = () => {
568555 const [ searchQuery , setSearchQuery ] = useState ( '' ) ;
569556
570557 const roles = ( rolesApi . roles ?? [ ] ) . filter ( ( u ) => {
571- const filter = searchQuery ;
572- if ( ! filter ) {
558+ if ( ! searchQuery ) {
573559 return true ;
574560 }
575- try {
576- const quickSearchRegExp = new RegExp ( filter , 'i' ) ;
577- return u . match ( quickSearchRegExp ) ;
578- } catch {
579- return false ;
580- }
561+ return u . match ( getSearchRegex ( searchQuery ) ) ;
581562 } ) ;
582563
583564 const rolesWithMembers = roles . map ( ( r ) => {
@@ -730,11 +711,8 @@ const AclsTab = (_: { principalGroups: AclPrincipalGroup[] }) => {
730711
731712 let groups = principalGroups ?. filter ( ( g ) => g . principalType === 'User' ) || [ ] ;
732713
733- try {
734- const quickSearchRegExp = new RegExp ( searchQuery , 'i' ) ;
735- groups = groups ?. filter ( ( aclGroup ) => aclGroup . principalName . match ( quickSearchRegExp ) ) ;
736- } catch ( _e ) {
737- // Invalid regex, skip filtering
714+ if ( searchQuery ) {
715+ groups = groups . filter ( ( aclGroup ) => aclGroup . principalName . match ( getSearchRegex ( searchQuery ) ) ) ;
738716 }
739717
740718 if ( isError && error ) {
0 commit comments