Skip to content

Commit 4d6f551

Browse files
fix: fix crash on invalid search query
1 parent 1ab18ee commit 4d6f551

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/containers/Nodes/Nodes.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from 'react';
22
import PropTypes from 'prop-types';
33
import cn from 'bem-cn-lite';
44
import {connect} from 'react-redux';
5+
import {escapeRegExp} from 'lodash/fp';
56

67
import DataTable from '@yandex-cloud/react-data-table';
78
import {Loader, TextInput, Label} from '@gravity-ui/uikit';
@@ -126,7 +127,7 @@ class Nodes extends React.Component {
126127

127128
let preparedNodes = searchQuery
128129
? nodes.filter((node) => {
129-
const re = new RegExp(searchQuery, 'i');
130+
const re = new RegExp(escapeRegExp(searchQuery), 'i');
130131
return node.Host ? re.test(node.Host) || re.test(String(node.NodeId)) : true;
131132
})
132133
: nodes;

src/containers/Tenant/Diagnostics/Consumers/Consumers.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {useCallback, useEffect, useState} from 'react';
22
import {useDispatch} from 'react-redux';
33
import block from 'bem-cn-lite';
4+
import { escapeRegExp } from 'lodash/fp';
45

56
import DataTable, {Column} from '@yandex-cloud/react-data-table';
67

@@ -73,7 +74,7 @@ export const Consumers = ({path, type}: ConsumersProps) => {
7374
const filterConsumersByName = (search: string) => {
7475
const filteredConsumers = search
7576
? consumers.filter((consumer) => {
76-
const re = new RegExp(search, 'i');
77+
const re = new RegExp(escapeRegExp(search), 'i');
7778
return re.test(consumer.name);
7879
})
7980
: consumers;

src/containers/Tenants/Tenants.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
33
import cn from 'bem-cn-lite';
44
import {connect} from 'react-redux';
55
import _ from 'lodash';
6+
import {escapeRegExp} from 'lodash/fp';
67

78
import DataTable from '@yandex-cloud/react-data-table';
89
import {Loader, TextInput, Button} from '@gravity-ui/uikit';
@@ -125,7 +126,7 @@ class Tenants extends React.Component {
125126
} = this.props;
126127

127128
const filteredTenantsBySearch = tenants.filter((item) => {
128-
const re = new RegExp(searchQuery, 'i');
129+
const re = new RegExp(escapeRegExp(searchQuery), 'i');
129130
return re.test(item.Name) || re.test(this.getControlPlaneValue(item));
130131
});
131132
const filteredTenants = Tenants.filterTenants(filteredTenantsBySearch, filter);

0 commit comments

Comments
 (0)