Skip to content

Commit d264b7d

Browse files
committed
fix: add timeout cleanup
1 parent 4919d6f commit d264b7d

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

app/components/Package/Versions.vue

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ const props = defineProps<{
2222
const chartModal = useModal('chart-modal')
2323
const hasDistributionModalTransitioned = shallowRef(false)
2424
const isDistributionModalOpen = shallowRef(false)
25+
let distributionModalFallbackTimer: ReturnType<typeof setTimeout> | null = null
26+
27+
function clearDistributionModalFallbackTimer() {
28+
if (distributionModalFallbackTimer) {
29+
clearTimeout(distributionModalFallbackTimer)
30+
distributionModalFallbackTimer = null
31+
}
32+
}
2533
2634
async function openDistributionModal() {
2735
isDistributionModalOpen.value = true
@@ -31,7 +39,8 @@ async function openDistributionModal() {
3139
chartModal.open()
3240
3341
// Fallback: Force mount if transition event doesn't fire
34-
setTimeout(() => {
42+
clearDistributionModalFallbackTimer()
43+
distributionModalFallbackTimer = setTimeout(() => {
3544
if (!hasDistributionModalTransitioned.value) {
3645
hasDistributionModalTransitioned.value = true
3746
}
@@ -41,10 +50,12 @@ async function openDistributionModal() {
4150
function closeDistributionModal() {
4251
isDistributionModalOpen.value = false
4352
hasDistributionModalTransitioned.value = false
53+
clearDistributionModalFallbackTimer()
4454
}
4555
4656
function handleDistributionModalTransitioned() {
4757
hasDistributionModalTransitioned.value = true
58+
clearDistributionModalFallbackTimer()
4859
}
4960
5061
/** Maximum number of dist-tag rows to show before collapsing into "Other versions" */

0 commit comments

Comments
 (0)