mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2026-04-06 01:25:38 +00:00
fix - maintaining sorting after navigation
This commit is contained in:
parent
c819edc293
commit
7330987a69
@ -11,7 +11,7 @@
|
|||||||
:options="sortingOptions"
|
:options="sortingOptions"
|
||||||
size="large"
|
size="large"
|
||||||
v-bind:icon-right="sortingIcon"
|
v-bind:icon-right="sortingIcon"
|
||||||
@input="toggleOnlySorting"
|
@input="updateOrder"
|
||||||
></ds-select>
|
></ds-select>
|
||||||
</div>
|
</div>
|
||||||
</ds-grid-item>
|
</ds-grid-item>
|
||||||
@ -62,7 +62,7 @@ import HcPostCard from '~/components/PostCard'
|
|||||||
import HcLoadMore from '~/components/LoadMore.vue'
|
import HcLoadMore from '~/components/LoadMore.vue'
|
||||||
import MasonryGrid from '~/components/MasonryGrid/MasonryGrid.vue'
|
import MasonryGrid from '~/components/MasonryGrid/MasonryGrid.vue'
|
||||||
import MasonryGridItem from '~/components/MasonryGrid/MasonryGridItem.vue'
|
import MasonryGridItem from '~/components/MasonryGrid/MasonryGridItem.vue'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters, mapMutations } from 'vuex'
|
||||||
import { filterPosts } from '~/graphql/PostQuery.js'
|
import { filterPosts } from '~/graphql/PostQuery.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -83,10 +83,8 @@ export default {
|
|||||||
offset: 0,
|
offset: 0,
|
||||||
pageSize: 12,
|
pageSize: 12,
|
||||||
hashtag,
|
hashtag,
|
||||||
placeholder: this.$t('sorting.newest'),
|
|
||||||
selected: this.$t('sorting.newest'),
|
|
||||||
sortingIcon: 'sort-amount-desc',
|
sortingIcon: 'sort-amount-desc',
|
||||||
sorting: 'createdAt_desc',
|
selected: this.$t('sorting.newest'),
|
||||||
sortingOptions: [
|
sortingOptions: [
|
||||||
{
|
{
|
||||||
label: this.$t('sorting.newest'),
|
label: this.$t('sorting.newest'),
|
||||||
@ -103,9 +101,15 @@ export default {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
if(this.postsOrder.label) {
|
||||||
|
this.selected = this.postsOrder.label
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters({
|
...mapGetters({
|
||||||
postsFilter: 'postsFilter/postsFilter',
|
postsFilter: 'postsFilter/postsFilter',
|
||||||
|
postsOrder: 'postsFilter/postsOrder',
|
||||||
}),
|
}),
|
||||||
finalFilters() {
|
finalFilters() {
|
||||||
let filter = this.postsFilter
|
let filter = this.postsFilter
|
||||||
@ -122,11 +126,15 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggleOnlySorting(x) {
|
...mapMutations({
|
||||||
|
setPostsOrder: 'postsFilter/UPDATE_ORDER',
|
||||||
|
}),
|
||||||
|
updateOrder(sortingOptions) {
|
||||||
this.offset = 0
|
this.offset = 0
|
||||||
this.posts = []
|
this.posts = []
|
||||||
this.sortingIcon = x.icons
|
this.sortingIcon = sortingOptions.icons
|
||||||
this.sorting = x.order
|
this.selected = sortingOptions.label
|
||||||
|
this.setPostsOrder(sortingOptions)
|
||||||
},
|
},
|
||||||
clearSearch() {
|
clearSearch() {
|
||||||
this.$router.push({ path: '/' })
|
this.$router.push({ path: '/' })
|
||||||
@ -176,7 +184,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
filter: this.finalFilters,
|
filter: this.finalFilters,
|
||||||
first: this.pageSize,
|
first: this.pageSize,
|
||||||
orderBy: this.sorting,
|
orderBy: this.postsOrder.order,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -12,6 +12,12 @@ export const state = () => {
|
|||||||
filter: {
|
filter: {
|
||||||
...defaultFilter,
|
...defaultFilter,
|
||||||
},
|
},
|
||||||
|
postsOrder: {
|
||||||
|
label: null,
|
||||||
|
value: 'Newest',
|
||||||
|
icons: 'sort-amount-desc',
|
||||||
|
order: 'createdAt_desc',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,6 +52,9 @@ export const mutations = {
|
|||||||
if (isEmpty(get(filter, 'emotions_some.emotion_in'))) delete filter.emotions_some
|
if (isEmpty(get(filter, 'emotions_some.emotion_in'))) delete filter.emotions_some
|
||||||
state.filter = filter
|
state.filter = filter
|
||||||
},
|
},
|
||||||
|
UPDATE_ORDER(state, postsOrder) {
|
||||||
|
state.postsOrder = postsOrder
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getters = {
|
export const getters = {
|
||||||
@ -64,4 +73,7 @@ export const getters = {
|
|||||||
filteredByEmotions(state) {
|
filteredByEmotions(state) {
|
||||||
return get(state.filter, 'emotions_some.emotion_in') || []
|
return get(state.filter, 'emotions_some.emotion_in') || []
|
||||||
},
|
},
|
||||||
|
postsOrder(state) {
|
||||||
|
return state.postsOrder
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user