@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
22 lines (21 loc) • 982 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { forwardRef } from "react";
import { TreeBranch } from "../tree-view/branch/branch.js";
import { FilterTreeItemContext } from "./context.js";
import { useTreeItem } from "./hooks/use-tree-item.js";
import { useSlot } from "@1771technologies/lytenyte-core/yinternal";
export const Branch = forwardRef(function Branch({ item, labelWrap, label, ...props }, forwarded) {
const value = useTreeItem(item);
const labelSlot = useSlot({
slot: labelWrap ?? _jsx("div", {}),
props: [
{
onClick: () => value.onCheckChange(),
},
],
});
return (_jsx(FilterTreeItemContext.Provider, { value: value, children: _jsx(TreeBranch, { ...props, itemId: item.branch.data.id, ref: forwarded, ...item.attrs, onKeyDown: (ev) => {
if (ev.key === " ")
value.onCheckChange();
}, label: label, labelWrap: labelSlot }) }));
});