/** * 插件商店 */ import { LoadingSpinner } from '@/components/LoadingSpinner'; import { Divider } from 'antd'; import React from 'react'; import { t, useAsync } from 'tailchat-shared'; import { builtinPlugins } from '../builtin'; import { pluginManager } from '../manager'; import { PluginStoreItem } from './Item'; export const PluginStore: React.FC = React.memo(() => { const { loading, value: installedPluginNameList = [] } = useAsync(async () => { const plugins = await pluginManager.getInstalledPlugins(); return plugins.map((p) => p.name); }, []); if (loading) { return ; } return (
{/* 内置插件 */} {t('内置插件')}
{builtinPlugins.map((plugin) => ( ))}
{t('插件中心')}
); }); PluginStore.displayName = 'PluginStore';