import { isValidElement } from 'react';
import { isSyncReactElement } from '../isSyncReactElement';
/**
 * Функция возвращающая текст из элемента ReactNode
 */
export const getNodeText = (node) => {
    // Если это строка или число, просто возвращаем его как строку
    if (typeof node === 'string' || typeof node === 'number') {
        return String(node);
    }
    // Если это React-элемент, то смотрим на его children
    if (isValidElement(node) &&
        isSyncReactElement(node) &&
        node.props.children) {
        return getNodeText(node.props.children);
    }
    // Для всех прочих случаев (null, undefined, булевы и т.д.) возвращаем пустую строку
    return '';
};
