Skip to content

Commit 83f75cc

Browse files
committed
fix(ui): tabs unregistering and keys
1 parent bd828a6 commit 83f75cc

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

packages/ui/client/components/artifacts/visual-regression/SmallTabs.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ import { idFor, SMALL_TABS_CONTEXT } from '~/composables/small-tabs'
66
const activeTab = ref<string | null>(null)
77
const tabs = ref<SmallTabsConfig[]>([])
88
9-
function setActive(key: string) {
10-
activeTab.value = key
11-
}
12-
139
const id = useId()
1410
1511
provide(SMALL_TABS_CONTEXT, {
@@ -21,7 +17,7 @@ provide(SMALL_TABS_CONTEXT, {
2117
}
2218
2319
if (tabs.value.length === 1) {
24-
setActive(tab.id)
20+
activeTab.value = tab.id
2521
}
2622
},
2723
unregisterTab: (tab) => {
@@ -30,6 +26,10 @@ provide(SMALL_TABS_CONTEXT, {
3026
if (index > -1) {
3127
tabs.value.splice(index, 1)
3228
}
29+
30+
if (activeTab.value === tab.id) {
31+
activeTab.value = tabs.value[0]?.id ?? null
32+
}
3333
},
3434
})
3535
</script>
@@ -52,7 +52,7 @@ provide(SMALL_TABS_CONTEXT, {
5252
:aria-controls="idFor.tabpanel(tab.id, id)"
5353
type="button"
5454
class="aria-[selected=true]:underline underline-offset-4"
55-
@click="setActive(tab.id)"
55+
@click="activeTab = tab.id"
5656
>
5757
{{ tab.title }}
5858
</button>

packages/ui/client/components/artifacts/visual-regression/VisualRegression.vue

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,32 @@ const groups = computed(() => ({
2929
{{ regression.message }}
3030
</template>
3131
<SmallTabs>
32-
<SmallTabsPane v-if="groups.diff" title="Diff">
32+
<SmallTabsPane
33+
v-if="groups.diff"
34+
:key="groups.diff.path"
35+
title="Diff"
36+
>
3337
<VisualRegressionImage :attachment="groups.diff" />
3438
</SmallTabsPane>
35-
<SmallTabsPane v-if="groups.reference" title="Reference">
39+
<SmallTabsPane
40+
v-if="groups.reference"
41+
:key="groups.reference.path"
42+
title="Reference"
43+
>
3644
<VisualRegressionImage :attachment="groups.reference" />
3745
</SmallTabsPane>
38-
<SmallTabsPane v-if="groups.actual" title="Actual">
46+
<SmallTabsPane
47+
v-if="groups.actual"
48+
:key="groups.actual.path"
49+
title="Actual"
50+
>
3951
<VisualRegressionImage :attachment="groups.actual" />
4052
</SmallTabsPane>
41-
<SmallTabsPane v-if="groups.reference && groups.actual" title="Slider">
53+
<SmallTabsPane
54+
v-if="groups.reference && groups.actual"
55+
:key="(groups.reference.path ?? '') + (groups.actual.path ?? '')"
56+
title="Slider"
57+
>
4258
<VisualRegressionSlider :actual="groups.actual" :reference="groups.reference" />
4359
</SmallTabsPane>
4460
</SmallTabs>

0 commit comments

Comments
 (0)