diff --git a/packages/bbui/src/FancyForm/FancyCheckboxGroup.svelte b/packages/bbui/src/FancyForm/FancyCheckboxGroup.svelte
index 998f7afe94..58cf00db58 100644
--- a/packages/bbui/src/FancyForm/FancyCheckboxGroup.svelte
+++ b/packages/bbui/src/FancyForm/FancyCheckboxGroup.svelte
@@ -3,26 +3,35 @@
import FancyForm from "./FancyForm.svelte"
export let options = []
- export let selected = []
+ export let selected
export let showSelectAll = true
export let selectAllText = "Select all"
- let allSelected = false
- $: {
- if (selected.length === options.length) {
- allSelected = true
- } else if (selected.length === 0) {
- allSelected = false
- } else {
- allSelected = "partial"
+ let selectedBooleans = reset()
+
+ $: selected = updateSelected(selectedBooleans)
+ $: console.log(selected)
+ $: allSelected = selected.length === options.length
+
+ function reset() {
+ return Array(options.length).fill(true)
+ }
+
+ function updateSelected(selectedArr) {
+ const array = []
+ for (let [i, isSelected] of Object.entries(selectedArr)) {
+ if (isSelected) {
+ array.push(options[i])
+ }
}
+ return array
}
function toggleSelectAll() {
if (allSelected === true) {
- selected = []
+ selectedBooleans = []
} else {
- selected = [...options]
+ selectedBooleans = reset()
}
}
@@ -41,7 +50,7 @@
{/if}
{#each options as option, i}
-
+
{/each}
{/if}