fix: add plugin list maybe repeat problem

test/ios-bundle
moonrailgun 2 years ago
parent ae33aa3571
commit b129cd7887

@ -11,6 +11,7 @@ import { builtinPlugins } from '../builtin';
import { pluginManager } from '../manager';
import { PluginStoreItem } from './Item';
import { ManualInstall } from './ManualInstall';
import _uniqBy from 'lodash/uniqBy';
function usePluginStoreData() {
const { loading: loading1, value: installedPluginList = [] } = useAsync(
@ -48,14 +49,16 @@ export const PluginStore: React.FC = React.memo(() => {
<Divider orientation="left">{t('已安装')}</Divider>
<div className="flex flex-wrap">
{[...builtinPlugins, ...installedPluginList].map((plugin) => (
{_uniqBy([...builtinPlugins, ...installedPluginList], 'name').map(
(plugin) => (
<PluginStoreItem
key={plugin.name}
manifest={plugin}
installed={true}
builtin={builtinPluginNameList.includes(plugin.name)}
/>
))}
)
)}
</div>
</PillTabPane>

@ -9,6 +9,7 @@ import _once from 'lodash/once';
import { builtinPlugins } from './builtin';
import { showPluginLoadError } from './showPluginLoadError';
import { injectTailchatGlobalValue } from '@/utils/global-helper';
import _uniqBy from 'lodash/uniqBy';
class PluginManager {
/**
@ -20,10 +21,10 @@ class PluginManager {
*
*/
initPlugins = _once(async () => {
const installedPlugins = [
...builtinPlugins,
...(await this.getInstalledPlugins()),
];
const installedPlugins = _uniqBy(
[...builtinPlugins, ...(await this.getInstalledPlugins())],
'name'
);
const plugins = installedPlugins.map(({ name, url }) => ({
name,

Loading…
Cancel
Save