From ccf31570439f3c9bc4b501e40c48ca7dbc904de3 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 23 Apr 2025 13:13:04 +0200 Subject: [PATCH] fix: use popup evt to handle loading --- src/components/common/VnSelect.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index 0cbe541fc..70167229a 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -161,7 +161,7 @@ const arrayData = useArrayData(arrayDataKey, { searchUrl: false, mapKey: $attrs['map-key'], }); - +const isMenuOpened = ref(false); const computedSortBy = computed(() => { return $props.sortBy || $props.optionLabel + ' ASC'; }); @@ -186,7 +186,9 @@ onMounted(() => { if ($props.focusOnMount) setTimeout(() => vnSelectRef.value.showPopup(), 300); }); -const someIsLoading = computed(() => isLoading.value || !!arrayData?.isLoading?.value); +const someIsLoading = computed( + () => (isLoading.value || !!arrayData?.isLoading?.value) && !isMenuOpened.value, +); function findKeyInOptions() { if (!$props.options) return; return filter($props.modelValue, $props.options)?.length; @@ -370,6 +372,8 @@ function getCaption(opt) { :loading="someIsLoading" :disable="someIsLoading" @virtual-scroll="onScroll" + @popup-hide="isMenuOpened = false" + @popup-show="isMenuOpened = true" @keydown="handleKeyDown" :data-cy="$attrs.dataCy ?? $attrs.label + '_select'" :data-url="url" -- 2.40.1