mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-05 06:16:05 +02:00
Relocate sidebar settings from the Appearance tab to a new popover within the Sidebar
This commit is contained in:
+15
-27
@@ -292,9 +292,12 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
|
||||
if (
|
||||
args.params.type === 'friend' &&
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
'friend:' + args.params.tags
|
||||
)
|
||||
(!generalSettingsStore.localFavoriteFriendsGroups.some(
|
||||
(key) => !key.startsWith('local:')
|
||||
) ||
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
'friend:' + args.params.tags
|
||||
))
|
||||
) {
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
@@ -793,17 +796,19 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
};
|
||||
cachedFavorites.set(ref.id, ref);
|
||||
cachedFavoritesByObjectId.set(ref.favoriteId, ref);
|
||||
ref.$groupKey = `${ref.type}:${String(ref.tags[0])}`;
|
||||
if (
|
||||
ref.type === 'friend' &&
|
||||
(generalSettingsStore.localFavoriteFriendsGroups.length === 0 ||
|
||||
(!generalSettingsStore.localFavoriteFriendsGroups.some(
|
||||
(key) => !key.startsWith('local:')
|
||||
) ||
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
ref.groupKey
|
||||
ref.$groupKey
|
||||
))
|
||||
) {
|
||||
friendStore.localFavoriteFriends.add(ref.favoriteId);
|
||||
friendStore.updateSidebarFavorites();
|
||||
}
|
||||
ref.$groupKey = `${ref.type}:${String(ref.tags[0])}`;
|
||||
if (!isFavoriteLoading.value) {
|
||||
countFavoriteGroups();
|
||||
}
|
||||
@@ -1551,13 +1556,7 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
if (userDialog.visible && userDialog.id === userId) {
|
||||
userDialog.isFavorite = true;
|
||||
}
|
||||
if (
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
`local:${group}`
|
||||
)
|
||||
) {
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1612,13 +1611,7 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
getCachedFavoritesByObjectId(userId) ||
|
||||
isInAnyLocalFriendGroup(userId);
|
||||
}
|
||||
if (
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
`local:${group}`
|
||||
)
|
||||
) {
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1627,13 +1620,7 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
function deleteLocalFriendFavoriteGroup(group) {
|
||||
delete localFriendFavorites[group];
|
||||
database.deleteFriendFavoriteGroup(group);
|
||||
if (
|
||||
generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
`local:${group}`
|
||||
)
|
||||
) {
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1701,6 +1688,7 @@ export const useFavoriteStore = defineStore('Favorite', () => {
|
||||
}
|
||||
|
||||
replaceReactiveObject(localFriendFavorites, localFavorites);
|
||||
friendStore.updateLocalFavoriteFriends();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+12
-13
@@ -305,26 +305,25 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
function updateLocalFavoriteFriends() {
|
||||
const favoriteStore = useFavoriteStore();
|
||||
localFavoriteFriends.clear();
|
||||
const groups = generalSettingsStore.localFavoriteFriendsGroups;
|
||||
const hasRemoteGroupFilter = groups.some(
|
||||
(key) => !key.startsWith('local:')
|
||||
);
|
||||
// Remote favorites: filter by selected remote groups
|
||||
for (const ref of favoriteStore.cachedFavorites.values()) {
|
||||
if (
|
||||
ref.type === 'friend' &&
|
||||
(generalSettingsStore.localFavoriteFriendsGroups.includes(
|
||||
ref.$groupKey
|
||||
) ||
|
||||
generalSettingsStore.localFavoriteFriendsGroups.length ===
|
||||
0)
|
||||
(!hasRemoteGroupFilter || groups.includes(ref.$groupKey))
|
||||
) {
|
||||
localFavoriteFriends.add(ref.favoriteId);
|
||||
}
|
||||
}
|
||||
for (const selectedKey of generalSettingsStore.localFavoriteFriendsGroups) {
|
||||
if (selectedKey.startsWith('local:')) {
|
||||
const groupName = selectedKey.slice(6);
|
||||
const userIds = favoriteStore.localFriendFavorites[groupName];
|
||||
if (userIds) {
|
||||
for (let i = 0; i < userIds.length; ++i) {
|
||||
localFavoriteFriends.add(userIds[i]);
|
||||
}
|
||||
// Local favorites: always include all
|
||||
for (const groupName in favoriteStore.localFriendFavorites) {
|
||||
const userIds = favoriteStore.localFriendFavorites[groupName];
|
||||
if (userIds) {
|
||||
for (let i = 0; i < userIds.length; ++i) {
|
||||
localFavoriteFriends.add(userIds[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
const isSidebarGroupByInstance = ref(true);
|
||||
const isHideFriendsInSameInstance = ref(false);
|
||||
const isSidebarDivideByFriendGroup = ref(false);
|
||||
const sidebarFavoriteGroups = ref([]);
|
||||
const hideUserNotes = ref(false);
|
||||
const hideUserMemos = ref(false);
|
||||
const hideUnfriends = ref(false);
|
||||
@@ -150,6 +151,7 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
isSidebarGroupByInstanceConfig,
|
||||
isHideFriendsInSameInstanceConfig,
|
||||
isSidebarDivideByFriendGroupConfig,
|
||||
sidebarFavoriteGroupsConfig,
|
||||
hideUserNotesConfig,
|
||||
hideUserMemosConfig,
|
||||
hideUnfriendsConfig,
|
||||
@@ -205,6 +207,7 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
'VRCX_sidebarDivideByFriendGroup',
|
||||
true
|
||||
),
|
||||
configRepository.getString('VRCX_sidebarFavoriteGroups', '[]'),
|
||||
configRepository.getBool('VRCX_hideUserNotes', false),
|
||||
configRepository.getBool('VRCX_hideUserMemos', false),
|
||||
configRepository.getBool('VRCX_hideUnfriends', false),
|
||||
@@ -293,6 +296,9 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
isHideFriendsInSameInstanceConfig;
|
||||
isSidebarDivideByFriendGroup.value =
|
||||
isSidebarDivideByFriendGroupConfig;
|
||||
sidebarFavoriteGroups.value = JSON.parse(
|
||||
sidebarFavoriteGroupsConfig
|
||||
);
|
||||
hideUserNotes.value = hideUserNotesConfig;
|
||||
hideUserMemos.value = hideUserMemosConfig;
|
||||
hideUnfriends.value = hideUnfriendsConfig;
|
||||
@@ -701,6 +707,16 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
isSidebarDivideByFriendGroup.value
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @param {string[]} value
|
||||
*/
|
||||
function setSidebarFavoriteGroups(value) {
|
||||
sidebarFavoriteGroups.value = value;
|
||||
configRepository.setString(
|
||||
'VRCX_sidebarFavoriteGroups',
|
||||
JSON.stringify(value)
|
||||
);
|
||||
}
|
||||
function setHideUserNotes() {
|
||||
hideUserNotes.value = !hideUserNotes.value;
|
||||
configRepository.setBool('VRCX_hideUserNotes', hideUserNotes.value);
|
||||
@@ -958,6 +974,7 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
isSidebarGroupByInstance,
|
||||
isHideFriendsInSameInstance,
|
||||
isSidebarDivideByFriendGroup,
|
||||
sidebarFavoriteGroups,
|
||||
hideUserNotes,
|
||||
hideUserMemos,
|
||||
hideUnfriends,
|
||||
@@ -995,6 +1012,7 @@ export const useAppearanceSettingsStore = defineStore(
|
||||
setIsSidebarGroupByInstance,
|
||||
setIsHideFriendsInSameInstance,
|
||||
setIsSidebarDivideByFriendGroup,
|
||||
setSidebarFavoriteGroups,
|
||||
setHideUserNotes,
|
||||
setHideUserMemos,
|
||||
setHideUnfriends,
|
||||
|
||||
Reference in New Issue
Block a user