mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 14:56:06 +02:00
Fix traveling world name, fix sorting grouped players in same instance
This commit is contained in:
+17
-17
@@ -56,6 +56,13 @@
|
|||||||
parse();
|
parse();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function currentInstanceId() {
|
||||||
|
if (typeof props.traveling !== 'undefined' && props.location === 'traveling') {
|
||||||
|
return props.traveling;
|
||||||
|
}
|
||||||
|
return props.location;
|
||||||
|
}
|
||||||
|
|
||||||
function parse() {
|
function parse() {
|
||||||
isTraveling.value = false;
|
isTraveling.value = false;
|
||||||
groupName.value = '';
|
groupName.value = '';
|
||||||
@@ -68,7 +75,7 @@
|
|||||||
setText(L, L.instanceName);
|
setText(L, L.instanceName);
|
||||||
getInstanceName(instanceId)
|
getInstanceName(instanceId)
|
||||||
.then((name) => {
|
.then((name) => {
|
||||||
if (name && props.location === L.tag) {
|
if (name && currentInstanceId() === L.tag) {
|
||||||
setText(L, name);
|
setText(L, name);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -82,7 +89,7 @@
|
|||||||
groupName.value = L.groupId;
|
groupName.value = L.groupId;
|
||||||
getGroupName(instanceId)
|
getGroupName(instanceId)
|
||||||
.then((name) => {
|
.then((name) => {
|
||||||
if (name && props.location === L.tag) {
|
if (name && currentInstanceId() === L.tag) {
|
||||||
groupName.value = name;
|
groupName.value = name;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -114,17 +121,16 @@
|
|||||||
text.value = props.hint;
|
text.value = props.hint;
|
||||||
}
|
}
|
||||||
} else if (L.worldId) {
|
} else if (L.worldId) {
|
||||||
|
if (L.instanceId) {
|
||||||
|
text.value = `${L.worldId} #${instanceName} ${L.accessTypeName}`;
|
||||||
|
} else {
|
||||||
|
text.value = L.worldId;
|
||||||
|
}
|
||||||
const ref = cachedWorlds.get(L.worldId);
|
const ref = cachedWorlds.get(L.worldId);
|
||||||
if (typeof ref === 'undefined') {
|
if (typeof ref === 'undefined') {
|
||||||
const worldName = L.worldId;
|
|
||||||
if (L.instanceId) {
|
|
||||||
text.value = `${worldName} #${instanceName} ${L.accessTypeName}`;
|
|
||||||
} else {
|
|
||||||
text.value = worldName;
|
|
||||||
}
|
|
||||||
getWorldName(L.worldId)
|
getWorldName(L.worldId)
|
||||||
.then((name) => {
|
.then((name) => {
|
||||||
if (name && props.location === L.tag) {
|
if (name && currentInstanceId() === L.tag) {
|
||||||
if (L.instanceId) {
|
if (L.instanceId) {
|
||||||
text.value = `${name} #${instanceName} ${L.accessTypeName}`;
|
text.value = `${name} #${instanceName} ${L.accessTypeName}`;
|
||||||
} else {
|
} else {
|
||||||
@@ -145,10 +151,7 @@
|
|||||||
|
|
||||||
function handleShowWorldDialog() {
|
function handleShowWorldDialog() {
|
||||||
if (props.link) {
|
if (props.link) {
|
||||||
let instanceId = props.location;
|
let instanceId = currentInstanceId();
|
||||||
if (props.traveling && props.location === 'traveling') {
|
|
||||||
instanceId = props.traveling;
|
|
||||||
}
|
|
||||||
if (!instanceId && props.hint.length === 8) {
|
if (!instanceId && props.hint.length === 8) {
|
||||||
verifyShortName('', props.hint);
|
verifyShortName('', props.hint);
|
||||||
return;
|
return;
|
||||||
@@ -162,10 +165,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleShowGroupDialog() {
|
function handleShowGroupDialog() {
|
||||||
let location = props.location;
|
let location = currentInstanceId();
|
||||||
if (isTraveling.value) {
|
|
||||||
location = props.traveling;
|
|
||||||
}
|
|
||||||
if (!location || !props.link) {
|
if (!location || !props.link) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,16 @@ function getFriendsSortFunction(sortMethods) {
|
|||||||
) {
|
) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
// sort pending offline to bottom
|
||||||
|
if (a.pendingOffline && !b.pendingOffline) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (a.pendingOffline && b.pendingOffline) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!a.pendingOffline && b.pendingOffline) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if (a.state !== 'online' || b.state !== 'online') {
|
if (a.state !== 'online' || b.state !== 'online') {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
+34
-257
@@ -16,7 +16,6 @@ import {
|
|||||||
getUserMemo,
|
getUserMemo,
|
||||||
getWorldName,
|
getWorldName,
|
||||||
migrateMemos,
|
migrateMemos,
|
||||||
removeFromArray,
|
|
||||||
isRealInstance
|
isRealInstance
|
||||||
} from '../shared/utils';
|
} from '../shared/utils';
|
||||||
import { useAuthStore } from './auth';
|
import { useAuthStore } from './auth';
|
||||||
@@ -47,14 +46,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
friends: new Map(),
|
friends: new Map(),
|
||||||
onlineFriends_: [],
|
|
||||||
vipFriends_: [],
|
|
||||||
activeFriends_: [],
|
|
||||||
offlineFriends_: [],
|
|
||||||
sortOnlineFriends: false,
|
|
||||||
sortVIPFriends: false,
|
|
||||||
sortActiveFriends: false,
|
|
||||||
sortOfflineFriends: false,
|
|
||||||
localFavoriteFriends: new Set(),
|
localFavoriteFriends: new Set(),
|
||||||
isRefreshFriendsLoading: false,
|
isRefreshFriendsLoading: false,
|
||||||
onlineFriendCount: 0,
|
onlineFriendCount: 0,
|
||||||
@@ -125,125 +116,44 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
// friends_(array) may not have change records in pinia because does not use action
|
|
||||||
const onlineFriends_ = computed({
|
|
||||||
get() {
|
|
||||||
return state.onlineFriends_;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.onlineFriends_ = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const vipFriends_ = computed({
|
|
||||||
get() {
|
|
||||||
return state.vipFriends_;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.vipFriends_ = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const activeFriends_ = computed({
|
|
||||||
get() {
|
|
||||||
return state.activeFriends_;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.activeFriends_ = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const offlineFriends_ = computed({
|
|
||||||
get() {
|
|
||||||
return state.offlineFriends_;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.offlineFriends_ = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const sortOnlineFriends = computed({
|
|
||||||
get() {
|
|
||||||
return state.sortOnlineFriends;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.sortOnlineFriends = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const sortVIPFriends = computed({
|
|
||||||
get() {
|
|
||||||
return state.sortVIPFriends;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.sortVIPFriends = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const sortActiveFriends = computed({
|
|
||||||
get() {
|
|
||||||
return state.sortActiveFriends;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.sortActiveFriends = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const sortOfflineFriends = computed({
|
|
||||||
get() {
|
|
||||||
return state.sortOfflineFriends;
|
|
||||||
},
|
|
||||||
set(value) {
|
|
||||||
state.sortOfflineFriends = value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// VIP friends
|
|
||||||
const vipFriends = computed(() => {
|
const vipFriends = computed(() => {
|
||||||
if (!state.sortVIPFriends) {
|
return Array.from(state.friends.values())
|
||||||
return state.vipFriends_;
|
.filter((f) => f.state === 'online' && f.isVIP)
|
||||||
}
|
.sort(
|
||||||
state.sortVIPFriends = false;
|
getFriendsSortFunction(
|
||||||
|
appearanceSettingsStore.sidebarSortMethods
|
||||||
state.vipFriends_.sort(
|
)
|
||||||
getFriendsSortFunction(appearanceSettingsStore.sidebarSortMethods)
|
);
|
||||||
);
|
|
||||||
return state.vipFriends_;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Online friends
|
|
||||||
const onlineFriends = computed(() => {
|
const onlineFriends = computed(() => {
|
||||||
if (!state.sortOnlineFriends) {
|
return Array.from(state.friends.values())
|
||||||
return state.onlineFriends_;
|
.filter((f) => f.state === 'online' && !f.isVIP)
|
||||||
}
|
.sort(
|
||||||
state.sortOnlineFriends = false;
|
getFriendsSortFunction(
|
||||||
|
appearanceSettingsStore.sidebarSortMethods
|
||||||
state.onlineFriends_.sort(
|
)
|
||||||
getFriendsSortFunction(appearanceSettingsStore.sidebarSortMethods)
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return state.onlineFriends_;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Active friends
|
|
||||||
const activeFriends = computed(() => {
|
const activeFriends = computed(() => {
|
||||||
if (!state.sortActiveFriends) {
|
return Array.from(state.friends.values())
|
||||||
return state.activeFriends_;
|
.filter((f) => f.state === 'active')
|
||||||
}
|
.sort(
|
||||||
state.sortActiveFriends = false;
|
getFriendsSortFunction(
|
||||||
|
appearanceSettingsStore.sidebarSortMethods
|
||||||
state.activeFriends_.sort(
|
)
|
||||||
getFriendsSortFunction(appearanceSettingsStore.sidebarSortMethods)
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return state.activeFriends_;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Offline friends
|
|
||||||
const offlineFriends = computed(() => {
|
const offlineFriends = computed(() => {
|
||||||
if (!state.sortOfflineFriends) {
|
return Array.from(state.friends.values())
|
||||||
return state.offlineFriends_;
|
.filter((f) => f.state === 'offline' || !f.state)
|
||||||
}
|
.sort(
|
||||||
state.sortOfflineFriends = false;
|
getFriendsSortFunction(
|
||||||
|
appearanceSettingsStore.sidebarSortMethods
|
||||||
state.offlineFriends_.sort(
|
)
|
||||||
getFriendsSortFunction(appearanceSettingsStore.sidebarSortMethods)
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return state.offlineFriends_;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const isRefreshFriendsLoading = computed({
|
const isRefreshFriendsLoading = computed({
|
||||||
@@ -280,14 +190,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
friendLog.clear();
|
friendLog.clear();
|
||||||
state.friendLogTable.data = [];
|
state.friendLogTable.data = [];
|
||||||
groupStore.groupInstances = [];
|
groupStore.groupInstances = [];
|
||||||
state.vipFriends_ = [];
|
|
||||||
state.onlineFriends_ = [];
|
|
||||||
state.activeFriends_ = [];
|
|
||||||
state.offlineFriends_ = [];
|
|
||||||
state.sortVIPFriends = false;
|
|
||||||
state.sortOnlineFriends = false;
|
|
||||||
state.sortActiveFriends = false;
|
|
||||||
state.sortOfflineFriends = false;
|
|
||||||
state.onlineFriendCount = 0;
|
state.onlineFriendCount = 0;
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
initFriendsList();
|
initFriendsList();
|
||||||
@@ -402,18 +304,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ctx.isVIP = isVIP;
|
ctx.isVIP = isVIP;
|
||||||
if (ctx.state !== 'online') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
removeFromArray(state.onlineFriends_, ctx);
|
|
||||||
state.vipFriends_.push(ctx);
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.vipFriends_, ctx);
|
|
||||||
state.onlineFriends_.push(ctx);
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -491,40 +381,13 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
userId: id
|
userId: id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (ctx.isVIP) {
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ctx.isVIP !== isVIP) {
|
if (ctx.isVIP !== isVIP) {
|
||||||
ctx.isVIP = isVIP;
|
ctx.isVIP = isVIP;
|
||||||
if (ctx.state === 'online') {
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
removeFromArray(state.onlineFriends_, ctx);
|
|
||||||
state.vipFriends_.push(ctx);
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.vipFriends_, ctx);
|
|
||||||
state.onlineFriends_.push(ctx);
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (typeof ref !== 'undefined' && ctx.name !== ref.displayName) {
|
if (typeof ref !== 'undefined' && ctx.name !== ref.displayName) {
|
||||||
ctx.name = ref.displayName;
|
ctx.name = ref.displayName;
|
||||||
if (ctx.state === 'online') {
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
} else if (ctx.state === 'active') {
|
|
||||||
state.sortActiveFriends = true;
|
|
||||||
} else {
|
|
||||||
state.sortOfflineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
ctx.state === 'online' &&
|
ctx.state === 'online' &&
|
||||||
@@ -684,32 +547,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
ctx.ref.$active_for = Date.now();
|
ctx.ref.$active_for = Date.now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ctx.state === 'online') {
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
removeFromArray(state.vipFriends_, ctx);
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.onlineFriends_, ctx);
|
|
||||||
}
|
|
||||||
} else if (ctx.state === 'active') {
|
|
||||||
removeFromArray(state.activeFriends_, ctx);
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.offlineFriends_, ctx);
|
|
||||||
}
|
|
||||||
if (newState === 'online') {
|
|
||||||
if (isVIP) {
|
|
||||||
state.vipFriends_.push(ctx);
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
state.onlineFriends_.push(ctx);
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
} else if (newState === 'active') {
|
|
||||||
state.activeFriends_.push(ctx);
|
|
||||||
state.sortActiveFriends = true;
|
|
||||||
} else {
|
|
||||||
state.offlineFriends_.push(ctx);
|
|
||||||
state.sortOfflineFriends = true;
|
|
||||||
}
|
|
||||||
if (ctx.state !== newState) {
|
if (ctx.state !== newState) {
|
||||||
ctx.state = newState;
|
ctx.state = newState;
|
||||||
updateOnlineFriendCoutner();
|
updateOnlineFriendCoutner();
|
||||||
@@ -729,17 +566,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state.friends.delete(id);
|
state.friends.delete(id);
|
||||||
if (ctx.state === 'online') {
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
removeFromArray(state.vipFriends_, ctx);
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.onlineFriends_, ctx);
|
|
||||||
}
|
|
||||||
} else if (ctx.state === 'active') {
|
|
||||||
removeFromArray(state.activeFriends_, ctx);
|
|
||||||
} else {
|
|
||||||
removeFromArray(state.offlineFriends_, ctx);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -824,21 +650,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
ctx.name = ref.name;
|
ctx.name = ref.name;
|
||||||
}
|
}
|
||||||
state.friends.set(id, ctx);
|
state.friends.set(id, ctx);
|
||||||
if (ctx.state === 'online') {
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
state.vipFriends_.push(ctx);
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
state.onlineFriends_.push(ctx);
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
} else if (ctx.state === 'active') {
|
|
||||||
state.activeFriends_.push(ctx);
|
|
||||||
state.sortActiveFriends = true;
|
|
||||||
} else {
|
|
||||||
state.offlineFriends_.push(ctx);
|
|
||||||
state.sortOfflineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1033,18 +844,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
reconnectWebSocket();
|
reconnectWebSocket();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} userId
|
|
||||||
*/
|
|
||||||
function updateFriendGPS(userId) {
|
|
||||||
const ctx = state.friends.get(userId);
|
|
||||||
if (ctx.isVIP) {
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
} else {
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateOnlineFriendCoutner() {
|
function updateOnlineFriendCoutner() {
|
||||||
const onlineFriendCount =
|
const onlineFriendCount =
|
||||||
vipFriends.value.length + onlineFriends.value.length;
|
vipFriends.value.length + onlineFriends.value.length;
|
||||||
@@ -1609,8 +1408,8 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
state.friendNumber = state.friends.size + 1;
|
state.friendNumber = state.friends.size + 1;
|
||||||
const friendLogTable = getFriendLogFriendOrder();
|
const friendLogTable = getFriendLogFriendOrder();
|
||||||
for (let i = friendLogTable.length - 1; i > -1; i--) {
|
for (let i = friendLogTable.length - 1; i > -1; i--) {
|
||||||
const friendLog = friendLogTable[i];
|
const friendLogEntry = friendLogTable[i];
|
||||||
const ref = friendLog.get(friendLog.id);
|
const ref = friendLog.get(friendLogEntry.id);
|
||||||
if (!ref) {
|
if (!ref) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1620,7 +1419,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
ref.friendNumber = --state.friendNumber;
|
ref.friendNumber = --state.friendNumber;
|
||||||
friendLog.set(ref.userId, ref);
|
friendLog.set(ref.userId, ref);
|
||||||
database.setFriendLogCurrent(ref);
|
database.setFriendLogCurrent(ref);
|
||||||
const friendRef = state.friends.get(friendLog.id);
|
const friendRef = state.friends.get(friendLogEntry.id);
|
||||||
if (friendRef?.ref) {
|
if (friendRef?.ref) {
|
||||||
friendRef.ref.$friendNumber = ref.friendNumber;
|
friendRef.ref.$friendNumber = ref.friendNumber;
|
||||||
}
|
}
|
||||||
@@ -1743,15 +1542,15 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
// will need to apply in reverse order instead
|
// will need to apply in reverse order instead
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (const friendLog of friendLogTable) {
|
for (const friendLogEntry of friendLogTable) {
|
||||||
const ref = friendLog.get(friendLog.id);
|
const ref = friendLog.get(friendLogEntry.id);
|
||||||
if (!ref || ref.friendNumber) {
|
if (!ref || ref.friendNumber) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ref.friendNumber = ++state.friendNumber;
|
ref.friendNumber = ++state.friendNumber;
|
||||||
friendLog.set(ref.userId, ref);
|
friendLog.set(ref.userId, ref);
|
||||||
database.setFriendLogCurrent(ref);
|
database.setFriendLogCurrent(ref);
|
||||||
const friendRef = state.friends.get(friendLog.id);
|
const friendRef = state.friends.get(friendLogEntry.id);
|
||||||
if (friendRef?.ref) {
|
if (friendRef?.ref) {
|
||||||
friendRef.ref.$friendNumber = ref.friendNumber;
|
friendRef.ref.$friendNumber = ref.friendNumber;
|
||||||
}
|
}
|
||||||
@@ -1773,13 +1572,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveSidebarSortOrder() {
|
|
||||||
state.sortVIPFriends = true;
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
state.sortActiveFriends = true;
|
|
||||||
state.sortOfflineFriends = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function initFriendsList() {
|
async function initFriendsList() {
|
||||||
const userId = userStore.currentUser.id;
|
const userId = userStore.currentUser.id;
|
||||||
state.isRefreshFriendsLoading = true;
|
state.isRefreshFriendsLoading = true;
|
||||||
@@ -1806,10 +1598,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
|
|
||||||
tryApplyFriendOrder(); // once again
|
tryApplyFriendOrder(); // once again
|
||||||
getAllUserStats(); // joinCount, lastSeen, timeSpent
|
getAllUserStats(); // joinCount, lastSeen, timeSpent
|
||||||
state.sortVIPFriends = true;
|
|
||||||
state.sortOnlineFriends = true;
|
|
||||||
state.sortActiveFriends = true;
|
|
||||||
state.sortOfflineFriends = true;
|
|
||||||
|
|
||||||
// remove old data from json file and migrate to SQLite (July 2021)
|
// remove old data from json file and migrate to SQLite (July 2021)
|
||||||
if (await VRCXStorage.Get(`${userId}_friendLogUpdatedAt`)) {
|
if (await VRCXStorage.Get(`${userId}_friendLogUpdatedAt`)) {
|
||||||
@@ -1823,21 +1611,12 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
state,
|
state,
|
||||||
|
|
||||||
friends,
|
friends,
|
||||||
onlineFriends_,
|
|
||||||
vipFriends_,
|
|
||||||
activeFriends_,
|
|
||||||
offlineFriends_,
|
|
||||||
|
|
||||||
vipFriends,
|
vipFriends,
|
||||||
onlineFriends,
|
onlineFriends,
|
||||||
activeFriends,
|
activeFriends,
|
||||||
offlineFriends,
|
offlineFriends,
|
||||||
|
|
||||||
sortOnlineFriends,
|
|
||||||
sortVIPFriends,
|
|
||||||
sortActiveFriends,
|
|
||||||
sortOfflineFriends,
|
|
||||||
|
|
||||||
localFavoriteFriends,
|
localFavoriteFriends,
|
||||||
isRefreshFriendsLoading,
|
isRefreshFriendsLoading,
|
||||||
onlineFriendCount,
|
onlineFriendCount,
|
||||||
@@ -1854,7 +1633,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
refreshFriends,
|
refreshFriends,
|
||||||
refreshFriendsList,
|
refreshFriendsList,
|
||||||
updateOnlineFriendCoutner,
|
updateOnlineFriendCoutner,
|
||||||
updateFriendGPS,
|
|
||||||
getAllUserStats,
|
getAllUserStats,
|
||||||
initFriendLog,
|
initFriendLog,
|
||||||
migrateFriendLog,
|
migrateFriendLog,
|
||||||
@@ -1862,7 +1640,6 @@ export const useFriendStore = defineStore('Friend', () => {
|
|||||||
getFriendRequest,
|
getFriendRequest,
|
||||||
userOnFriend,
|
userOnFriend,
|
||||||
confirmDeleteFriend,
|
confirmDeleteFriend,
|
||||||
saveSidebarSortOrder,
|
|
||||||
updateFriendships,
|
updateFriendships,
|
||||||
updateUserCurrentStatus,
|
updateUserCurrentStatus,
|
||||||
handleFriendAdd,
|
handleFriendAdd,
|
||||||
|
|||||||
@@ -1349,7 +1349,6 @@ export const useUserStore = defineStore('User', () => {
|
|||||||
};
|
};
|
||||||
feedStore.addFeed(feed);
|
feedStore.addFeed(feed);
|
||||||
database.addGPSToDatabase(feed);
|
database.addGPSToDatabase(feed);
|
||||||
friendStore.updateFriendGPS(ref.id);
|
|
||||||
// clear previousLocation after GPS
|
// clear previousLocation after GPS
|
||||||
ref.$previousLocation = '';
|
ref.$previousLocation = '';
|
||||||
ref.$travelingToTime = Date.now();
|
ref.$travelingToTime = Date.now();
|
||||||
@@ -1363,7 +1362,6 @@ export const useUserStore = defineStore('User', () => {
|
|||||||
// store previous location when user is traveling
|
// store previous location when user is traveling
|
||||||
ref.$previousLocation = props.location[1];
|
ref.$previousLocation = props.location[1];
|
||||||
ref.$travelingToTime = Date.now();
|
ref.$travelingToTime = Date.now();
|
||||||
friendStore.updateFriendGPS(ref.id);
|
|
||||||
}
|
}
|
||||||
let imageMatches = false;
|
let imageMatches = false;
|
||||||
if (
|
if (
|
||||||
|
|||||||
@@ -466,10 +466,7 @@
|
|||||||
:model-value="sidebarSortMethod1"
|
:model-value="sidebarSortMethod1"
|
||||||
style="width: 170px"
|
style="width: 170px"
|
||||||
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
||||||
@change="
|
@change="setSidebarSortMethod1($event)">
|
||||||
setSidebarSortMethod1($event);
|
|
||||||
saveSidebarSortOrder();
|
|
||||||
">
|
|
||||||
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
||||||
<el-option
|
<el-option
|
||||||
class="x-friend-item"
|
class="x-friend-item"
|
||||||
@@ -501,17 +498,14 @@
|
|||||||
value="Sort by Location"></el-option>
|
value="Sort by Location"></el-option>
|
||||||
</el-option-group>
|
</el-option-group>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-icon><ArrowRight /></el-icon>
|
<el-icon style="padding: 5px"><ArrowRight /></el-icon>
|
||||||
<el-select
|
<el-select
|
||||||
:model-value="sidebarSortMethod2"
|
:model-value="sidebarSortMethod2"
|
||||||
:disabled="!sidebarSortMethod1"
|
:disabled="!sidebarSortMethod1"
|
||||||
style="width: 170px"
|
style="width: 170px"
|
||||||
clearable
|
clearable
|
||||||
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
||||||
@change="
|
@change="setSidebarSortMethod2($event)">
|
||||||
setSidebarSortMethod2($event);
|
|
||||||
saveSidebarSortOrder();
|
|
||||||
">
|
|
||||||
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
||||||
<el-option
|
<el-option
|
||||||
class="x-friend-item"
|
class="x-friend-item"
|
||||||
@@ -543,17 +537,14 @@
|
|||||||
value="Sort by Location"></el-option>
|
value="Sort by Location"></el-option>
|
||||||
</el-option-group>
|
</el-option-group>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-icon><ArrowRight /></el-icon>
|
<el-icon style="padding: 5px"><ArrowRight /></el-icon>
|
||||||
<el-select
|
<el-select
|
||||||
:model-value="sidebarSortMethod3"
|
:model-value="sidebarSortMethod3"
|
||||||
:disabled="!sidebarSortMethod2"
|
:disabled="!sidebarSortMethod2"
|
||||||
style="width: 170px"
|
style="width: 170px"
|
||||||
clearable
|
clearable
|
||||||
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
:placeholder="t('view.settings.appearance.side_panel.sorting.placeholder')"
|
||||||
@change="
|
@change="setSidebarSortMethod3($event)">
|
||||||
setSidebarSortMethod3($event);
|
|
||||||
saveSidebarSortOrder();
|
|
||||||
">
|
|
||||||
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
<el-option-group :label="t('view.settings.appearance.side_panel.sorting.dropdown_header')">
|
||||||
<el-option
|
<el-option
|
||||||
class="x-friend-item"
|
class="x-friend-item"
|
||||||
@@ -1493,7 +1484,6 @@
|
|||||||
const { showConsole } = useVrcxStore();
|
const { showConsole } = useVrcxStore();
|
||||||
const { disableGameLogDialog } = useGameLogStore();
|
const { disableGameLogDialog } = useGameLogStore();
|
||||||
const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
|
const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
|
||||||
const { saveSidebarSortOrder } = useFriendStore();
|
|
||||||
const { cachedWorlds } = useWorldStore();
|
const { cachedWorlds } = useWorldStore();
|
||||||
const { cachedInstances } = useInstanceStore();
|
const { cachedInstances } = useInstanceStore();
|
||||||
const { showLaunchOptions } = useLaunchStore();
|
const { showLaunchOptions } = useLaunchStore();
|
||||||
|
|||||||
@@ -175,7 +175,7 @@
|
|||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import FriendItem from '../../../components/FriendItem.vue';
|
import FriendItem from '../../../components/FriendItem.vue';
|
||||||
import configRepository from '../../../service/config';
|
import configRepository from '../../../service/config';
|
||||||
import { isRealInstance, userImage, userStatusClass } from '../../../shared/utils';
|
import { isRealInstance, userImage, userStatusClass, getFriendsSortFunction } from '../../../shared/utils';
|
||||||
import {
|
import {
|
||||||
useAdvancedSettingsStore,
|
useAdvancedSettingsStore,
|
||||||
useAppearanceSettingsStore,
|
useAppearanceSettingsStore,
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
const { vipFriends, onlineFriends, activeFriends, offlineFriends } = storeToRefs(useFriendStore());
|
const { vipFriends, onlineFriends, activeFriends, offlineFriends } = storeToRefs(useFriendStore());
|
||||||
const { isSidebarGroupByInstance, isHideFriendsInSameInstance, isSidebarDivideByFriendGroup } =
|
const { isSidebarGroupByInstance, isHideFriendsInSameInstance, isSidebarDivideByFriendGroup, sidebarSortMethods } =
|
||||||
storeToRefs(useAppearanceSettingsStore());
|
storeToRefs(useAppearanceSettingsStore());
|
||||||
const { gameLogDisabled } = storeToRefs(useAdvancedSettingsStore());
|
const { gameLogDisabled } = storeToRefs(useAdvancedSettingsStore());
|
||||||
const { showUserDialog } = useUserStore();
|
const { showUserDialog } = useUserStore();
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
const sortedFriendsList = [];
|
const sortedFriendsList = [];
|
||||||
for (const group of Object.values(friendsList)) {
|
for (const group of Object.values(friendsList)) {
|
||||||
if (group.length > 1) {
|
if (group.length > 1) {
|
||||||
sortedFriendsList.push(group.sort((a, b) => a.ref?.$location_at - b.ref?.$location_at));
|
sortedFriendsList.push(group.sort(getFriendsSortFunction(sidebarSortMethods.value)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user