const React = window.React; const {Fragment, useRef, useState} = React; export default function GetRootNodeFragmentContainer({children}) { const fragmentRef = useRef(null); const [rootNodeInfo, setRootNodeInfo] = useState(null); const getRootNodeInfo = () => { const rootNode = fragmentRef.current.getRootNode(); setRootNodeInfo({ nodeName: rootNode.nodeName, nodeType: rootNode.nodeType, nodeTypeLabel: getNodeTypeLabel(rootNode.nodeType), isDocument: rootNode === document, }); }; const getNodeTypeLabel = nodeType => { const types = { 1: 'ELEMENT_NODE', 3: 'TEXT_NODE', 9: 'DOCUMENT_NODE', 11: 'DOCUMENT_FRAGMENT_NODE', }; return types[nodeType] || `UNKNOWN (${nodeType})`; }; return (
{rootNodeInfo && (
Node Name: {rootNodeInfo.nodeName}
Node Type: {rootNodeInfo.nodeType} ( {rootNodeInfo.nodeTypeLabel})
Is Document:{' '} {rootNodeInfo.isDocument ? 'Yes' : 'No'}
)}
{children}
); }