diff --git a/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx b/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx index 2f644f323df84a112f2b8b67d70f8c13df1d63b3..89bc2ad3e9d3bfea261bd494e0fd249e671c6e1a 100644 --- a/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx +++ b/packages/ui/src/components/_ui/dsfr-input-checkboxes.tsx @@ -20,14 +20,18 @@ export const DsfrInputCheckboxes = defineComponent(<T extends string>(props: Pro watch( () => props.elements, () => { - values.value = props.elements + const newValue = props.elements .filter(element => { return props.initialCheckedValue.includes(element.itemId) }) .map(({ itemId }) => { return itemId }) - props.valueChanged(values.value) + + if (newValue.length !== values.value.length || newValue.some(v => !values.value.includes(v))) { + values.value = newValue + props.valueChanged(values.value) + } }, { deep: true } )