This commit is contained in:
Natsumi
2025-01-27 11:38:41 +13:00
parent d3bcaf130a
commit f1cb43516b

View File

@@ -2848,7 +2848,7 @@ console.log(`isLinux: ${LINUX}`);
API.$on('LOGIN', function () { API.$on('LOGIN', function () {
$app.localFavoriteFriends.clear(); $app.localFavoriteFriends.clear();
$app.currentUserGroupsInit = false; $app.currentUserGroupsInit = false;
$app.localFavoriteFriendsDivideByGroup = new Map(); $app.localFavoriteFriendsDivideByGroup.clear();
this.cachedFavorites.clear(); this.cachedFavorites.clear();
this.cachedFavoritesByObjectId.clear(); this.cachedFavoritesByObjectId.clear();
this.cachedFavoriteGroups.clear(); this.cachedFavoriteGroups.clear();
@@ -2927,11 +2927,7 @@ console.log(`isLinux: ${LINUX}`);
this.cachedFavoritesByObjectId.delete(args.params.objectId); this.cachedFavoritesByObjectId.delete(args.params.objectId);
$app.localFavoriteFriends.delete(args.params.objectId); $app.localFavoriteFriends.delete(args.params.objectId);
$app.localFavoriteFriendsDivideByGroup.forEach((group, key) => { $app.localFavoriteFriendsDivideByGroup.forEach((group, key) => {
for (let i = group.length - 1; i >= 0; i--) { $app.removeFromArray(group, args.params.objectId);
if (group[i] === args.params.objectId) {
group.splice(i, 1);
}
}
if (group.length === 0) { if (group.length === 0) {
$app.localFavoriteFriendsDivideByGroup.delete(key); $app.localFavoriteFriendsDivideByGroup.delete(key);
} }
@@ -2991,11 +2987,7 @@ console.log(`isLinux: ${LINUX}`);
this.cachedFavoritesByObjectId.delete(ref.favoriteId); this.cachedFavoritesByObjectId.delete(ref.favoriteId);
$app.localFavoriteFriends.delete(ref.favoriteId); $app.localFavoriteFriends.delete(ref.favoriteId);
$app.localFavoriteFriendsDivideByGroup.forEach((group, key) => { $app.localFavoriteFriendsDivideByGroup.forEach((group, key) => {
for (let i = group.length - 1; i >= 0; i--) { $app.removeFromArray(group, ref.favoriteId);
if (group[i] === ref.favoriteId) {
group.splice(i, 1);
}
}
if (group.length === 0) { if (group.length === 0) {
$app.localFavoriteFriendsDivideByGroup.delete(key); $app.localFavoriteFriendsDivideByGroup.delete(key);
} }
@@ -3067,10 +3059,6 @@ console.log(`isLinux: ${LINUX}`);
$app.localFavoriteFriendsGroups.includes(ref.groupKey)) $app.localFavoriteFriendsGroups.includes(ref.groupKey))
) { ) {
$app.localFavoriteFriends.add(ref.favoriteId); $app.localFavoriteFriends.add(ref.favoriteId);
$app.localFavoriteFriendsDivideByGroup.get(ref.$groupKey) &&
$app.localFavoriteFriendsDivideByGroup
.get(ref.$groupKey)
.push(ref.favoriteId);
$app.updateSidebarFriendsList(); $app.updateSidebarFriendsList();
} }
} else { } else {
@@ -3083,10 +3071,9 @@ console.log(`isLinux: ${LINUX}`);
ref.favoriteId ref.favoriteId
]); ]);
} else { } else {
$app.localFavoriteFriendsDivideByGroup.get(ref.$groupKey) && $app.localFavoriteFriendsDivideByGroup
$app.localFavoriteFriendsDivideByGroup .get(ref.$groupKey)
.get(ref.$groupKey) .push(ref.favoriteId);
.push(ref.favoriteId);
} }
if (ref.$isDeleted === false && ref.$groupRef === null) { if (ref.$isDeleted === false && ref.$groupRef === null) {
@@ -3101,7 +3088,7 @@ console.log(`isLinux: ${LINUX}`);
API.expireFavorites = function () { API.expireFavorites = function () {
$app.localFavoriteFriends.clear(); $app.localFavoriteFriends.clear();
$app.localFavoriteFriendsDivideByGroup = new Map(); $app.localFavoriteFriendsDivideByGroup.clear();
this.cachedFavorites.clear(); this.cachedFavorites.clear();
this.cachedFavoritesByObjectId.clear(); this.cachedFavoritesByObjectId.clear();
$app.favoriteObjects.clear(); $app.favoriteObjects.clear();
@@ -5163,38 +5150,43 @@ console.log(`isLinux: ${LINUX}`);
// VIP friends divide by group // VIP friends divide by group
$app.computed.vipFriendsDivideByGroup = function () { $app.computed.vipFriendsDivideByGroup = function () {
const friendMap = new Map();
const array = []; const array = [];
const helloYesThisIsDynamic = this.vipFriends_;
for (const [key, value] of this.localFavoriteFriendsDivideByGroup) { for (const [key, value] of this.localFavoriteFriendsDivideByGroup) {
let friends = [];
for (const item of value) {
const friend = this.vipFriendsByGroupStatus.find(
(friend) => friend.id === item
);
if (friend) {
friends.push(friend);
}
}
if (friends.length === 0) {
continue;
}
friends.sort(getFriendsSortFunction(this.sidebarSortMethods));
let groupName = API.favoriteFriendGroups.find(
(item) => item.key === key
)?.displayName;
if (!groupName) {
groupName = key;
}
array.push({ array.push({
key: key, key: key,
value: value value: friends,
.map((item) => { displayName: groupName
return this.vipFriendsByGroupStatus.find(
(friend) => friend.id === item
);
})
.filter((item) => item !== undefined),
displayName: API.favoriteFriendGroups.find(
(item) => item.key === key
)?.displayName
}); });
} }
const filteredArray = array.filter((item) => { array.sort((a, b) => {
return !(Array.isArray(item.value) && item.value.length === 0); return a.key.localeCompare(b.key);
}); });
if (this.sortVIPFriends) { return array;
this.filteredArray.forEach((group) => {
group.sort(getFriendsSortFunction(this.sidebarSortMethods));
});
}
this.sortVIPFriends = false;
return filteredArray;
}; };
// Online friends // Online friends
@@ -22060,15 +22052,9 @@ console.log(`isLinux: ${LINUX}`);
'[]' '[]'
) )
); );
$app.data.localFavoriteFriendsDivideByGroup = JSON.parse(
await configRepository.getString(
'VRCX_localFavoriteFriendsDivideByGroup',
'[]'
)
);
$app.methods.updateLocalFavoriteFriends = function () { $app.methods.updateLocalFavoriteFriends = function () {
this.localFavoriteFriends.clear(); this.localFavoriteFriends.clear();
this.localFavoriteFriendsDivideByGroup = new Map(); this.localFavoriteFriendsDivideByGroup.clear();
for (var ref of API.cachedFavorites.values()) { for (var ref of API.cachedFavorites.values()) {
if ( if (
!ref.$isDeleted && !ref.$isDeleted &&
@@ -22084,10 +22070,9 @@ console.log(`isLinux: ${LINUX}`);
ref.favoriteId ref.favoriteId
]); ]);
} else { } else {
this.localFavoriteFriendsDivideByGroup.get(ref.$groupKey) && this.localFavoriteFriendsDivideByGroup
this.localFavoriteFriendsDivideByGroup .get(ref.$groupKey)
.get(ref.$groupKey) .push(ref.favoriteId);
.push(ref.favoriteId);
} }
} }
} }
@@ -22097,10 +22082,6 @@ console.log(`isLinux: ${LINUX}`);
'VRCX_localFavoriteFriendsGroups', 'VRCX_localFavoriteFriendsGroups',
JSON.stringify(this.localFavoriteFriendsGroups) JSON.stringify(this.localFavoriteFriendsGroups)
); );
configRepository.setString(
'VRCX_localFavoriteFriendsDivideByGroup',
JSON.stringify(this.localFavoriteFriendsDivideByGroup)
);
}; };
$app.methods.updateSidebarFriendsList = function () { $app.methods.updateSidebarFriendsList = function () {