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

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

Loading…
Cancel
Save