commit: 48bef143d86b02d7feeeac3e1faa0e5e00e09ea6
parent 64fa662644dd385dd746f2b309eef6287f5eae04
Author: Henry Jameson <spam@hjkos.com>
Date: Wed, 13 Jan 2021 21:33:20 +0200
fix not being able to re-enable sockets until page refresh
Diffstat:
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
@@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Handle punycode in screen names
- Fixed local dev mode having non-functional websockets in some cases
- Show notices for websocket events (errors, abnormal closures, reconnections)
+- Fix not being able to re-enable websocket until page refresh
## [2.2.2] - 2020-12-22
### Added
diff --git a/src/modules/api.js b/src/modules/api.js
@@ -40,7 +40,16 @@ const api = {
// Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets
enableMastoSockets (store) {
const { state, dispatch } = store
- if (state.mastoUserSocket) return
+ // Do not initialize unless nonexistent or closed
+ if (
+ state.mastoUserSocket &&
+ ![
+ WebSocket.CLOSED,
+ WebSocket.CLOSING
+ ].includes(state.mastoUserSocket.getState())
+ ) {
+ return
+ }
return dispatch('startMastoUserSocket')
},
disableMastoSockets (store) {
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
@@ -1152,6 +1152,7 @@ export const ProcessedWS = ({
// 1000 = Normal Closure
eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }
+ eventTarget.getState = () => socket.readyState
return eventTarget
}