Skip to content

Commit 5bb7dc5

Browse files
committed
Show only available sort fields
1 parent b68898f commit 5bb7dc5

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

frontend/src/components/CoinListView.vue

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const selectedSeries = ref(null)
2222
const selectedType = ref(null)
2323
const selectedPeriod = ref(null)
2424
const selectedMint = ref(null)
25+
const fields = ref([])
2526
2627
const props = defineProps({
2728
settings: {
@@ -52,6 +53,18 @@ const onOpenFile = async () => {
5253
coinsList.value = []
5354
coinsList.value = await service.loadCoins()
5455
images.value = new Array(coinsList.value.length).fill('')
56+
57+
fields.value = ['title', 'year']
58+
if (props.filters['status'].length > 1)
59+
fields.value.push('status')
60+
if (props.filters['country'].length > 1)
61+
fields.value.push('country')
62+
if (props.filters['series'].length > 1)
63+
fields.value.push('series')
64+
if (props.filters['type'].length > 1)
65+
fields.value.push('type')
66+
if (props.filters['period'].length > 1)
67+
fields.value.push('period')
5568
}
5669
5770
defineExpose({
@@ -110,7 +123,7 @@ const loadImage = async (index, coinId) => {
110123

111124
<template>
112125
<v-container>
113-
<SortItem :filters="filters['country']" :settings="settings" @sort-by-changed="onSortByChanged" v-model="sortedBy" v-model:reverse="reverseSort" />
126+
<SortItem :fields="fields" :settings="settings" @sort-by-changed="onSortByChanged" v-model="sortedBy" v-model:reverse="reverseSort" />
114127
</v-container>
115128

116129
<v-container>

frontend/src/components/SortItem.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
<script setup>
22
import i18n from "@/i18n/index.js";
33
4-
const items = ['title', 'status', 'country', 'series', 'type', 'period']
5-
6-
const props = defineProps(['filters', 'settings'])
4+
const props = defineProps(['fields', 'settings'])
75
const emit = defineEmits(['sortByChanged'])
86
const sortedBy = defineModel()
97
const isReverse = defineModel('reverse')
@@ -14,12 +12,12 @@ const onChanged = async (val) => {
1412
</script>
1513

1614
<template>
17-
<v-row align="center" no-gutters>
15+
<v-row align="center" no-gutters v-if="fields.length > 0">
1816
<v-col class="mr-4">
19-
<v-select v-if="filters.length > 1"
17+
<v-select
2018
v-model="sortedBy"
2119
hide-details
22-
:items="items"
20+
:items="fields"
2321
:label="i18n.global.t('Sort by')"
2422
:item-title="item => settings.fields[item]"
2523
@update:modelValue="onChanged"

0 commit comments

Comments
 (0)