All files / Rindu/utils extractTextFromChildren.ts

30% Statements 3/10
0% Branches 0/6
0% Functions 0/1
22.22% Lines 2/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1844x   44x                              
import { isValidElement, ReactNode, ReactPortal } from "react";
 
export const extractTextFromChildren = (child: ReactNode): string => {
  Iif (typeof child === "string") {
    return child;
  }
 
  Iif (Array.isArray(child)) {
    return child.map(extractTextFromChildren).join("");
  }
 
  Iif (isValidElement(child) && "props" in child && "children" in child.props) {
    return extractTextFromChildren((child?.props as ReactPortal)?.children);
  }
 
  return "";
};