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 = () => {