From 2aeeb728a296ccc2cb6141a48ce37d89382d4e89 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Wed, 20 Oct 2021 17:45:53 -0700 Subject: [PATCH] fix(data-table): collapse batch expansion button if one or more rows collapsed #867 (#868) --- src/DataTable/DataTable.svelte | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/DataTable/DataTable.svelte b/src/DataTable/DataTable.svelte index 856192ad..4ec8d5da 100644 --- a/src/DataTable/DataTable.svelte +++ b/src/DataTable/DataTable.svelte @@ -165,9 +165,18 @@ let refSelectAll = null; $: batchSelectedIds.set(selectedRowIds); + $: expandableRowIds = rows + .map((row) => row.id) + .filter((id) => !nonExpandableRowIds.includes(id)); $: indeterminate = selectedRowIds.length > 0 && selectedRowIds.length < rows.length; - $: if (batchExpansion) expandable = true; + $: if (batchExpansion) { + expandable = true; + + if (expandedRowIds.length < expandableRowIds.length) { + expanded = false; + } + } $: if (radio || batchSelection) selectable = true; $: tableSortable.set(sortable); $: headerKeys = headers.map(({ key }) => key); @@ -249,7 +258,7 @@ class:bx--table-expand__button="{true}" on:click="{() => { expanded = !expanded; - expandedRowIds = expanded ? rows.map((row) => row.id) : []; + expandedRowIds = expanded ? expandableRowIds : []; dispatch('click:header--expand', { expanded }); }}"