diff --git a/src/components/StatusBar.vue b/src/components/StatusBar.vue
index 7214a04e..f622aac3 100644
--- a/src/components/StatusBar.vue
+++ b/src/components/StatusBar.vue
@@ -116,7 +116,9 @@
v-else
class="flex items-center gap-1 px-2 h-[22px] whitespace-nowrap border-r border-border cursor-pointer hover:bg-accent"
@click="vrcStatusStore.openStatusPage()">
-
+
{{ t('status_bar.servers') }}
@@ -127,7 +129,9 @@
align="start"
:side-offset="4">
-
+
{{
t('status_bar.servers_issue')
}}
diff --git a/src/stores/vrcStatus.js b/src/stores/vrcStatus.js
index e3b46830..6157884a 100644
--- a/src/stores/vrcStatus.js
+++ b/src/stores/vrcStatus.js
@@ -11,6 +11,7 @@ export const useVrcStatusStore = defineStore('VrcStatus', () => {
const vrcStatusApiUrl = 'https://status.vrchat.com/api/v2';
const lastStatus = ref('');
+ const lastStatusIndicator = ref('');
const lastStatusTime = ref(null);
const lastStatusSummary = ref('');
const lastTimeFetched = ref(0);
@@ -25,6 +26,8 @@ export const useVrcStatusStore = defineStore('VrcStatus', () => {
const hasIssue = computed(() => !!lastStatus.value);
+ const isMajor = computed(() => lastStatusIndicator.value === 'major');
+
/**
* @returns {void}
*/
@@ -54,10 +57,12 @@ export const useVrcStatusStore = defineStore('VrcStatus', () => {
lastStatusTime.value = new Date(data.page.updated_at);
if (data.status.description === 'All Systems Operational') {
lastStatus.value = '';
+ lastStatusIndicator.value = '';
pollingInterval.value = 15 * 60 * 1000; // 15 minutes
return;
}
lastStatus.value = data.status.description;
+ lastStatusIndicator.value = data.status.indicator || '';
pollingInterval.value = 2 * 60 * 1000; // 2 minutes
getVrcStatusSummary();
}
@@ -116,10 +121,12 @@ export const useVrcStatusStore = defineStore('VrcStatus', () => {
return {
lastStatus,
+ lastStatusIndicator,
lastStatusTime,
lastStatusSummary,
statusText,
hasIssue,
+ isMajor,
openStatusPage,
onBrowserFocus,
getVrcStatus