sort categories on group profile

This commit is contained in:
Moriz Wahl 2022-11-28 14:02:37 +01:00
parent ab9b14d756
commit e2ac3ba846
5 changed files with 59 additions and 56 deletions

View File

@ -74,7 +74,7 @@ export default {
return CategoryQuery()
},
result({ data: { Category } }) {
this.categories = this.sortCategories(Category, this.$t)
this.categories = this.sortCategories(Category)
},
},
},

View File

@ -86,7 +86,7 @@ export default {
},
update({ Category }) {
if (!Category) return []
this.categories = this.sortCategories(Category, this.$t)
this.categories = this.sortCategories(Category)
},
fetchPolicy: 'cache-and-network',
},

View File

@ -1,19 +1,19 @@
export default {
methods: {
sortCategories(categories, locales) {
sortCategories(categories) {
const miscSlug = 'miscellaneous'
const misc = categories.find((cat) => cat.slug === miscSlug)
const sortedCategories = categories
.filter((cat) => cat.slug !== miscSlug)
.sort((a, b) => {
if (
locales(`contribution.category.name.${a.slug}`) <
locales(`contribution.category.name.${b.slug}`)
this.$t(`contribution.category.name.${a.slug}`) <
this.$t(`contribution.category.name.${b.slug}`)
)
return -1
if (
locales(`contribution.category.name.${a.slug}`) >
locales(`contribution.category.name.${b.slug}`)
this.$t(`contribution.category.name.${a.slug}`) >
this.$t(`contribution.category.name.${b.slug}`)
)
return 1
return 0

View File

@ -161,7 +161,9 @@
<ds-space margin="xx-small" />
<div class="categories">
<div
v-for="(category, index) in group.categories"
v-for="(category, index) in sortCategories(
group && group.categories ? group.categories : [],
)"
:key="category.id"
align="center"
>
@ -326,6 +328,7 @@ import MasonryGridItem from '~/components/MasonryGrid/MasonryGridItem.vue'
import PostTeaser from '~/components/PostTeaser/PostTeaser.vue'
import ProfileAvatar from '~/components/_new/generic/ProfileAvatar/ProfileAvatar'
import ProfileList from '~/components/features/ProfileList/ProfileList'
import SortCategories from '~/mixins/sortCategoriesMixin.js'
// import SocialMedia from '~/components/SocialMedia/SocialMedia'
// import TabNavigation from '~/components/_new/generic/TabNavigation/TabNavigation'
@ -356,7 +359,7 @@ export default {
// SocialMedia,
// TabNavigation,
},
mixins: [postListActions],
mixins: [postListActions, SortCategories],
transition: {
name: 'slide-up',
mode: 'out-in',

View File

@ -61,7 +61,7 @@
<ds-space margin="xx-large" />
<ds-space margin="xx-small" />
<hc-category
v-for="category in sortCategories(post.categories, $t)"
v-for="category in sortCategories(post.categories)"
:key="category.id"
:icon="category.icon"
:name="$t(`contribution.category.name.${category.slug}`)"