import { Plugin, SchemaComponentOptions, SchemaInitializerContext, SchemaInitializerProvider } from '@nocobase/client'; import React, { useContext } from 'react'; import { ChartInitializers, ChartV2Block, ChartV2BlockDesigner, ChartV2BlockInitializer } from './block'; import { useChartsTranslation } from './locale'; import { ChartRenderer, ChartRendererProvider, InternalLibrary } from './renderer'; import { ChartLibraryProvider } from './renderer/ChartLibrary'; const Chart: React.FC = (props) => { const { t } = useChartsTranslation(); const initializers = useContext(SchemaInitializerContext); const children = initializers.BlockInitializers.items[0].children; const has = children.some((initializer) => initializer.component === 'ChartV2BlockInitializer'); if (!has) { children.push({ key: 'chart-v2', type: 'item', title: t('Charts'), component: 'ChartV2BlockInitializer', }); } return ( {props.children} ); }; class DataVisualizationPlugin extends Plugin { async load() { this.app.addProvider(Chart); } } export default DataVisualizationPlugin; export { ChartLibraryProvider };