UNPKG

@engie-group/fluid-design-system-react

Version:

Fluid Design System React

25 lines (20 loc) 626 B
import React, { HTMLProps } from 'react'; export const labelFromChildren = (children: React.ReactNode): string | undefined => { if (typeof children === 'string') { return children; } const child = React.Children.only(children) as React.ReactElement<HTMLProps<unknown>>; if (typeof child === 'object') { if (typeof child.props.children === 'string') { return child.props.children; } if ( typeof child.props.children === 'object' && 'asChild' in child.props && child.props.asChild ) { return labelFromChildren(child.props.children); } } return undefined; };