From 9911764df110ab8fc668c4f533e8a3bbcd3ea905 Mon Sep 17 00:00:00 2001 From: metonym Date: Mon, 2 May 2022 20:48:59 -0700 Subject: [PATCH] fix(tabs): dispatch "change" event only if index has changed (#1279) Fixes #1278 --- src/Tabs/Tabs.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Tabs/Tabs.svelte b/src/Tabs/Tabs.svelte index b04713f1..282d5fb8 100644 --- a/src/Tabs/Tabs.svelte +++ b/src/Tabs/Tabs.svelte @@ -52,7 +52,6 @@ }, update: (id) => { currentIndex = $tabsById[id].index; - dispatch("change", currentIndex); }, change: (direction) => { let index = currentIndex + direction; @@ -78,16 +77,22 @@ } currentIndex = index; - dispatch("change", currentIndex); }, }); afterUpdate(() => { selected = currentIndex; + + if (prevIndex > -1 && prevIndex !== currentIndex) { + dispatch("change", currentIndex); + } + + prevIndex = currentIndex; }); let dropdownHidden = true; let currentIndex = selected; + let prevIndex = -1; $: currentIndex = selected; $: currentTab = $tabs[currentIndex] || undefined;