import React from 'react'; import type { CompositionsUI } from '@teambit/compositions'; import { CompositionsAspect } from '@teambit/compositions'; import { UIRuntime } from '@teambit/ui'; import type { TesterUI } from '@teambit/tester'; import { TesterAspect } from '@teambit/tester'; import { AddingTests } from '@teambit/react.instructions.react.adding-tests'; import { AddingCompositions } from '@teambit/react.instructions.react.adding-compositions'; import type { APIReferenceUI } from '@teambit/api-reference'; import { APIReferenceAspect } from '@teambit/api-reference'; import { reactRenderer } from '@teambit/api-reference.renderers.react'; import { ReactAspect } from './react.aspect'; import { HighlighterWidget } from './highlighter-widget'; import { ReactSchema } from './react.schema'; export class ReactUI { static runtime = UIRuntime; static slots = []; static dependencies = [CompositionsAspect, TesterAspect, APIReferenceAspect]; static async provider([compositionsUI, testerUi, apiUI]: [CompositionsUI, TesterUI, APIReferenceUI]) { const reactUI = new ReactUI(); testerUi.registerEmptyState(() => { return ; }); compositionsUI.registerEmptyState(() => { return ; }); apiUI.registerSchemaClasses(() => [ReactSchema]); apiUI.registerAPINodeRenderer([reactRenderer]); compositionsUI.registerMenuWidget({ location: 'start', content: , }); return reactUI; } } ReactAspect.addRuntime(ReactUI); export default ReactUI;