diff --git a/apps/player/src/components/CashBalanceChip.vue b/apps/player/src/components/CashBalanceChip.vue index 925f6ea..2bbb89f 100644 --- a/apps/player/src/components/CashBalanceChip.vue +++ b/apps/player/src/components/CashBalanceChip.vue @@ -4,11 +4,12 @@ import { useRouter } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { formatMoney } from '../utils/localeDisplay'; import { usePlayerProfile } from '../composables/usePlayerProfile'; +import { useHoverDropdown } from '../composables/useHoverDropdown'; const { locale, t } = useI18n(); const { profileRaw, refreshProfile } = usePlayerProfile(); const router = useRouter(); -const open = ref(false); +const { open, openHover, scheduleClose, closeNow } = useHoverDropdown(); const root = ref(null); const wallet = computed(() => profileRaw.value?.wallet ?? null); @@ -44,7 +45,12 @@ function toggle() { } function close() { - open.value = false; + closeNow(); +} + +function onMouseEnter() { + openHover(); + void refreshProfile(); } function goRecharge() { @@ -53,7 +59,7 @@ function goRecharge() { } function onOutsideClick(e: Event) { - if (!root.value?.contains(e.target as Node)) open.value = false; + if (!root.value?.contains(e.target as Node)) closeNow(); } onMounted(() => { @@ -71,8 +77,8 @@ onUnmounted(() => {