UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

23 lines (22 loc) 837 B
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const getSelectionPath = (data, selectedId, selection = [], idx = -1, parent = []) => { data?.forEach((item, i) => { const hasData = item.data?.length; const isSelected = item.id === selectedId; if (isSelected) selection.push(...idx > -1 ? [parent[idx].id] : [], item.id); if (hasData) getSelectionPath(item.data, selectedId, selection, i, data); }); return selection; }; const useSelectionPath = (data, selectedId) => { const [selectionPath, setSelectionPath] = React.useState([]); React.useEffect(() => { const path = getSelectionPath(data, selectedId); setSelectionPath(path); }, [data, selectedId]); return selectionPath; }; exports.useSelectionPath = useSelectionPath;