Browse Source

Found another input that was tied to a regexp

Hugo Häggmark 7 years ago
parent
commit
130eedc4ae

+ 3 - 4
public/app/core/components/RegExpSafeInput/RegExpSafeInput.tsx

@@ -1,9 +1,8 @@
-import React, { ChangeEvent, forwardRef } from 'react';
+import React, { forwardRef } from 'react';
 
 const specialChars = ['(', '[', '{', '}', ']', ')', '|', '*', '+', '-', '.', '?', '<', '>', '#', '&', '^', '$'];
 
-export const escapeStringForRegex = (event: ChangeEvent<HTMLInputElement>) => {
-  const value = event.target.value;
+export const escapeStringForRegex = (value: string) => {
   if (!value) {
     return value;
   }
@@ -42,7 +41,7 @@ export const RegExpSafeInput = forwardRef<HTMLInputElement, Props>((props, ref)
     type="text"
     className={props.className}
     value={unEscapeStringFromRegex(props.value)}
-    onChange={event => props.onChange(escapeStringForRegex(event))}
+    onChange={event => props.onChange(escapeStringForRegex(event.target.value))}
     placeholder={props.placeholder ? props.placeholder : null}
   />
 ));

+ 2 - 1
public/app/core/components/TagFilter/TagFilter.tsx

@@ -5,6 +5,7 @@ import AsyncSelect from '@torkelo/react-select/lib/Async';
 import { TagOption } from './TagOption';
 import { TagBadge } from './TagBadge';
 import { components } from '@torkelo/react-select';
+import { escapeStringForRegex } from '../RegExpSafeInput/RegExpSafeInput';
 
 export interface Props {
   tags: string[];
@@ -51,7 +52,7 @@ export class TagFilter extends React.Component<Props, any> {
       value: tags,
       styles: resetSelectStyles(),
       filterOption: (option, searchQuery) => {
-        const regex = RegExp(searchQuery, 'i');
+        const regex = RegExp(escapeStringForRegex(searchQuery), 'i');
         return regex.test(option.value);
       },
       components: {