fix: hide filters if just one type

This commit is contained in:
Calum H. (IMB11)
2026-07-27 12:13:28 +01:00
parent 7741e7f2dd
commit fd06f6913c
@@ -35,7 +35,7 @@
</ButtonStyled>
</template>
</div>
<div class="flex flex-wrap items-center gap-1.5">
<div v-if="hasMultipleMethods" class="flex flex-wrap items-center gap-1.5">
<FilterIcon class="size-5 shrink-0 text-secondary" aria-hidden="true" />
<button
:class="filterClass(methodFilter === 'all')"
@@ -158,7 +158,7 @@ import {
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { computed, ref } from 'vue'
import { computed, ref, watch } from 'vue'
import {
type MethodFilter,
@@ -193,6 +193,9 @@ const methodFilterOptions: Array<{ id: ShareMethod; label: string }> = [
{ id: 'direct', label: methodLabels.direct },
{ id: 'link', label: methodLabels.link },
]
const hasMultipleMethods = computed(
() => new Set(props.rows.map((row) => row.method)).size > 1,
)
const columns = computed<TableColumn<ShareTableColumn>[]>(() => {
const result: TableColumn<ShareTableColumn>[] = [
{
@@ -288,6 +291,10 @@ function filterClass(active: boolean) {
]
}
watch(hasMultipleMethods, (multiple) => {
if (!multiple) methodFilter.value = 'all'
})
const messages = defineMessages({
pushUpdate: {
id: 'app.instance.admonitions.shared-instance.publish-button',