import React from 'react'; import {Loader} from '@gravity-ui/uikit'; import {useComponent} from '../components/ComponentsProvider/ComponentsProvider'; import {ErrorBoundaryFallback} from '../components/ErrorBoundary/ErrorBoundary'; export function lazyComponent( moduleLoader: () => Promise, exportName: TKey, loader?: React.ReactNode, ) { const Component = React.lazy(() => moduleLoader() .then((module) => ({default: module[exportName] as React.ComponentType})) .catch((error) => ({default: () => })), ); const LazyComponent = React.forwardRef>( (props, ref) => { const ErrorBoundary = useComponent('ErrorBoundary'); return ( }> ); }, ); LazyComponent.displayName = exportName as string; return LazyComponent; } function DefaultLoader() { return (
); }