[backport core/1.34] fix: refreshing assets causes entire panel to re-render (enter loading state) (#7526)

Backport of #7449 to core/1.34.

## Original PR
https://github.com/Comfy-Org/ComfyUI_frontend/pull/7449

## Changes
- Only show loading spinner when `loading && !displayAssets.length`
instead of just `loading`
- Prevents jarring re-render when refreshing assets
This commit is contained in:
Christian Byrne
2025-12-15 13:51:46 -08:00
committed by GitHub
parent 16628f3798
commit 2212f50afb

View File

@@ -48,12 +48,11 @@
/>
</template>
<template #body>
<!-- Loading state -->
<div v-if="loading">
<Divider type="dashed" class="m-2" />
<div v-if="loading && !displayAssets.length">
<ProgressSpinner class="absolute left-1/2 w-[50px] -translate-x-1/2" />
</div>
<!-- Empty state -->
<div v-else-if="!displayAssets.length">
<div v-else-if="!loading && !displayAssets.length">
<NoResultsPlaceholder
icon="pi pi-info-circle"
:title="
@@ -66,7 +65,6 @@
:message="$t('sideToolbar.noFilesFoundMessage')"
/>
</div>
<!-- Content -->
<div v-else class="relative size-full" @click="handleEmptySpaceClick">
<VirtualGrid
:items="mediaAssetsWithKey"
@@ -167,6 +165,7 @@
<script setup lang="ts">
import { useDebounceFn, useElementHover, useResizeObserver } from '@vueuse/core'
import { Divider } from 'primevue'
import ProgressSpinner from 'primevue/progressspinner'
import { useToast } from 'primevue/usetoast'
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'