@engie-group/fluid-design-system-react
Version:
Fluid Design System React
25 lines (20 loc) • 626 B
text/typescript
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;
};