From e23f9d822b211614b530530995d80f76fb1001da Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins <matiss@mja.lv> Date: Tue, 4 Apr 2023 21:17:47 +0100 Subject: [PATCH] :bug: normalize value when switching between single/multi select (#855) Closes #779 Normalize the input value when switching between single/multi select fields. Most visible when using the "notes" field filter. --- .../src/components/accounts/Filters.js | 17 ++++++++++++++++- upcoming-release-notes/855.md | 6 ++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 upcoming-release-notes/855.md diff --git a/packages/desktop-client/src/components/accounts/Filters.js b/packages/desktop-client/src/components/accounts/Filters.js index b0a552258..036642186 100644 --- a/packages/desktop-client/src/components/accounts/Filters.js +++ b/packages/desktop-client/src/components/accounts/Filters.js @@ -244,7 +244,7 @@ function ConfigureField({ field={field} subfield={subfield} type={type === 'id' && op === 'contains' ? 'string' : type} - value={value} + value={normalizeValue(value, op === 'oneOf')} multi={op === 'oneOf'} style={{ marginTop: 10 }} onChange={v => dispatch({ type: 'set-value', value: v })} @@ -530,3 +530,18 @@ export function AppliedFilters({ filters, editingFilter, onUpdate, onDelete }) { </View> ); } + +function normalizeValue(value, isMulti) { + if (isMulti) { + if (Array.isArray(value)) { + return value; + } + return value.split(', '); + } + + if (Array.isArray(value)) { + return value.join(', '); + } + + return value; +} diff --git a/upcoming-release-notes/855.md b/upcoming-release-notes/855.md new file mode 100644 index 000000000..3207fe87c --- /dev/null +++ b/upcoming-release-notes/855.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [MatissJanis] +--- + +Normalize value when single/multi select is changed -- GitLab