aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2020-11-17 15:25:38 +0200
committerHenry Jameson <me@hjkos.com>2020-11-17 15:25:38 +0200
commit49f7c84e3f4c17415fb5b4f17fd789d76fff05f4 (patch)
tree9e116a5ea8a5909bd2384e3bfb2b5f3240c95b63
parentfa2884a8052bfe4f4d9d069ff9d1d15765c3bba8 (diff)
Fix pinned statuses and perhaps some other stuff
-rw-r--r--src/modules/users.js6
-rw-r--r--src/services/entity_normalizer/entity_normalizer.service.js12
2 files changed, 13 insertions, 5 deletions
diff --git a/src/modules/users.js b/src/modules/users.js
index 9245db5c..655db4c7 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -137,11 +137,11 @@ export const mutations = {
},
saveFriendIds (state, { id, friendIds }) {
const user = state.usersObject[id]
- user.friendIds = uniq(concat(user.friendIds, friendIds))
+ user.friendIds = uniq(concat(user.friendIds || [], friendIds))
},
saveFollowerIds (state, { id, followerIds }) {
const user = state.usersObject[id]
- user.followerIds = uniq(concat(user.followerIds, followerIds))
+ user.followerIds = uniq(concat(user.followerIds || [], followerIds))
},
// Because frontend doesn't have a reason to keep these stuff in memory
// outside of viewing someones user profile.
@@ -202,7 +202,9 @@ export const mutations = {
},
setPinnedToUser (state, status) {
const user = state.usersObject[status.user.id]
+ user.pinnedStatusIds = user.pinnedStatusIds || []
const index = user.pinnedStatusIds.indexOf(status.id)
+
if (status.pinned && index === -1) {
user.pinnedStatusIds.push(status.id)
} else if (!status.pinned && index !== -1) {
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index a4c1a1bf..e3a52489 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -2,6 +2,15 @@ import escape from 'escape-html'
import parseLinkHeader from 'parse-link-header'
import { isStatusNotification } from '../notification_utils/notification_utils.js'
+/** NOTICE! **
+ * Do not initialize UI-generated data here.
+ * It will override existing data.
+ *
+ * i.e. user.pinnedStatusIds was set to [] here
+ * UI code would update it with data but upon next user fetch
+ * it would be reverted back to []
+ */
+
const qvitterStatusType = (status) => {
if (status.is_post_verb) {
return 'status'
@@ -173,9 +182,6 @@ export const parseUser = (data) => {
output.locked = data.locked
output.followers_count = data.followers_count
output.statuses_count = data.statuses_count
- output.friendIds = []
- output.followerIds = []
- output.pinnedStatusIds = []
if (data.pleroma) {
output.follow_request_count = data.pleroma.follow_request_count