Fix bugs with switching accounts

This commit is contained in:
Natsumi
2025-08-27 11:45:37 +12:00
parent 23053c1339
commit d92818edea
3 changed files with 20 additions and 7 deletions

View File

@@ -76,18 +76,19 @@ const friendReq = {
},
/**
* @param {{ userId: string }} params
* @returns {Promise<{json: any, params: { userId: string }}>}
* currentUserId for own reference
* @param {{ userId: string, currentUserId: string }} params
* @returns {Promise<{json: any, params: { userId: string, currentUserId: string }}>}
*/
getFriendStatus(params) {
return request(`user/${params.userId}/friendStatus`, {
method: 'GET'
}).then((json) => {
console.log('getFriendStatus', json);
const args = {
json,
params
};
console.log('getFriendStatus', args);
return args;
});
},

View File

@@ -823,7 +823,7 @@ export const useAuthStore = defineStore('Auth', () => {
'Primary password is enabled, this disables auto login.'
);
state.attemptingAutoLogin = false;
logout();
handleLogoutEvent();
return;
}
const attemptsInLastHour = Array.from(state.autoLoginAttempts).filter(
@@ -834,7 +834,7 @@ export const useAuthStore = defineStore('Auth', () => {
'More than 3 auto login attempts within the past hour, logging out instead of attempting auto login.'
);
state.attemptingAutoLogin = false;
logout();
handleLogoutEvent();
return;
}
state.autoLoginAttempts.add(new Date().getTime());

View File

@@ -270,6 +270,8 @@ export const useFriendStore = defineStore('Friend', () => {
(isLoggedIn) => {
state.friends.clear();
state.friendNumber = 0;
state.friendLog.clear();
state.friendLogTable.data = [];
groupStore.groupInstances = [];
state.vipFriends_ = [];
state.onlineFriends_ = [];
@@ -1128,9 +1130,14 @@ export const useFriendStore = defineStore('Friend', () => {
}
friendRequest
.getFriendStatus({
userId: id
userId: id,
currentUserId: userStore.currentUser.id
})
.then((args) => {
if (args.params.currentUserId !== userStore.currentUser.id) {
// safety check for delayed response
return;
}
handleFriendStatus(args);
if (args.json.isFriend && !state.friendLog.has(id)) {
if (state.friendNumber === 0) {
@@ -1207,9 +1214,14 @@ export const useFriendStore = defineStore('Friend', () => {
}
friendRequest
.getFriendStatus({
userId: id
userId: id,
currentUserId: userStore.currentUser.id
})
.then((args) => {
if (args.params.currentUserId !== userStore.currentUser.id) {
// safety check for delayed response
return;
}
handleFriendStatus(args);
if (!args.json.isFriend && state.friendLog.has(id)) {
const friendLogHistory = {