From 1aca0f7ed145d1c189489eaf017eb5a78c77423f Mon Sep 17 00:00:00 2001 From: Spythere Date: Sun, 14 Apr 2024 21:33:57 +0200 Subject: [PATCH] fix(wiki): crashing input regex --- src/components/tabs/WikiListTab.vue | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/components/tabs/WikiListTab.vue b/src/components/tabs/WikiListTab.vue index 033abdb..4094bfd 100644 --- a/src/components/tabs/WikiListTab.vue +++ b/src/components/tabs/WikiListTab.vue @@ -124,6 +124,25 @@ export default defineComponent({ this.previewVehicle(vehicle); }, + filterVehicles(v: IVehicle) { + if (this.searchedVehicleTypeName) + return v.type + .toLocaleLowerCase() + .includes(this.searchedVehicleTypeName.toLocaleLowerCase()); + + switch (this.filterType) { + case 'vehicles-all': + return true; + case 'vehicles-traction': + return isTractionUnit(v); + case 'vehicles-wagon': + return !isTractionUnit(v); + + default: + return false; + } + }, + sortVehicles(v1: IVehicle, v2: IVehicle) { const direction = this.sorterDirection == 'asc' ? 1 : -1; @@ -160,15 +179,7 @@ export default defineComponent({ computed: { computedVehicles() { - return this.store.vehicleDataList - .filter( - (vehicle) => - new RegExp(`${this.searchedVehicleTypeName.trim()}`, 'i').test(vehicle.type) && - (this.filterType == 'vehicles-all' || - (this.filterType == 'vehicles-traction' && isTractionUnit(vehicle)) || - (this.filterType == 'vehicles-wagon' && !isTractionUnit(vehicle))) - ) - .sort((v1, v2) => this.sortVehicles(v1, v2)); + return this.store.vehicleDataList.filter(this.filterVehicles).sort(this.sortVehicles); }, areTractionVehiclesShown() {