fix(xo-web): handle incorrect filters (#2743)

Fixes #2740
This commit is contained in:
Julien Fontanet 2018-03-09 11:30:22 +01:00 committed by Pierre Donias
parent ef09a42a89
commit 3b21a097ab
2 changed files with 21 additions and 5 deletions

View File

@ -394,11 +394,17 @@ export default class SortedTable extends Component {
}
this._getTotalNumberOfItems = createCounter(getAllItems)
const createMatcher = str => CM.parse(str).createPredicate()
this._getItems = createSort(
createFilter(
getAllItems,
createSelector(() => this.state.filter, createMatcher)
createSelector(
() => this.state.filter,
filter => {
try {
return CM.parse(filter).createPredicate()
} catch (_) {}
}
)
),
createSelector(
() => this._getSelectedColumn().sortCriteria,

View File

@ -511,8 +511,14 @@ export default class Home extends Component {
return
}
const parsed = ComplexMatcher.parse(filter)
const properties = ComplexMatcher.getPropertyClausesStrings(parsed)
let properties
try {
properties = ComplexMatcher.getPropertyClausesStrings(
ComplexMatcher.parse(filter)
)
} catch (_) {
properties = {}
}
const sort = this._getDefaultSort(props)
@ -538,7 +544,11 @@ export default class Home extends Component {
_getParsedFilter = createSelector(
props => this._getFilter(),
filter => ComplexMatcher.parse(filter)
filter => {
try {
return ComplexMatcher.parse(filter)
} catch (_) {}
}
)
_getFilterFunction = createSelector(