import React, { Component } from "react"; export type LoadingRenderFunc = | ((props: LoadingRenderProps) => JSX.Element) | undefined; export interface LoadingRenderProps { errors: React.ReactNode[]; } interface Props { render: LoadingRenderFunc; } export class Loader extends Component { private static _RenderContext = React.createContext( undefined ); public static get Render() { return Loader._RenderContext.Consumer; } public render() { const LoaderProvider = Loader._RenderContext.Provider; const loader = this.props.render; return ( {this.props.children} ); } }