MCPcopy Create free account
hub / github.com/adobe/react-spectrum / getTextContent

Function getTextContent

packages/dev/s2-docs/src/CodePlatter.tsx:301–323  ·  view source on GitHub ↗
(element: Element)

Source from the content-addressed store, hash-verified

299}
300
301function getTextContent(element: Element) {
302 // Manually walk over text nodes inside the element and concatenate them.
303 // This is like element.textContent except we skip anything inside an element with data-no-copy.
304 let result = '';
305 let walker = document.createTreeWalker(
306 element,
307 NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT,
308 node => {
309 if (node.nodeType === Node.ELEMENT_NODE && (node as Element).hasAttribute('data-no-copy')) {
310 result += '\n';
311 return NodeFilter.FILTER_REJECT;
312 }
313 return node.nodeType === Node.TEXT_NODE ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
314 }
315 );
316
317 let node = walker.nextNode();
318 while (node) {
319 result += node.nodeValue || '';
320 node = walker.nextNode();
321 }
322 return result;
323}
324
325function getExampleCode(codeRef: RefObject<HTMLDivElement | null>, urls: {[name: string]: string}) {
326 let code = getTextContent(codeRef.current!.querySelector('pre')!);

Callers 2

getTextFunction · 0.85
getExampleCodeFunction · 0.85

Calls 2

hasAttributeMethod · 0.80
nextNodeMethod · 0.80

Tested by

no test coverage detected