Skip to content

Commit b2e7fee

Browse files
committed
Use v-item-group to reduce logic in template
1 parent 24b16e7 commit b2e7fee

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

web/src/components/DandisetsPage.vue

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,26 @@
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+
:value="i"
65+
v-slot="{ isSelected, toggle }"
66+
>
67+
<v-list-item
68+
@click="toggle"
69+
:active="isSelected"
70+
>
71+
<template #append>
72+
<v-icon v-if="isSelected">mdi-check</v-icon>
73+
</template>
74+
<v-list-item-title >{{ option.name }}</v-list-item-title>
75+
</v-list-item>
76+
</v-item>
77+
</v-list>
78+
</v-item-group>
7179
</v-menu>
7280
</v-btn>
7381
<v-btn
@@ -225,11 +233,6 @@ watch(queryParams, (params) => {
225233
});
226234
});
227235
228-
function changeSort(index: number) {
229-
sortOption.value = index;
230-
page.value = 1;
231-
}
232-
233236
function changeSortDir() {
234237
sortDir.value = -1 * sortDir.value;
235238
}

0 commit comments

Comments
 (0)