aboutsummaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/api.js15
-rw-r--r--src/modules/users.js13
2 files changed, 23 insertions, 5 deletions
diff --git a/src/modules/api.js b/src/modules/api.js
index 1293e3c8..1bf65db5 100644
--- a/src/modules/api.js
+++ b/src/modules/api.js
@@ -6,6 +6,7 @@ const api = {
backendInteractor: backendInteractorService(),
fetchers: {},
socket: null,
+ mastoSocket: null,
followRequests: []
},
mutations: {
@@ -29,6 +30,20 @@ const api = {
}
},
actions: {
+ startMastoSocket (store) {
+ store.state.mastoSocket = store.state.backendInteractor
+ .startUserSocket({
+ store,
+ onMessage: (message) => {
+ if (!message) return
+ if (message.event === 'notification') {
+ store.dispatch('addNewNotifications', { notifications: [message.notification], older: false })
+ } else if (message.event === 'update') {
+ store.dispatch('addNewStatuses', { statuses: [message.status], userId: false, showImmediately: false, timeline: 'friends' })
+ }
+ }
+ })
+ },
startFetchingTimeline (store, { timeline = 'friends', tag = false, userId = false }) {
// Don't start fetching if we already are.
if (store.state.fetchers[timeline]) return
diff --git a/src/modules/users.js b/src/modules/users.js
index e1373220..861a2f4f 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -469,11 +469,14 @@ const users = {
store.dispatch('initializeSocket')
}
- // Start getting fresh posts.
- store.dispatch('startFetchingTimeline', { timeline: 'friends' })
-
- // Start fetching notifications
- store.dispatch('startFetchingNotifications')
+ store.dispatch('startMastoSocket').catch((error) => {
+ console.error(error)
+ // Start getting fresh posts.
+ store.dispatch('startFetchingTimeline', { timeline: 'friends' })
+
+ // Start fetching notifications
+ store.dispatch('startFetchingNotifications')
+ })
// Get user mutes
store.dispatch('fetchMutes')