diff --git a/dashboard/src/routes/plugins/InstalledTab.tsx b/dashboard/src/routes/plugins/InstalledTab.tsx index a2ffe04d..3447f949 100644 --- a/dashboard/src/routes/plugins/InstalledTab.tsx +++ b/dashboard/src/routes/plugins/InstalledTab.tsx @@ -16,6 +16,7 @@ interface InstalledTabProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function InstalledTab({ @@ -33,6 +34,7 @@ export function InstalledTab({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: InstalledTabProps) { // 过滤已安装插件 const filteredPlugins = plugins.filter(plugin => { @@ -80,6 +82,7 @@ export function InstalledTab({ checkPluginCompatibility={checkPluginCompatibility} needsUpdate={needsUpdate} getStatusBadge={getStatusBadge} + getIncompatibleReason={getIncompatibleReason} /> ))} diff --git a/dashboard/src/routes/plugins/MarketplaceTab.tsx b/dashboard/src/routes/plugins/MarketplaceTab.tsx index bcd4b8c2..e623530c 100644 --- a/dashboard/src/routes/plugins/MarketplaceTab.tsx +++ b/dashboard/src/routes/plugins/MarketplaceTab.tsx @@ -16,6 +16,7 @@ interface MarketplaceTabProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function MarketplaceTab({ @@ -33,6 +34,7 @@ export function MarketplaceTab({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: MarketplaceTabProps) { // 过滤插件 const filteredPlugins = plugins.filter(plugin => { @@ -76,6 +78,7 @@ export function MarketplaceTab({ checkPluginCompatibility={checkPluginCompatibility} needsUpdate={needsUpdate} getStatusBadge={getStatusBadge} + getIncompatibleReason={getIncompatibleReason} /> ))} diff --git a/dashboard/src/routes/plugins/PluginCard.tsx b/dashboard/src/routes/plugins/PluginCard.tsx index ad6d3f1e..93a0fdb1 100644 --- a/dashboard/src/routes/plugins/PluginCard.tsx +++ b/dashboard/src/routes/plugins/PluginCard.tsx @@ -20,6 +20,7 @@ interface PluginCardProps { checkPluginCompatibility: (plugin: PluginInfo) => boolean needsUpdate: (plugin: PluginInfo) => boolean getStatusBadge: (plugin: PluginInfo) => React.JSX.Element | null + getIncompatibleReason: (plugin: PluginInfo) => string | null } export function PluginCard({ @@ -34,6 +35,7 @@ export function PluginCard({ checkPluginCompatibility, needsUpdate, getStatusBadge, + getIncompatibleReason, }: PluginCardProps) { const navigate = useNavigate() @@ -114,8 +116,14 @@ export function PluginCard({ needsUpdate(plugin) ? (