Просто задумайтесь, что включить типизацию в проект, который работает - это не так просто как в проект, который только начинает свой путь.
Чтобы включить например typescript в проект, нужно довольно сильно поменять поток работы, вы больше не можете просто запустить всё в браузере и наслаждаться, ваш код нужно транспилировать в js.
А вот описать что делает компонент где-то в git wiki - это простое и удобное решение, которое не заставляет менять что-то ВНУТРИ проекта и позволяет разделить мух и котлет
import { renderToString } from 'react-dom/server';
textField.innerText = renderToString(/* иконка описанная JSX */);
textField.innerText = iconRef;
textField.innerText = iconRef.outerHTML;
render() {
return(
<PageLayout shouldShowLogo={false}>
{/* код страницы Home */}
</PageLayout>
);
}
И момент с пробросом shoulShowLogo в функцию с HOC не совсем понял.
const withLayout = layoutProps => WrappedComponent =>
class WithLayout extends React.Component{
static displayName = WrappedComponent.displayName ||
WrappedComponent.name || 'Component';
render(){
return (
<PageLayout {...layoutProps}>
<WrappedComponent {...this.props} />
</PageLayout>
);
}
};
{
$$typeof: Symbol(react.element),
key: null,
props: { className: "greeting", children: "Hello, world!" },
ref: null,
type: "h1",
_owner: null,
_store: { validated: false },
_self: null,
_source: null,
__proto__: Object,
}