aboutsummaryrefslogtreecommitdiff
path: root/src/modules/api.js
diff options
context:
space:
mode:
authorShpuld Shpludson <shp@cock.li>2020-11-06 17:27:25 +0000
committerShpuld Shpludson <shp@cock.li>2020-11-06 17:27:25 +0000
commit23232e1c8f35d7ddc8adb7a6dbf813b2831c90ec (patch)
treeb0c8c409d3af0901cb47de648ccbea53da89c16d /src/modules/api.js
parentb225c3578f3c89af5ed3a0be3f8f3a6bbcedcc7d (diff)
parent60983ae42b584694de0211ca67ef72d492a293c9 (diff)
Merge branch 'develop' into 'master'
Merge develop into master for 2.2.0 See merge request pleroma/pleroma-fe!1278
Diffstat (limited to 'src/modules/api.js')
-rw-r--r--src/modules/api.js22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/modules/api.js b/src/modules/api.js
index 5e213f0d..08485a30 100644
--- a/src/modules/api.js
+++ b/src/modules/api.js
@@ -20,7 +20,7 @@ const api = {
state.fetchers[fetcherName] = fetcher
},
removeFetcher (state, { fetcherName, fetcher }) {
- window.clearInterval(fetcher)
+ state.fetchers[fetcherName].stop()
delete state.fetchers[fetcherName]
},
setWsToken (state, token) {
@@ -72,13 +72,21 @@ const api = {
showImmediately: timelineData.visibleStatuses.length === 0,
timeline: 'friends'
})
+ } else if (message.event === 'delete') {
+ dispatch('deleteStatusById', message.id)
} else if (message.event === 'pleroma:chat_update') {
- dispatch('addChatMessages', {
- chatId: message.chatUpdate.id,
- messages: [message.chatUpdate.lastMessage]
- })
- dispatch('updateChat', { chat: message.chatUpdate })
- maybeShowChatNotification(store, message.chatUpdate)
+ // The setTimeout wrapper is a temporary band-aid to avoid duplicates for the user's own messages when doing optimistic sending.
+ // The cause of the duplicates is the WS event arriving earlier than the HTTP response.
+ // This setTimeout wrapper can be removed once the commit `8e41baff` is in the stable Pleroma release.
+ // (`8e41baff` adds the idempotency key to the chat message entity, which PleromaFE uses when it's available, and it makes this artificial delay unnecessary).
+ setTimeout(() => {
+ dispatch('addChatMessages', {
+ chatId: message.chatUpdate.id,
+ messages: [message.chatUpdate.lastMessage]
+ })
+ dispatch('updateChat', { chat: message.chatUpdate })
+ maybeShowChatNotification(store, message.chatUpdate)
+ }, 100)
}
}
)