feat: add option to prioritize same instance friends in sidebar (#1238)

This commit is contained in:
pa
2026-03-16 13:46:17 +09:00
parent 2a5039b6c9
commit eeb50f15b5
4 changed files with 60 additions and 17 deletions

View File

@@ -253,6 +253,7 @@
const {
isSidebarGroupByInstance,
isHideFriendsInSameInstance,
isSameInstanceAboveFavorites,
isSidebarDivideByFriendGroup,
sidebarFavoriteGroups,
sidebarFavoriteGroupOrder,
@@ -403,23 +404,7 @@
});
});
const virtualRows = computed(() => {
const rows = [];
rows.push(
buildToggleRow({
key: 'me-header',
label: t('side_panel.me'),
expanded: isFriendsGroupMe.value,
headerPadding: '0 0 5px',
onClick: toggleFriendsGroupMe
})
);
if (isFriendsGroupMe.value) {
rows.push({ type: 'me-item', key: `me:${currentUser.value?.id ?? 'me'}` });
}
function buildFavoriteRows(rows) {
const vipFriendCount = isSidebarDivideByFriendGroup.value
? vipFriendsDivideByGroup.value.reduce((sum, group) => sum + group.length, 0)
: visibleFavoriteOnlineFriends.value.length;
@@ -476,7 +461,9 @@
});
}
}
}
function buildSameInstanceRows(rows) {
if (isSidebarGroupByInstance.value && friendsInSameInstance.value.length) {
rows.push(
buildToggleRow({
@@ -512,6 +499,32 @@
});
}
}
}
const virtualRows = computed(() => {
const rows = [];
rows.push(
buildToggleRow({
key: 'me-header',
label: t('side_panel.me'),
expanded: isFriendsGroupMe.value,
headerPadding: '0 0 5px',
onClick: toggleFriendsGroupMe
})
);
if (isFriendsGroupMe.value) {
rows.push({ type: 'me-item', key: `me:${currentUser.value?.id ?? 'me'}` });
}
if (isSameInstanceAboveFavorites.value) {
buildSameInstanceRows(rows);
buildFavoriteRows(rows);
} else {
buildFavoriteRows(rows);
buildSameInstanceRows(rows);
}
if (onlineFriendsByGroupStatus.value.length) {
rows.push(