From 6cf3a578c083dc1066b09ae727407305be10611f Mon Sep 17 00:00:00 2001 From: kolaente Date: Thu, 14 Mar 2024 09:02:57 +0100 Subject: [PATCH] fix(filters): correctly replace values when clicking on an autocomplete result Related https://kolaente.dev/vikunja/vikunja/issues/2194 --- .../src/components/project/partials/FilterInput.vue | 2 +- frontend/src/helpers/filters.test.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/project/partials/FilterInput.vue b/frontend/src/components/project/partials/FilterInput.vue index 518d71033..a3139b3f0 100644 --- a/frontend/src/components/project/partials/FilterInput.vue +++ b/frontend/src/components/project/partials/FilterInput.vue @@ -222,7 +222,7 @@ function handleFieldInput() { autocompleteResults.value = projectStore.searchProject(search) } autocompleteMatchText.value = keyword - autocompleteMatchPosition.value = prefix.length - 1 + keyword.replace(search, '').length + autocompleteMatchPosition.value = match.index + prefix.length - 1 + keyword.replace(search, '').length } } }) diff --git a/frontend/src/helpers/filters.test.ts b/frontend/src/helpers/filters.test.ts index 2a71d9f9f..502362926 100644 --- a/frontend/src/helpers/filters.test.ts +++ b/frontend/src/helpers/filters.test.ts @@ -107,6 +107,16 @@ describe('Filter Transformation', () => { expect(transformed).toBe('project = 1') }) + + it('should resolve project and labels independently', () => { + const transformed = transformFilterStringForApi( + 'project = lorem && labels = ipsum', + multipleDummyResolver, + multipleDummyResolver, + ) + + expect(transformed).toBe('project = 1 && labels = 2') + }) }) describe('To API', () => {