diff --git a/web/app/components/plugins/plugin-item/index.tsx b/web/app/components/plugins/plugin-item/index.tsx index ad5860801d..c8b3435393 100644 --- a/web/app/components/plugins/plugin-item/index.tsx +++ b/web/app/components/plugins/plugin-item/index.tsx @@ -21,7 +21,6 @@ import Title from '../card/base/title' import Action from './action' import cn from '@/utils/classnames' import I18n from '@/context/i18n' - import { API_PREFIX, MARKETPLACE_URL_PREFIX } from '@/config' type Props = { diff --git a/web/app/components/plugins/plugin-page/plugins-panel.tsx b/web/app/components/plugins/plugin-page/plugins-panel.tsx index 11a8c3d198..6b8d2475fd 100644 --- a/web/app/components/plugins/plugin-page/plugins-panel.tsx +++ b/web/app/components/plugins/plugin-page/plugins-panel.tsx @@ -10,7 +10,7 @@ import { useDebounceFn } from 'ahooks' import Empty from './empty' const PluginsPanel = () => { - const [filters, setFilters] = usePluginPageContext(v => [v.filters, v.setFilters]) + const [filters, setFilters] = usePluginPageContext(v => [v.filters, v.setFilters]) as [FilterState, (filter: FilterState) => void] const pluginList = usePluginPageContext(v => v.installedPluginList) as PluginDetail[] const mutateInstalledPluginList = usePluginPageContext(v => v.mutateInstalledPluginList) @@ -19,11 +19,11 @@ const PluginsPanel = () => { }, { wait: 500 }) const filteredList = useMemo(() => { - // todo: filter by tags - const { categories, searchQuery } = filters + const { categories, searchQuery, tags } = filters const filteredList = pluginList.filter((plugin) => { return ( (categories.length === 0 || categories.includes(plugin.declaration.category)) + && (tags.length === 0 || tags.some(tag => plugin.declaration.tags.includes(tag))) && (searchQuery === '' || plugin.plugin_id.toLowerCase().includes(searchQuery.toLowerCase())) ) }) diff --git a/web/app/components/plugins/types.ts b/web/app/components/plugins/types.ts index 7031ec59ca..f0f80a3e57 100644 --- a/web/app/components/plugins/types.ts +++ b/web/app/components/plugins/types.ts @@ -69,6 +69,7 @@ export type PluginDeclaration = { endpoint: PluginEndpointDeclaration tool: PluginToolDeclaration model: any // TODO + tags: string[] } export type PluginManifestInMarket = {