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