From a3957151c2e041bbf62607cade6a3a0c335ed616 Mon Sep 17 00:00:00 2001 From: Jeremy Valentine <38669521+valentine195@users.noreply.github.com> Date: Fri, 3 May 2024 15:08:11 -0400 Subject: [PATCH] fix: Fixes error where values specified as a list in a creature were not being filtered correctly in the encounter builder --- src/builder/stores/filter/filter.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/builder/stores/filter/filter.ts b/src/builder/stores/filter/filter.ts index c31d1d1..d951154 100644 --- a/src/builder/stores/filter/filter.ts +++ b/src/builder/stores/filter/filter.ts @@ -122,10 +122,13 @@ const createOptionsFilter: FilterFactory = (filter) => { subscribe, set, reset: () => set([]), - compare: (value: number | string) => { + compare: (value: number | string | Array) => { if (get(isDefault)) return true; if (typeof value === "number") return false; const values = get(store); + if (Array.isArray(value)) { + return value.some((v) => values.includes(v)); + } return values.includes(value); }, update, @@ -211,7 +214,13 @@ function getDerivedFilterOptions( break; } case FilterType.Options: { - options.get(filter).add(creature[field]); + if (Array.isArray(creature[field])) { + for (const value of creature[field]) { + options.get(filter).add(value); + } + } else if (typeof creature[field] === "string") { + options.get(filter).add(creature[field]); + } break; } case FilterType.Search: {