This commit is contained in:
pa
2025-10-28 12:40:08 +09:00
committed by Natsumi
parent 4d18c92f59
commit 737bcdd03d
8 changed files with 125 additions and 122 deletions

View File

@@ -1,4 +1,4 @@
import { nextTick, ref, watch } from 'vue';
import { nextTick, reactive, ref, watch } from 'vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { defineStore } from 'pinia';
@@ -59,7 +59,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
cachePath: '',
fileAnalysis: []
});
const avatarHistory = ref(new Set());
const avatarHistory = reactive(new Set());
const avatarHistoryArray = ref([]);
watch(
@@ -69,7 +69,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
cachedAvatars.clear();
cachedAvatarNames.clear();
cachedAvatarModerations.clear();
avatarHistory.value.clear();
avatarHistory.clear();
avatarHistoryArray.value = [];
if (isLoggedIn) {
getAvatarHistory();
@@ -339,7 +339,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
* @returns {Promise<void>}
*/
async function getAvatarHistory() {
avatarHistory.value = new Set();
avatarHistory.clear();
const historyArray = await database.getAvatarHistory(
userStore.currentUser.id
);
@@ -349,7 +349,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
continue;
}
applyAvatar(avatar);
avatarHistory.value.add(avatar.id);
avatarHistory.add(avatar.id);
}
avatarHistoryArray.value = historyArray;
}
@@ -378,8 +378,8 @@ export const useAvatarStore = defineStore('Avatar', () => {
}
avatarHistoryArray.value.unshift(ref);
avatarHistory.value.delete(ref.id);
avatarHistory.value.add(ref.id);
avatarHistory.delete(ref.id);
avatarHistory.add(ref.id);
})
.catch((err) => {
console.error('Failed to add avatar to history:', err);
@@ -387,7 +387,7 @@ export const useAvatarStore = defineStore('Avatar', () => {
}
function clearAvatarHistory() {
avatarHistory.value = new Set();
avatarHistory.clear();
avatarHistoryArray.value = [];
database.clearAvatarHistory();
}

View File

@@ -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;
}

View File

@@ -1,4 +1,4 @@
import { nextTick, ref, watch } from 'vue';
import { nextTick, reactive, ref, watch } from 'vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { defineStore } from 'pinia';
@@ -63,7 +63,7 @@ export const useGroupStore = defineStore('Group', () => {
galleries: {}
});
const currentUserGroups = ref(new Map());
const currentUserGroups = reactive(new Map());
const inviteGroupDialog = ref({
visible: false,
@@ -111,7 +111,7 @@ export const useGroupStore = defineStore('Group', () => {
groupMemberModeration.value.visible = false;
currentUserGroupsInit.value = false;
cachedGroups.clear();
currentUserGroups.value.clear();
currentUserGroups.clear();
if (isLoggedIn) {
initUserGroups();
}
@@ -235,7 +235,7 @@ export const useGroupStore = defineStore('Group', () => {
return;
}
const groups = [];
for (const ref of currentUserGroups.value.values()) {
for (const ref of currentUserGroups.values()) {
groups.push({
id: ref.id,
name: ref.name,
@@ -308,11 +308,11 @@ export const useGroupStore = defineStore('Group', () => {
// update group list
for (const groupId of groups) {
if (!currentUserGroups.value.has(groupId)) {
if (!currentUserGroups.has(groupId)) {
onGroupJoined(groupId);
}
}
for (const groupId of currentUserGroups.value.keys()) {
for (const groupId of currentUserGroups.keys()) {
if (!groups.includes(groupId)) {
onGroupLeft(groupId);
}
@@ -324,8 +324,8 @@ export const useGroupStore = defineStore('Group', () => {
* @param {string} groupId
*/
function onGroupJoined(groupId) {
if (!currentUserGroups.value.has(groupId)) {
currentUserGroups.value.set(groupId, {
if (!currentUserGroups.has(groupId)) {
currentUserGroups.set(groupId, {
id: groupId,
name: '',
iconUrl: ''
@@ -348,8 +348,8 @@ export const useGroupStore = defineStore('Group', () => {
if (groupDialog.value.visible && groupDialog.value.id === groupId) {
showGroupDialog(groupId);
}
if (currentUserGroups.value.has(groupId)) {
currentUserGroups.value.delete(groupId);
if (currentUserGroups.has(groupId)) {
currentUserGroups.delete(groupId);
groupRequest.getCachedGroup({ groupId }).then((args) => {
groupChange(args.ref, 'Left group');
});
@@ -633,7 +633,7 @@ export const useGroupStore = defineStore('Group', () => {
};
cachedGroups.set(ref.id, ref);
} else {
if (currentUserGroups.value.has(ref.id)) {
if (currentUserGroups.has(ref.id)) {
// compare group props
if (
ref.ownerId &&
@@ -695,9 +695,9 @@ export const useGroupStore = defineStore('Group', () => {
ref.$url = `https://vrc.group/${ref.shortCode}.${ref.discriminator}`;
applyGroupLanguage(ref);
const currentUserGroupRef = currentUserGroups.value.get(ref.id);
const currentUserGroupRef = currentUserGroups.get(ref.id);
if (currentUserGroupRef) {
currentUserGroups.value.set(ref.id, ref);
currentUserGroups.set(ref.id, ref);
}
const D = groupDialog.value;
@@ -928,7 +928,7 @@ export const useGroupStore = defineStore('Group', () => {
)
);
cachedGroups.clear();
currentUserGroups.value.clear();
currentUserGroups.clear();
for (const group of savedGroups) {
const json = {
id: group.id,
@@ -941,7 +941,7 @@ export const useGroupStore = defineStore('Group', () => {
}
};
const ref = applyGroup(json);
currentUserGroups.value.set(group.id, ref);
currentUserGroups.set(group.id, ref);
}
if (groups) {
@@ -962,7 +962,7 @@ export const useGroupStore = defineStore('Group', () => {
includeRoles: true
});
const ref = applyGroup(args.json);
currentUserGroups.value.set(groupId, ref);
currentUserGroups.set(groupId, ref);
} catch (err) {
console.error(err);
}
@@ -980,11 +980,11 @@ export const useGroupStore = defineStore('Group', () => {
userId: userStore.currentUser.id
});
handleGroupList(args);
currentUserGroups.value.clear();
currentUserGroups.clear();
for (const group of args.json) {
const ref = applyGroup(group);
if (!currentUserGroups.value.has(group.id)) {
currentUserGroups.value.set(group.id, ref);
if (!currentUserGroups.has(group.id)) {
currentUserGroups.set(group.id, ref);
}
}
const args1 = await groupRequest.getGroupPermissions({

View File

@@ -73,13 +73,13 @@ export const useInstanceStore = defineStore('Instance', () => {
const currentInstanceLocation = ref({});
const queuedInstances = ref(new Map());
const queuedInstances = reactive(new Map());
const previousInstancesInfoDialogVisible = ref(false);
const previousInstancesInfoDialogInstanceId = ref('');
const instanceJoinHistory = ref(new Map());
let instanceJoinHistory = reactive(new Map());
const currentInstanceUsersData = ref([]);
const currentInstanceUsersTable = computed(() => {
@@ -103,10 +103,10 @@ export const useInstanceStore = defineStore('Instance', () => {
() => watchState.isLoggedIn,
(isLoggedIn) => {
currentInstanceUsersData.value = [];
instanceJoinHistory.value = new Map();
instanceJoinHistory.clear();
previousInstancesInfoDialogVisible.value = false;
cachedInstances.clear();
queuedInstances.value.clear();
queuedInstances.clear();
if (isLoggedIn) {
getInstanceJoinHistory();
}
@@ -115,7 +115,13 @@ export const useInstanceStore = defineStore('Instance', () => {
);
async function getInstanceJoinHistory() {
instanceJoinHistory.value = await database.getInstanceJoinHistory();
try {
instanceJoinHistory = reactive(
await database.getInstanceJoinHistory()
);
} catch (error) {
console.error('Failed to get instance join history:', error);
}
}
function addInstanceJoinHistory(location, dateTime) {
@@ -123,12 +129,12 @@ export const useInstanceStore = defineStore('Instance', () => {
return;
}
if (instanceJoinHistory.value.has(location)) {
instanceJoinHistory.value.delete(location);
if (instanceJoinHistory.has(location)) {
instanceJoinHistory.delete(location);
}
const epoch = new Date(dateTime).getTime();
instanceJoinHistory.value.set(location, epoch);
instanceJoinHistory.set(location, epoch);
}
function showPreviousInstancesInfoDialog(instanceId) {
@@ -883,14 +889,14 @@ export const useInstanceStore = defineStore('Instance', () => {
}
function removeAllQueuedInstances() {
queuedInstances.value.forEach((ref) => {
queuedInstances.forEach((ref) => {
ElMessage({
message: `Removed instance ${ref.$worldName} from queue`,
type: 'info'
});
ref.$msgBox?.close();
});
queuedInstances.value.clear();
queuedInstances.clear();
}
/**
@@ -898,10 +904,10 @@ export const useInstanceStore = defineStore('Instance', () => {
* @param {string} instanceId
*/
function removeQueuedInstance(instanceId) {
const ref = queuedInstances.value.get(instanceId);
const ref = queuedInstances.get(instanceId);
if (typeof ref !== 'undefined') {
ref.$msgBox.close();
queuedInstances.value.delete(instanceId);
queuedInstances.delete(instanceId);
}
}
@@ -910,7 +916,7 @@ export const useInstanceStore = defineStore('Instance', () => {
* @param {string} instanceId
*/
function applyQueuedInstance(instanceId) {
queuedInstances.value.forEach((ref) => {
queuedInstances.forEach((ref) => {
if (ref.location !== instanceId) {
ElMessage({
message: t('message.instance.removed_form_queue', {
@@ -919,13 +925,13 @@ export const useInstanceStore = defineStore('Instance', () => {
type: 'info'
});
ref.$msgBox?.close();
queuedInstances.value.delete(ref.location);
queuedInstances.delete(ref.location);
}
});
if (!instanceId) {
return;
}
if (!queuedInstances.value.has(instanceId)) {
if (!queuedInstances.has(instanceId)) {
const L = parseLocation(instanceId);
if (L.isRealInstance) {
instanceRequest
@@ -958,10 +964,10 @@ export const useInstanceStore = defineStore('Instance', () => {
* @param {string} instanceId
*/
function instanceQueueReady(instanceId) {
const ref = queuedInstances.value.get(instanceId);
const ref = queuedInstances.get(instanceId);
if (typeof ref !== 'undefined') {
ref.$msgBox.close();
queuedInstances.value.delete(instanceId);
queuedInstances.delete(instanceId);
}
const L = parseLocation(instanceId);
const group = groupStore.cachedGroups.get(L.groupId);
@@ -1002,7 +1008,7 @@ export const useInstanceStore = defineStore('Instance', () => {
* @returns {Promise<void>}
*/
async function instanceQueueUpdate(instanceId, position, queueSize) {
let ref = queuedInstances.value.get(instanceId);
let ref = queuedInstances.get(instanceId);
if (typeof ref === 'undefined') {
ref = {
$msgBox: null,
@@ -1036,7 +1042,7 @@ export const useInstanceStore = defineStore('Instance', () => {
showClose: true,
customClass: 'vrc-instance-queue-message'
});
queuedInstances.value.set(instanceId, ref);
queuedInstances.set(instanceId, ref);
// workerTimers.setTimeout(this.instanceQueueTimeout, 3600000);
}
@@ -1196,9 +1202,9 @@ export const useInstanceStore = defineStore('Instance', () => {
// $app.methods.instanceQueueClear = function () {
// // remove all instances from queue
// queuedInstances.value.forEach((ref) => {
// queuedInstances.forEach((ref) => {
// ref.$msgBox.close();
// queuedInstances.value.delete(ref.location);
// queuedInstances.delete(ref.location);
// });
// };

View File

@@ -1,4 +1,4 @@
import { ref, watch } from 'vue';
import { reactive, ref, watch } from 'vue';
import { defineStore } from 'pinia';
import { avatarModerationRequest, playerModerationRequest } from '../api';
@@ -10,8 +10,8 @@ export const useModerationStore = defineStore('Moderation', () => {
const avatarStore = useAvatarStore();
const userStore = useUserStore();
const cachedPlayerModerations = ref(new Map());
const cachedPlayerModerationsUserIds = ref(new Set());
const cachedPlayerModerations = reactive(new Map());
const cachedPlayerModerationsUserIds = reactive(new Set());
const playerModerationTable = ref({
data: [],
search: '',
@@ -46,8 +46,8 @@ export const useModerationStore = defineStore('Moderation', () => {
watch(
() => watchState.isLoggedIn,
(isLoggedIn) => {
cachedPlayerModerations.value.clear();
cachedPlayerModerationsUserIds.value.clear();
cachedPlayerModerations.clear();
cachedPlayerModerationsUserIds.clear();
playerModerationTable.value.loading = false;
playerModerationTable.value.data = [];
if (isLoggedIn) {
@@ -61,14 +61,14 @@ export const useModerationStore = defineStore('Moderation', () => {
const { ref } = args;
let hasModeration = false;
for (const ref of cachedPlayerModerations.value.values()) {
for (const ref of cachedPlayerModerations.values()) {
if (ref.targetUserId === ref.targetUserId) {
hasModeration = true;
break;
}
}
if (!hasModeration) {
cachedPlayerModerationsUserIds.value.delete(ref.targetUserId);
cachedPlayerModerationsUserIds.delete(ref.targetUserId);
}
const userRef = userStore.cachedUsers.get(ref.targetUserId);
@@ -109,13 +109,13 @@ export const useModerationStore = defineStore('Moderation', () => {
function handlePlayerModerationDelete(args) {
let { type, moderated } = args.params;
const userId = userStore.currentUser.id;
for (let ref of cachedPlayerModerations.value.values()) {
for (let ref of cachedPlayerModerations.values()) {
if (
ref.type === type &&
ref.targetUserId === moderated &&
ref.sourceUserId === userId
) {
cachedPlayerModerations.value.delete(ref.id);
cachedPlayerModerations.delete(ref.id);
handlePlayerModerationAtDelete({
ref,
params: {
@@ -133,7 +133,7 @@ export const useModerationStore = defineStore('Moderation', () => {
* @returns {object}
*/
function applyPlayerModeration(json) {
let ref = cachedPlayerModerations.value.get(json.id);
let ref = cachedPlayerModerations.get(json.id);
if (typeof ref === 'undefined') {
ref = {
id: '',
@@ -148,13 +148,13 @@ export const useModerationStore = defineStore('Moderation', () => {
//
...json
};
cachedPlayerModerations.value.set(ref.id, ref);
cachedPlayerModerations.set(ref.id, ref);
} else {
Object.assign(ref, json);
ref.$isExpired = false;
}
if (json.targetUserId) {
cachedPlayerModerationsUserIds.value.add(json.targetUserId);
cachedPlayerModerationsUserIds.add(json.targetUserId);
}
const array = playerModerationTable.value.data;
const index = array.findIndex((item) => item.id === ref.id);
@@ -171,14 +171,14 @@ export const useModerationStore = defineStore('Moderation', () => {
}
function expirePlayerModerations() {
cachedPlayerModerationsUserIds.value.clear();
for (let ref of cachedPlayerModerations.value.values()) {
cachedPlayerModerationsUserIds.clear();
for (let ref of cachedPlayerModerations.values()) {
ref.$isExpired = true;
}
}
function deleteExpiredPlayerModerations() {
for (let ref of cachedPlayerModerations.value.values()) {
for (let ref of cachedPlayerModerations.values()) {
if (!ref.$isExpired) {
continue;
}
@@ -243,7 +243,7 @@ export const useModerationStore = defineStore('Moderation', () => {
isAvatarInteractionDisabled: false,
isChatBoxMuted: false
};
for (let ref of cachedPlayerModerations.value.values()) {
for (let ref of cachedPlayerModerations.values()) {
if (ref.targetUserId !== userId) {
continue;
}

View File

@@ -52,7 +52,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
const ugcFolderPath = ref('');
const autoDeleteOldPrints = ref(false);
const notificationOpacity = ref(100);
const currentUserInventory = ref(new Map());
const currentUserInventory = reactive(new Map());
const isVRChatConfigDialogVisible = ref(false);
const saveInstanceEmoji = ref(false);
const vrcRegistryAutoBackup = ref(true);
@@ -62,7 +62,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
watch(
() => watchState.isLoggedIn,
() => {
currentUserInventory.value.clear();
currentUserInventory.clear();
isVRChatConfigDialogVisible.value = false;
},
{ flush: 'sync' }

View File

@@ -261,7 +261,7 @@ export const useUserStore = defineStore('User', () => {
dateFriendedInfo: []
});
const currentTravelers = ref(new Map());
const currentTravelers = reactive(new Map());
const subsetOfLanguages = ref([]);
const languageDialog = ref({
visible: false,
@@ -284,8 +284,8 @@ export const useUserStore = defineStore('User', () => {
}
}
});
const showUserDialogHistory = ref(new Set());
const customUserTags = ref(new Map());
const showUserDialogHistory = reactive(new Set());
const customUserTags = reactive(new Map());
const state = reactive({
instancePlayerCount: new Map(),
@@ -304,10 +304,10 @@ export const useUserStore = defineStore('User', () => {
() => watchState.isLoggedIn,
(isLoggedIn) => {
if (!isLoggedIn) {
currentTravelers.value.clear();
showUserDialogHistory.value.clear();
currentTravelers.clear();
showUserDialogHistory.clear();
state.instancePlayerCount.clear();
customUserTags.value.clear();
customUserTags.clear();
state.notes.clear();
pastDisplayNameTable.value.data = [];
subsetOfLanguages.value = [];
@@ -511,7 +511,7 @@ export const useUserStore = defineStore('User', () => {
newCount++;
state.instancePlayerCount.set(ref.location, newCount);
}
const tag = customUserTags.value.get(json.id);
const tag = customUserTags.get(json.id);
if (tag) {
ref.$customTag = tag.tag;
ref.$customTagColour = tag.colour;
@@ -582,23 +582,20 @@ export const useUserStore = defineStore('User', () => {
// traveling
if (ref.location === 'traveling') {
ref.$location = parseLocation(ref.travelingToLocation);
if (
!currentTravelers.value.has(ref.id) &&
ref.travelingToLocation
) {
if (!currentTravelers.has(ref.id) && ref.travelingToLocation) {
const travelRef = reactive({
created_at: new Date().toJSON(),
...ref
});
currentTravelers.value.set(ref.id, travelRef);
currentTravelers.set(ref.id, travelRef);
sharedFeedStore.sharedFeed.pendingUpdate = true;
sharedFeedStore.updateSharedFeed(false);
onPlayerTraveling(travelRef);
}
} else {
ref.$location = parseLocation(ref.location);
if (currentTravelers.value.has(ref.id)) {
currentTravelers.value.delete(ref.id);
if (currentTravelers.has(ref.id)) {
currentTravelers.delete(ref.id);
sharedFeedStore.sharedFeed.pendingUpdate = true;
sharedFeedStore.updateSharedFeed(false);
}
@@ -946,8 +943,8 @@ export const useUserStore = defineStore('User', () => {
});
}
});
showUserDialogHistory.value.delete(userId);
showUserDialogHistory.value.add(userId);
showUserDialogHistory.delete(userId);
showUserDialogHistory.add(userId);
searchStore.quickSearchItems = searchStore.quickSearchUserHistory();
}
@@ -1576,12 +1573,12 @@ export const useUserStore = defineStore('User', () => {
function addCustomTag(data) {
if (data.Tag) {
customUserTags.value.set(data.UserId, {
customUserTags.set(data.UserId, {
tag: data.Tag,
colour: data.TagColour
});
} else {
customUserTags.value.delete(data.UserId);
customUserTags.delete(data.UserId);
}
const feedUpdate = {
userId: data.UserId,

View File

@@ -1,4 +1,4 @@
import { nextTick, ref } from 'vue';
import { nextTick, reactive, ref } from 'vue';
import dayjs from 'dayjs';
@@ -8,7 +8,7 @@ import { getWorldName } from '../../../shared/utils';
export function useInstanceActivityData() {
const activityData = ref([]);
const activityDetailData = ref([]);
const allDateOfActivity = ref(new Set());
let allDateOfActivity = reactive(new Set());
const worldNameArray = ref([]);
async function getAllDateOfActivity() {
@@ -24,7 +24,7 @@ export function useInstanceActivityData() {
uniqueDates.add(formattedDate);
}
allDateOfActivity.value = uniqueDates;
allDateOfActivity = reactive(uniqueDates);
}
async function getWorldNameData() {