diff --git a/src/components/App/StatusIndicator.vue b/src/components/App/StatusIndicator.vue index 7d7332f..caffdf5 100644 --- a/src/components/App/StatusIndicator.vue +++ b/src/components/App/StatusIndicator.vue @@ -204,10 +204,18 @@ export default defineComponent({ deep: true, handler(statuses: StoreState['dataStatuses']) { + const connectionStatus = statuses.connection; const sceneryDataStatus = statuses.sceneries; const trainsDataStatus = statuses.trains; const dispatcherDataStatus = statuses.dispatchers; + if (connectionStatus == DataStatus.Error) { + this.setSignalStatus(connectionStatus); + this.indicator.status = connectionStatus; + this.indicator.message = 'data-status.S1a-connection'; + return; + } + if (sceneryDataStatus == DataStatus.Error) { this.setSignalStatus(sceneryDataStatus); this.indicator.status = sceneryDataStatus; diff --git a/src/locales/en.json b/src/locales/en.json index 160a48c..c4e9bde 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -11,7 +11,7 @@ "migration-confirm": "Roger that!" }, "data-status": { - "S1a-connection": "S1a signal
Cannot connect with SWDR API service!", + "S1a-connection": "S1a signal
Cannot connect with Stacjownik API service!", "S1a-sceneries": "S1a signal
Cannot load online stations data!", "S2": "S2 signal
All data loaded successfully!", "S3": "S3 signal
Loading data...", diff --git a/src/locales/pl.json b/src/locales/pl.json index 22ec563..f1e32cc 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -12,7 +12,7 @@ }, "data-status": { - "S1a-connection": "Sygnał S1a
Błąd podczas próby połączenia się z serwisem SWDR!", + "S1a-connection": "Sygnał S1a
Błąd podczas próby połączenia się z API Stacjownika!", "S1a-sceneries": "Sygnał S1a
Błąd podczas pobierania danych o sceneriach online!", "S2": "Sygnał S2
Pomyślnie załadowano dane!", "S3": "Sygnał S3
Pobieranie danych...", diff --git a/src/store/store.ts b/src/store/store.ts index d9f6e65..32b606d 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -334,6 +334,12 @@ export const useStore = defineStore('store', { transports: ['websocket', 'polling'], rememberUpgrade: true, reconnection: true, + timeout: 10000 + }); + + socket.on('connect_error', (err) => { + this.dataStatuses.connection = DataStatus.Error; + this.webSocket = undefined; }); socket.on('UPDATE', (data: APIData) => { @@ -347,6 +353,7 @@ export const useStore = defineStore('store', { }); this.webSocket = socket; + this.dataStatuses.connection = DataStatus.Loaded; }, async connectToAPI() {