mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 14:56:06 +02:00
reactive
This commit is contained in:
+35
-35
@@ -53,9 +53,9 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
|
||||
let friendLog = new Map();
|
||||
|
||||
const friends = ref(new Map());
|
||||
const friends = reactive(new Map());
|
||||
|
||||
const localFavoriteFriends = ref(new Set());
|
||||
const localFavoriteFriends = reactive(new Set());
|
||||
|
||||
const isRefreshFriendsLoading = ref(false);
|
||||
const onlineFriendCount = ref(0);
|
||||
@@ -96,7 +96,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
});
|
||||
|
||||
const vipFriends = computed(() => {
|
||||
return Array.from(friends.value.values())
|
||||
return Array.from(friends.values())
|
||||
.filter((f) => f.state === 'online' && f.isVIP)
|
||||
.sort(
|
||||
getFriendsSortFunction(
|
||||
@@ -106,7 +106,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
});
|
||||
|
||||
const onlineFriends = computed(() => {
|
||||
return Array.from(friends.value.values())
|
||||
return Array.from(friends.values())
|
||||
.filter((f) => f.state === 'online' && !f.isVIP)
|
||||
.sort(
|
||||
getFriendsSortFunction(
|
||||
@@ -116,7 +116,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
});
|
||||
|
||||
const activeFriends = computed(() => {
|
||||
return Array.from(friends.value.values())
|
||||
return Array.from(friends.values())
|
||||
.filter((f) => f.state === 'active')
|
||||
.sort(
|
||||
getFriendsSortFunction(
|
||||
@@ -126,7 +126,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
});
|
||||
|
||||
const offlineFriends = computed(() => {
|
||||
return Array.from(friends.value.values())
|
||||
return Array.from(friends.values())
|
||||
.filter((f) => f.state === 'offline' || !f.state)
|
||||
.sort(
|
||||
getFriendsSortFunction(
|
||||
@@ -138,7 +138,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
watch(
|
||||
() => watchState.isLoggedIn,
|
||||
(isLoggedIn) => {
|
||||
friends.value.clear();
|
||||
friends.clear();
|
||||
state.friendNumber = 0;
|
||||
friendLog.clear();
|
||||
friendLogTable.value.data = [];
|
||||
@@ -241,7 +241,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
|
||||
function updateLocalFavoriteFriends() {
|
||||
const favoriteStore = useFavoriteStore();
|
||||
localFavoriteFriends.value.clear();
|
||||
localFavoriteFriends.clear();
|
||||
for (const ref of favoriteStore.cachedFavorites.values()) {
|
||||
if (
|
||||
!ref.$isDeleted &&
|
||||
@@ -252,15 +252,15 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
generalSettingsStore.localFavoriteFriendsGroups.length ===
|
||||
0)
|
||||
) {
|
||||
localFavoriteFriends.value.add(ref.favoriteId);
|
||||
localFavoriteFriends.add(ref.favoriteId);
|
||||
}
|
||||
}
|
||||
updateSidebarFriendsList();
|
||||
}
|
||||
|
||||
function updateSidebarFriendsList() {
|
||||
for (const ctx of friends.value.values()) {
|
||||
const isVIP = localFavoriteFriends.value.has(ctx.id);
|
||||
for (const ctx of friends.values()) {
|
||||
const isVIP = localFavoriteFriends.has(ctx.id);
|
||||
if (ctx.isVIP === isVIP) {
|
||||
continue;
|
||||
}
|
||||
@@ -275,7 +275,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
* @param {string?} stateInput
|
||||
*/
|
||||
function updateFriend(id, stateInput = undefined) {
|
||||
const ctx = friends.value.get(id);
|
||||
const ctx = friends.get(id);
|
||||
if (typeof ctx === 'undefined') {
|
||||
return;
|
||||
}
|
||||
@@ -294,7 +294,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
ctx.pendingOffline = false;
|
||||
ctx.pendingOfflineTime = '';
|
||||
}
|
||||
const isVIP = localFavoriteFriends.value.has(id);
|
||||
const isVIP = localFavoriteFriends.has(id);
|
||||
let location = '';
|
||||
let $location_at = undefined;
|
||||
if (typeof ref !== 'undefined') {
|
||||
@@ -439,11 +439,11 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
);
|
||||
}
|
||||
}
|
||||
if (!friends.value.has(id)) {
|
||||
if (!friends.has(id)) {
|
||||
console.log('Friend not found', id);
|
||||
return;
|
||||
}
|
||||
const isVIP = localFavoriteFriends.value.has(id);
|
||||
const isVIP = localFavoriteFriends.has(id);
|
||||
const ref = ctx.ref;
|
||||
if (ctx.state !== newState && typeof ctx.ref !== 'undefined') {
|
||||
if (
|
||||
@@ -515,11 +515,11 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
* @param {string} id
|
||||
*/
|
||||
function deleteFriend(id) {
|
||||
const ctx = friends.value.get(id);
|
||||
const ctx = friends.get(id);
|
||||
if (typeof ctx === 'undefined') {
|
||||
return;
|
||||
}
|
||||
friends.value.delete(id);
|
||||
friends.delete(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -543,13 +543,13 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
}
|
||||
for (const friend of map) {
|
||||
const [id, state_input] = friend;
|
||||
if (friends.value.has(id)) {
|
||||
if (friends.has(id)) {
|
||||
updateFriend(id, state_input);
|
||||
} else {
|
||||
addFriend(id, state_input);
|
||||
}
|
||||
}
|
||||
for (id of friends.value.keys()) {
|
||||
for (id of friends.keys()) {
|
||||
if (map.has(id) === false) {
|
||||
deleteFriend(id);
|
||||
}
|
||||
@@ -561,11 +561,11 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
* @param {string?} state_input
|
||||
*/
|
||||
function addFriend(id, state_input = undefined) {
|
||||
if (friends.value.has(id)) {
|
||||
if (friends.has(id)) {
|
||||
return;
|
||||
}
|
||||
const ref = userStore.cachedUsers.get(id);
|
||||
const isVIP = localFavoriteFriends.value.has(id);
|
||||
const isVIP = localFavoriteFriends.has(id);
|
||||
let name = '';
|
||||
const friend = friendLog.get(id);
|
||||
if (friend) {
|
||||
@@ -603,7 +603,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
} else {
|
||||
ctx.name = ref.name;
|
||||
}
|
||||
friends.value.set(id, ctx);
|
||||
friends.set(id, ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -731,7 +731,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
} else if (friend.platform) {
|
||||
state_input = 'online';
|
||||
}
|
||||
const ref = friends.value.get(friend.id);
|
||||
const ref = friends.get(friend.id);
|
||||
if (ref?.state !== state_input) {
|
||||
if (AppDebug.debugFriendState) {
|
||||
console.log(
|
||||
@@ -815,7 +815,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
let item;
|
||||
const userIds = [];
|
||||
const displayNames = [];
|
||||
for (const ctx of friends.value.values()) {
|
||||
for (const ctx of friends.values()) {
|
||||
userIds.push(ctx.id);
|
||||
if (ctx.ref?.displayName) {
|
||||
displayNames.push(ctx.ref.displayName);
|
||||
@@ -833,7 +833,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
}
|
||||
}
|
||||
|
||||
for (const ref of friends.value.values()) {
|
||||
for (const ref of friends.values()) {
|
||||
if (ref?.ref?.id && ref.ref.displayName) {
|
||||
friendsByDisplayName.set(ref.ref.displayName, ref.id);
|
||||
}
|
||||
@@ -870,7 +870,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
friendListMap.set(item.userId, friend);
|
||||
}
|
||||
for (item of friendListMap.values()) {
|
||||
ref = friends.value.get(item.userId);
|
||||
ref = friends.get(item.userId);
|
||||
if (ref?.ref) {
|
||||
ref.ref.$joinCount = item.joinCount;
|
||||
ref.ref.$lastSeen = item.lastSeen;
|
||||
@@ -909,7 +909,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
handleFriendStatus(args);
|
||||
if (args.json.isFriend && !friendLog.has(id)) {
|
||||
if (state.friendNumber === 0) {
|
||||
state.friendNumber = friends.value.size;
|
||||
state.friendNumber = friends.size;
|
||||
}
|
||||
ref.$friendNumber = ++state.friendNumber;
|
||||
configRepository.setInt(
|
||||
@@ -1218,7 +1218,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
ref.friendNumber = friendNumber;
|
||||
friendLog.set(ref.userId, ref);
|
||||
database.setFriendLogCurrent(ref);
|
||||
const friendRef = friends.value.get(userId);
|
||||
const friendRef = friends.get(userId);
|
||||
if (friendRef?.ref) {
|
||||
friendRef.ref.$friendNumber = friendNumber;
|
||||
}
|
||||
@@ -1246,7 +1246,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
setFriendNumber(state.friendNumber, userId);
|
||||
}
|
||||
if (state.friendNumber === 0) {
|
||||
state.friendNumber = friends.value.size;
|
||||
state.friendNumber = friends.size;
|
||||
}
|
||||
console.log('Applied friend order from API', state.friendNumber);
|
||||
await configRepository.setInt(
|
||||
@@ -1359,7 +1359,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
}
|
||||
|
||||
function applyFriendLogFriendOrderInReverse() {
|
||||
state.friendNumber = friends.value.size + 1;
|
||||
state.friendNumber = friends.size + 1;
|
||||
const friendLogTable = getFriendLogFriendOrder();
|
||||
for (let i = friendLogTable.length - 1; i > -1; i--) {
|
||||
const friendLogEntry = friendLogTable[i];
|
||||
@@ -1373,12 +1373,12 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
ref.friendNumber = --state.friendNumber;
|
||||
friendLog.set(ref.userId, ref);
|
||||
database.setFriendLogCurrent(ref);
|
||||
const friendRef = friends.value.get(friendLogEntry.id);
|
||||
const friendRef = friends.get(friendLogEntry.id);
|
||||
if (friendRef?.ref) {
|
||||
friendRef.ref.$friendNumber = ref.friendNumber;
|
||||
}
|
||||
}
|
||||
state.friendNumber = friends.value.size;
|
||||
state.friendNumber = friends.size;
|
||||
console.log('Applied friend order from friendLog');
|
||||
}
|
||||
|
||||
@@ -1412,7 +1412,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
const backupTable = [];
|
||||
for (i = 0; i < backupUserIds.length; i++) {
|
||||
const userId = backupUserIds[i];
|
||||
const ctx = friends.value.get(userId);
|
||||
const ctx = friends.get(userId);
|
||||
if (ctx) {
|
||||
backupTable.push({
|
||||
id: ctx.id,
|
||||
@@ -1471,7 +1471,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
function applyFriendOrderBackup(userIdOrder) {
|
||||
for (let i = 0; i < userIdOrder.length; i++) {
|
||||
const userId = userIdOrder[i];
|
||||
const ctx = friends.value.get(userId);
|
||||
const ctx = friends.get(userId);
|
||||
const ref = ctx?.ref;
|
||||
if (!ref || ref.$friendNumber) {
|
||||
continue;
|
||||
@@ -1504,7 +1504,7 @@ export const useFriendStore = defineStore('Friend', () => {
|
||||
ref.friendNumber = ++state.friendNumber;
|
||||
friendLog.set(ref.userId, ref);
|
||||
database.setFriendLogCurrent(ref);
|
||||
const friendRef = friends.value.get(friendLogEntry.id);
|
||||
const friendRef = friends.get(friendLogEntry.id);
|
||||
if (friendRef?.ref) {
|
||||
friendRef.ref.$friendNumber = ref.friendNumber;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user