From 039abb27e49db493aacfb8387ff3182ea716f19f Mon Sep 17 00:00:00 2001 From: Marek Mihok Date: Tue, 18 Jul 2023 14:32:28 +0200 Subject: [PATCH] fix: do not emit event when model value/values are changed programatically #2069 --- ui/src/table.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ui/src/table.tsx b/ui/src/table.tsx index 62bc286637..4796806a9f 100644 --- a/ui/src/table.tsx +++ b/ui/src/table.tsx @@ -912,8 +912,14 @@ export const selection = React.useMemo(() => new Fluent.Selection({ onSelectionChanged: () => { const selectedItemKeys = selection.getSelection().map(item => item.key as S) - wave.args[m.name] = selectedItemKeys - if (m.events?.includes('select')) wave.emit(m.name, 'select', selectedItemKeys) + const areEqual = (arr1: any, arr2: any) => { + if (arr1.length !== arr2.length) return false + return arr1.every((el, idx) => el === arr2[idx]) + } + if (!areEqual(wave.args[m.name], selectedItemKeys)) { + wave.args[m.name] = selectedItemKeys + if (m.events?.includes('select')) wave.emit(m.name, 'select', selectedItemKeys) + } } }), [m.name, m.events]), computeHeight = () => {