@danilandreev/material-docs
Version:
material-docs - react framework for easy creating documentation site in material design style.
35 lines (28 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getTextFromChildren;
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Author: Andrieiev Danil | danssg08@gmail.com | https://github.com/DanilAndreev
* Copyright (C) 2020.
*/
/**
* getTextFromChildren - returns deep text from children.
* @function
* @param {any} children React components.
* @param {number} depth Step into depth for analyzer.
* @return {string}
*/
function getTextFromChildren(children) {
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
if (depth < 1) return "";
var text = _react.default.Children.map(children, function (child) {
if ( /*#__PURE__*/_react.default.isValidElement(child)) return getTextFromChildren(child.props.children, depth - 1);
if (typeof child === "string") return child;
return "";
}).join(" ").trim();
return text || "";
}