Skip to content

Commit cfdb5a6

Browse files
committed
Use v-item-group to reduce logic in template
1 parent 440e781 commit cfdb5a6

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

web/src/components/DandisetsPage.vue

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,28 @@
5656
<span>Sorting Options</span>
5757
</v-tooltip>
5858
<v-menu activator="parent">
59-
<v-list>
60-
<v-list-item
61-
v-for="(option, i) in sortingOptions"
62-
:key="option.name"
63-
:value="option"
64-
:append-icon="option.name === sortingOptions[sortOption].name ? 'mdi-check' : ''"
65-
:active="option.name === sortingOptions[sortOption].name"
66-
@click="changeSort(i)"
67-
>
68-
<v-list-item-title >{{ option.name }}</v-list-item-title>
69-
</v-list-item>
70-
</v-list>
59+
<v-item-group v-model="sortOption">
60+
<v-list>
61+
<v-item
62+
v-for="(option, i) in sortingOptions"
63+
:key="option.name"
64+
v-slot="{ isSelected, toggle }"
65+
:value="i"
66+
>
67+
<v-list-item
68+
:active="isSelected"
69+
@click="toggle"
70+
>
71+
<template #append>
72+
<v-icon v-if="isSelected">
73+
mdi-check
74+
</v-icon>
75+
</template>
76+
<v-list-item-title>{{ option.name }}</v-list-item-title>
77+
</v-list-item>
78+
</v-item>
79+
</v-list>
80+
</v-item-group>
7181
</v-menu>
7282
</v-btn>
7383
<v-btn
@@ -77,7 +87,9 @@
7787
<v-icon v-if="sortDir === 1">
7888
mdi-arrow-up-thin
7989
</v-icon>
80-
<v-icon v-else>mdi-arrow-down-thin</v-icon>
90+
<v-icon v-else>
91+
mdi-arrow-down-thin
92+
</v-icon>
8193
<v-tooltip
8294
location="top"
8395
activator="parent"
@@ -225,11 +237,6 @@ watch(queryParams, (params) => {
225237
});
226238
});
227239
228-
function changeSort(index: number) {
229-
sortOption.value = index;
230-
page.value = 1;
231-
}
232-
233240
function changeSortDir() {
234241
sortDir.value = -1 * sortDir.value;
235242
}

0 commit comments

Comments
 (0)