-
Notifications
You must be signed in to change notification settings - Fork 28
Description
We are utilizing reactivesearch
to query some Elastic data. We are utilizing the showMissing
prop option on several filters that are using MultiList
. Our understanding is that missing/null data is necessary for showMissing
to function and this is all working.
There is also a DataSearch
. Today, I was asked to connect the DataSearch
to more dataFields
and some of those fields are null for some records. For the showMissing
to function, I can't (as far as I know) avoid having these null
values. When I added the additional fields to the DataSearch
's dataFields
, the app would crash as soon as I typed anything into the input.
Stack trace showed it was crashing at the str.replace
in replaceDiacritics
(in suggestions.js) because str
had a value of null
:
function replaceDiacritics(s) {
let str = s ? String(s) : s;
const diacritics = [
/[\300-\306]/g, /[\340-\346]/g, // A, a
/[\310-\313]/g, /[\350-\353]/g, // E, e
/[\314-\317]/g, /[\354-\357]/g, // I, i
/[\322-\330]/g, /[\362-\370]/g, // O, o
/[\331-\334]/g, /[\371-\374]/g, // U, u
/[\321]/g, /[\361]/g, // N, n
/[\307]/g, /[\347]/g, // C, c
];
const chars = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c'];
for (let i = 0; i < diacritics.length; i += 1) {
str = str.replace(diacritics[i], chars[i]); // crash here
}
return str;
}
I won't say this is the best fix, but I put a band-aid on the issue by changing
const populateSuggestionsList = (val, parsedSource, source) => {
// check if the suggestion includes the current value
// and not already included in other suggestions
const isWordMatch = skipWordMatch || currentValue
.....
into
const populateSuggestionsList = (val, parsedSource, source) => {
// check if the suggestion includes the current value
// and not already included in other suggestions
val = val ? val : ''; // new
const isWordMatch = skipWordMatch || currentValue
.....
There may be reasons I'm not aware of that you wouldn't want to support the possibility of autosuggest encountering null
values, but I thought I would open the issue to inquire if this was the intended behavior.