"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNodeText = void 0;
const react_1 = require("react");
const isSyncReactElement_1 = require("../isSyncReactElement");
/**
 * Функция возвращающая текст из элемента ReactNode
 */
const getNodeText = (node) => {
    // Если это строка или число, просто возвращаем его как строку
    if (typeof node === 'string' || typeof node === 'number') {
        return String(node);
    }
    // Если это React-элемент, то смотрим на его children
    if ((0, react_1.isValidElement)(node) &&
        (0, isSyncReactElement_1.isSyncReactElement)(node) &&
        node.props.children) {
        return (0, exports.getNodeText)(node.props.children);
    }
    // Для всех прочих случаев (null, undefined, булевы и т.д.) возвращаем пустую строку
    return '';
};
exports.getNodeText = getNodeText;
