@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
24 lines (23 loc) • 798 B
JavaScript
import { useMemo } from "react";
import { useBranchLookup } from "./branch-lookup-context.js";
export function useColumnsFromContext(item) {
const lookup = useBranchLookup();
const columns = useMemo(() => {
if (item.kind === "branch") {
const allChildren = [];
const branch = lookup[item.data.idOccurrence];
const stack = [...branch.children.values()];
while (stack.length) {
const p = stack.pop();
if (p.kind === "branch") {
stack.push(...p.children.values());
continue;
}
allChildren.push(p.data);
}
return allChildren;
}
return [item.data];
}, [item, lookup]);
return columns;
}