diff --git a/src/localization/en/en.json b/src/localization/en/en.json index 063bf3bd..f3e0e156 100644 --- a/src/localization/en/en.json +++ b/src/localization/en/en.json @@ -190,11 +190,11 @@ "announcement": "Event Announcement" }, "group": { - "announcement": "Announcement", - "informative": "Informative", - "invite": "Invite", - "joinRequest": "Join Request", - "transfer": "Transfer", + "announcement": "Group Announcement", + "informative": "Group Informative", + "invite": "Group Invite", + "joinRequest": "Group Join Request", + "transfer": "Group Transfer", "queueReady": "Queue Ready" }, "moderation": { diff --git a/src/service/watchState.js b/src/service/watchState.js index 591b8392..a2639f41 100644 --- a/src/service/watchState.js +++ b/src/service/watchState.js @@ -1,7 +1,8 @@ import { reactive } from 'vue'; const watchState = reactive({ isLoggedIn: false, - isFriendsLoaded: false + isFriendsLoaded: false, + isFavoritesLoaded: false }); export { watchState }; diff --git a/src/stores/auth.js b/src/stores/auth.js index 5f4214fb..4cb6324e 100644 --- a/src/stores/auth.js +++ b/src/stores/auth.js @@ -186,6 +186,7 @@ export const useAuthStore = defineStore('Auth', () => { } watchState.isLoggedIn = false; watchState.isFriendsLoaded = false; + watchState.isFavoritesLoaded = false; notificationStore.notificationInitStatus = false; await updateStoredUser(userStore.currentUser); webApiService.clearCookies(); diff --git a/src/stores/favorite.js b/src/stores/favorite.js index e9dd19d7..449b688a 100644 --- a/src/stores/favorite.js +++ b/src/stores/favorite.js @@ -932,6 +932,7 @@ export const useFavoriteStore = defineStore('Favorite', () => { refreshFavoriteGroups(); friendStore.updateLocalFavoriteFriends(); state.isFavoriteLoading = false; + watchState.isFavoritesLoaded = true; } }); } diff --git a/src/stores/feed.js b/src/stores/feed.js index 0d1cbbdc..b892fbba 100644 --- a/src/stores/feed.js +++ b/src/stores/feed.js @@ -79,6 +79,15 @@ export const useFeedStore = defineStore('Feed', () => { { flush: 'sync' } ); + watch( + () => watchState.isFavoritesLoaded, + (isFavoritesLoaded) => { + if (isFavoritesLoaded && state.feedTable.vip) { + feedTableLookup(); // re-apply VIP filter after friends are loaded + } + } + ); + function feedSearch(row) { const value = state.feedTable.search.toUpperCase(); if (!value) { diff --git a/src/stores/gameLog.js b/src/stores/gameLog.js index f8e5ddcf..e60a2aae 100644 --- a/src/stores/gameLog.js +++ b/src/stores/gameLog.js @@ -93,11 +93,10 @@ export const useGameLogStore = defineStore('GameLog', () => { state.gameLogTable.filter = JSON.parse( await configRepository.getString('VRCX_gameLogTableFilters', '[]') ); - // gameLog loads before favorites - // await configRepository.getBool( - // 'VRCX_gameLogTableVIPFilter', - // false - // ); + state.gameLogTable.vip = await configRepository.getBool( + 'VRCX_gameLogTableVIPFilter', + false + ); } init(); @@ -149,6 +148,15 @@ export const useGameLogStore = defineStore('GameLog', () => { { flush: 'sync' } ); + watch( + () => watchState.isFavoritesLoaded, + (isFavoritesLoaded) => { + if (isFavoritesLoaded && state.gameLogTable.vip) { + gameLogTableLookup(); // re-apply VIP filter after friends are loaded + } + } + ); + watch( () => watchState.isFriendsLoaded, (isFriendsLoaded) => {