From f7e87b57ec098042e538ca10cbca6e49f6f62b47 Mon Sep 17 00:00:00 2001 From: Marek Mihok Date: Wed, 19 Jul 2023 13:55:28 +0200 Subject: [PATCH] fix: prevent endless loop for multiple selections #2069 --- ui/src/table.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/src/table.tsx b/ui/src/table.tsx index b7074768fb..2f8c51032d 100644 --- a/ui/src/table.tsx +++ b/ui/src/table.tsx @@ -913,12 +913,12 @@ export const onSelectionChanged: () => { const selectedItemKeys = selection.getSelection().map(item => item.key as S) const args = wave.args[m.name] as S[] - if (args.length !== selectedItemKeys.length || args.some((item, idx) => item !== selectedItemKeys[idx])) { - wave.args[m.name] = selectedItemKeys - if (m.events?.includes('select')) wave.emit(m.name, 'select', selectedItemKeys) - } + if (isSingle && m.value === args[0] && m.value === selectedItemKeys[0]) return + if (isMultiple && m.values && m.values.every((item, idx) => item === selectedItemKeys[idx] && item === args[idx])) return + wave.args[m.name] = selectedItemKeys + if (m.events?.includes('select')) wave.emit(m.name, 'select', selectedItemKeys) } - }), [m.name, m.events]), + }), [m.name, m.value, m.values, m.events, isSingle, isMultiple]), computeHeight = () => { if (m.height) return m.height if (items.length > 10) return 500