diff --git a/packages/napcat-webui-frontend/src/components/display_card/plugin_card.tsx b/packages/napcat-webui-frontend/src/components/display_card/plugin_card.tsx index 75f2ce58..cd267767 100644 --- a/packages/napcat-webui-frontend/src/components/display_card/plugin_card.tsx +++ b/packages/napcat-webui-frontend/src/components/display_card/plugin_card.tsx @@ -11,7 +11,20 @@ import { useState } from 'react'; import key from '@/const/key'; import { PluginItem } from '@/controllers/plugin_manager'; -import { getPluginIconUrl } from '@/utils/plugin_icon'; + +function getPluginIconUrl (iconPath?: string): string | undefined { + if (!iconPath) return undefined; + try { + const raw = localStorage.getItem(key.token); + if (!raw) return iconPath; + const token = JSON.parse(raw); + const url = new URL(iconPath, window.location.origin); + url.searchParams.set('webui_token', token); + return url.pathname + url.search; + } catch { + return iconPath; + } +} export interface PluginDisplayCardProps { data: PluginItem; diff --git a/packages/napcat-webui-frontend/src/utils/plugin_icon.ts b/packages/napcat-webui-frontend/src/utils/plugin_icon.ts deleted file mode 100644 index 3bfeccad..00000000 --- a/packages/napcat-webui-frontend/src/utils/plugin_icon.ts +++ /dev/null @@ -1,20 +0,0 @@ -import key from '@/const/key'; - -/** - * 将后端返回的插件 icon 路径拼接上 webui_token 查询参数 - * 后端 /api/Plugin/Icon/:pluginId 需要鉴权,img src 无法携带 Authorization header, - * 所以通过 query 参数传递 token - */ -export function getPluginIconUrl (iconPath?: string): string | undefined { - if (!iconPath) return undefined; - try { - const raw = localStorage.getItem(key.token); - if (!raw) return iconPath; - const token = JSON.parse(raw); - const url = new URL(iconPath, window.location.origin); - url.searchParams.set('webui_token', token); - return url.pathname + url.search; - } catch { - return iconPath; - } -}