MCPcopy Index your code
hub / github.com/TanStack/table / isSubRowSelected

Function isSubRowSelected

packages/table-core/src/features/RowSelection.ts:639–678  ·  view source on GitHub ↗
(
  row: Row<TData>,
  selection: Record<string, boolean>,
  table: Table<TData>,
)

Source from the content-addressed store, hash-verified

637}
638
639export function isSubRowSelected<TData extends RowData>(
640 row: Row<TData>,
641 selection: Record<string, boolean>,
642 table: Table<TData>,
643): boolean | 'some' | 'all' {
644 if (!row.subRows?.length) return false
645
646 let allChildrenSelected = true
647 let someSelected = false
648
649 row.subRows.forEach((subRow) => {
650 // Bail out early if we know both of these
651 if (someSelected && !allChildrenSelected) {
652 return
653 }
654
655 if (subRow.getCanSelect()) {
656 if (isRowSelected(subRow, selection)) {
657 someSelected = true
658 } else {
659 allChildrenSelected = false
660 }
661 }
662
663 // Check row selection of nested subrows
664 if (subRow.subRows && subRow.subRows.length) {
665 const subRowChildrenSelected = isSubRowSelected(subRow, selection, table)
666 if (subRowChildrenSelected === 'all') {
667 someSelected = true
668 } else if (subRowChildrenSelected === 'some') {
669 someSelected = true
670 allChildrenSelected = false
671 } else {
672 allChildrenSelected = false
673 }
674 }
675 })
676
677 return allChildrenSelected ? 'all' : someSelected ? 'some' : false
678}

Callers 1

RowSelection.tsFile · 0.85

Calls 1

isRowSelectedFunction · 0.85

Tested by

no test coverage detected