forked from AkkomaGang/akkoma-fe
filter pinned statuses based on pinned entity instead of a separate user entity
This commit is contained in:
parent
cd0a7afa06
commit
e8abe1273b
4 changed files with 8 additions and 13 deletions
|
@ -1,4 +1,5 @@
|
||||||
import get from 'lodash/get'
|
import get from 'lodash/get'
|
||||||
|
import filter from 'lodash/filter'
|
||||||
import UserCard from '../user_card/user_card.vue'
|
import UserCard from '../user_card/user_card.vue'
|
||||||
import FollowCard from '../follow_card/follow_card.vue'
|
import FollowCard from '../follow_card/follow_card.vue'
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from '../timeline/timeline.vue'
|
||||||
|
@ -41,6 +42,9 @@ const UserProfile = {
|
||||||
timeline () {
|
timeline () {
|
||||||
return this.$store.state.statuses.timelines.user
|
return this.$store.state.statuses.timelines.user
|
||||||
},
|
},
|
||||||
|
pinnedStatuses () {
|
||||||
|
return filter(this.timeline.statuses, { pinned: true })
|
||||||
|
},
|
||||||
favorites () {
|
favorites () {
|
||||||
return this.$store.state.statuses.timelines.favorites
|
return this.$store.state.statuses.timelines.favorites
|
||||||
},
|
},
|
||||||
|
@ -54,9 +58,6 @@ const UserProfile = {
|
||||||
user () {
|
user () {
|
||||||
return this.$store.getters.findUser(this.userId)
|
return this.$store.getters.findUser(this.userId)
|
||||||
},
|
},
|
||||||
pinnedStatuses () {
|
|
||||||
return this.user.pinnedStatusIds.map(id => this.$store.state.statuses.allStatusesObject[id])
|
|
||||||
},
|
|
||||||
isExternal () {
|
isExternal () {
|
||||||
return this.$route.name === 'external-user-profile'
|
return this.$route.name === 'external-user-profile'
|
||||||
},
|
},
|
||||||
|
@ -99,6 +100,7 @@ const UserProfile = {
|
||||||
if (this.isUs) {
|
if (this.isUs) {
|
||||||
this.$store.dispatch('startFetchingTimeline', { timeline: 'favorites', userId })
|
this.$store.dispatch('startFetchingTimeline', { timeline: 'favorites', userId })
|
||||||
}
|
}
|
||||||
|
// Fetch all pinned statuses immediately
|
||||||
this.$store.dispatch('fetchPinnedStatuses', userId)
|
this.$store.dispatch('fetchPinnedStatuses', userId)
|
||||||
},
|
},
|
||||||
cleanUp () {
|
cleanUp () {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { remove, slice, each, findIndex, find, maxBy, minBy, merge, first, last, isArray, omitBy, map } from 'lodash'
|
import { remove, slice, each, findIndex, find, maxBy, minBy, merge, first, last, isArray, omitBy } from 'lodash'
|
||||||
import { set } from 'vue'
|
import { set } from 'vue'
|
||||||
import apiService from '../services/api/api.service.js'
|
import apiService from '../services/api/api.service.js'
|
||||||
// import parse from '../services/status_parser/status_parser.js'
|
// import parse from '../services/status_parser/status_parser.js'
|
||||||
|
@ -541,12 +541,9 @@ const statuses = {
|
||||||
rootState.api.backendInteractor.unfavorite(status.id)
|
rootState.api.backendInteractor.unfavorite(status.id)
|
||||||
.then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))
|
.then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))
|
||||||
},
|
},
|
||||||
fetchPinnedStatuses ({ rootState, dispatch, commit }, userId) {
|
fetchPinnedStatuses ({ rootState, dispatch }, userId) {
|
||||||
rootState.api.backendInteractor.fetchPinnedStatuses(userId)
|
rootState.api.backendInteractor.fetchPinnedStatuses(userId)
|
||||||
.then(statuses => {
|
.then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId }))
|
||||||
dispatch('addNewStatuses', { statuses })
|
|
||||||
commit('savePinnedStatusIds', { userId, statusIds: map(statuses, 'id') })
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
updatePinned ({ rootState, commit }, status) {
|
updatePinned ({ rootState, commit }, status) {
|
||||||
commit('setPinned', { status })
|
commit('setPinned', { status })
|
||||||
|
|
|
@ -160,9 +160,6 @@ export const mutations = {
|
||||||
saveMuteIds (state, muteIds) {
|
saveMuteIds (state, muteIds) {
|
||||||
state.currentUser.muteIds = muteIds
|
state.currentUser.muteIds = muteIds
|
||||||
},
|
},
|
||||||
savePinnedStatusIds (state, { userId, statusIds }) {
|
|
||||||
state.usersObject[userId].pinnedStatusIds = statusIds
|
|
||||||
},
|
|
||||||
addMuteId (state, muteId) {
|
addMuteId (state, muteId) {
|
||||||
if (state.currentUser.muteIds.indexOf(muteId) === -1) {
|
if (state.currentUser.muteIds.indexOf(muteId) === -1) {
|
||||||
state.currentUser.muteIds.push(muteId)
|
state.currentUser.muteIds.push(muteId)
|
||||||
|
|
|
@ -131,7 +131,6 @@ export const parseUser = (data) => {
|
||||||
output.statuses_count = data.statuses_count
|
output.statuses_count = data.statuses_count
|
||||||
output.friendIds = []
|
output.friendIds = []
|
||||||
output.followerIds = []
|
output.followerIds = []
|
||||||
output.pinnedStatusIds = []
|
|
||||||
|
|
||||||
if (data.pleroma) {
|
if (data.pleroma) {
|
||||||
output.follow_request_count = data.pleroma.follow_request_count
|
output.follow_request_count = data.pleroma.follow_request_count
|
||||||
|
|
Loading…
Reference in a new issue