fix: 优化插件市场刷新按钮状态

This commit is contained in:
jxxghp
2026-05-24 20:28:45 +08:00
parent c88b2abcce
commit 96d3426d0c
3 changed files with 9 additions and 8 deletions

View File

@@ -10,6 +10,7 @@ interface DynamicHeaderTabButton {
class?: string
action?: () => void
show?: boolean | ComputedRef<boolean>
loading?: boolean | ComputedRef<boolean>
dataAttr?: string // 用于VMenu定位的data属性
}

View File

@@ -79,6 +79,7 @@ interface DynamicHeaderTab {
class?: string
action?: () => void
show?: boolean | ComputedRef<boolean>
loading?: boolean | ComputedRef<boolean>
dataAttr?: string
}>
routePath?: string // 用于标识哪个路由注册的
@@ -395,6 +396,7 @@ onMounted(async () => {
:color="typeof button.color === 'string' ? button.color : (button.color as any)?.value || 'gray'"
:size="button.size || 'default'"
:class="button.class || 'settings-icon-button'"
:loading="typeof button.loading === 'boolean' ? button.loading : (button.loading as any)?.value || false"
:data-menu-activator="button.dataAttr"
@click="button.action"
/>

View File

@@ -92,6 +92,7 @@ registerHeaderTab({
variant: 'text',
color: 'gray',
class: 'settings-icon-button',
loading: computed(() => isMarketRefreshing.value),
action: () => {
refreshMarket()
},
@@ -879,19 +880,16 @@ function marketSettingDone() {
// 手动刷新插件市场
async function refreshMarket() {
const showMarketLoading = !isAppMarketLoaded.value
if (showMarketLoading) {
isMarketRefreshing.value = true
}
if (isMarketRefreshing.value) return
isMarketRefreshing.value = true
try {
await fetchUninstalledPlugins(true, { silent: isAppMarketLoaded.value, source: 'manual' })
await fetchUninstalledPlugins(true, { silent: false, source: 'manual' })
await getPluginStatistics()
} catch (error) {
console.error(error)
} finally {
if (showMarketLoading) {
isMarketRefreshing.value = false
}
isMarketRefreshing.value = false
}
}