mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-07-22 12:57:03 +08:00
fix: 优化插件市场刷新按钮状态
This commit is contained in:
@@ -10,6 +10,7 @@ interface DynamicHeaderTabButton {
|
||||
class?: string
|
||||
action?: () => void
|
||||
show?: boolean | ComputedRef<boolean>
|
||||
loading?: boolean | ComputedRef<boolean>
|
||||
dataAttr?: string // 用于VMenu定位的data属性
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
/>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user