Fix user profile badges and random errors

This commit is contained in:
Natsumi
2025-10-18 22:41:13 +11:00
parent 71d4e57900
commit 893302f0ad
9 changed files with 30 additions and 16 deletions

View File

@@ -184,7 +184,6 @@
message: 'Group post edited', message: 'Group post edited',
type: 'success' type: 'success'
}); });
return args;
}); });
D.visible = false; D.visible = false;
} }
@@ -210,12 +209,11 @@
params.imageId = gallerySelectDialog.value.selectedFileId; params.imageId = gallerySelectDialog.value.selectedFileId;
} }
groupRequest.createGroupPost(params).then((args) => { groupRequest.createGroupPost(params).then((args) => {
handleGroupPost(); handleGroupPost(args);
ElMessage({ ElMessage({
message: 'Group post created', message: 'Group post created',
type: 'success' type: 'success'
}); });
return args;
}); });
D.visible = false; D.visible = false;
} }

View File

@@ -90,6 +90,12 @@
>{{ t('dialog.user.actions.invite_with_message') }}</el-dropdown-item >{{ t('dialog.user.actions.invite_with_message') }}</el-dropdown-item
> >
</template> </template>
<el-dropdown-item
:disabled="!currentUser.isBoopingEnabled"
:icon="Pointer"
command="Send Boop"
>{{ t('dialog.user.actions.send_boop') }}</el-dropdown-item
>
</template> </template>
<template v-else-if="userDialog.incomingRequest"> <template v-else-if="userDialog.incomingRequest">
<el-dropdown-item :icon="Check" command="Accept Friend Request">{{ <el-dropdown-item :icon="Check" command="Accept Friend Request">{{
@@ -108,12 +114,6 @@
<el-dropdown-item v-else :icon="Plus" command="Send Friend Request">{{ <el-dropdown-item v-else :icon="Plus" command="Send Friend Request">{{
t('dialog.user.actions.send_friend_request') t('dialog.user.actions.send_friend_request')
}}</el-dropdown-item> }}</el-dropdown-item>
<el-dropdown-item
:disabled="!currentUser.isBoopingEnabled"
:icon="Pointer"
command="Send Boop"
>{{ t('dialog.user.actions.send_boop') }}</el-dropdown-item
>
<el-dropdown-item :icon="Message" command="Invite To Group">{{ <el-dropdown-item :icon="Message" command="Invite To Group">{{
t('dialog.user.actions.invite_to_group') t('dialog.user.actions.invite_to_group')
}}</el-dropdown-item> }}</el-dropdown-item>

View File

@@ -44,7 +44,8 @@ export async function initSentry(app) {
beforeSend(event) { beforeSend(event) {
if ( if (
event.request?.status !== 404 && event.request?.status !== 404 &&
event.request?.status !== 403 event.request?.status !== 403 &&
event.request?.status !== -1
) { ) {
return event; return event;
} }

View File

@@ -431,6 +431,9 @@ async function getBundleDateSize(ref) {
const bundleJson = []; const bundleJson = [];
for (let i = ref.unityPackages.length - 1; i > -1; i--) { for (let i = ref.unityPackages.length - 1; i > -1; i--) {
const unityPackage = ref.unityPackages[i]; const unityPackage = ref.unityPackages[i];
if (!unityPackage) {
continue;
}
if ( if (
unityPackage.variant && unityPackage.variant &&
unityPackage.variant !== 'standard' && unityPackage.variant !== 'standard' &&

View File

@@ -119,15 +119,24 @@ export const useAuthStore = defineStore('Auth', () => {
loginForm.value.lastUserLoggedIn = lastUserLoggedIn; loginForm.value.lastUserLoggedIn = lastUserLoggedIn;
try { try {
const credentials = JSON.parse(savedCredentials || '{}'); const credentials = JSON.parse(savedCredentials || '{}');
// fix goofy typo
let edited = false; let edited = false;
for (const userId in credentials) { for (const userId in credentials) {
// fix goofy typo
if (credentials[userId].loginParmas) { if (credentials[userId].loginParmas) {
credentials[userId].loginParams = credentials[userId].loginParams =
credentials[userId].loginParmas; credentials[userId].loginParmas;
delete credentials[userId].loginParmas; delete credentials[userId].loginParmas;
edited = true; edited = true;
} }
// fix missing fields
if (!credentials[userId].loginParams.endpoint) {
credentials[userId].loginParams.endpoint = '';
edited = true;
}
if (!credentials[userId].loginParams.websocket) {
credentials[userId].loginParams.websocket = '';
edited = true;
}
} }
if (edited) { if (edited) {
await configRepository.setString( await configRepository.setString(

View File

@@ -597,7 +597,10 @@ export const useGameLogStore = defineStore('GameLog', () => {
console.error('Missing userId:', gameLog.displayName); console.error('Missing userId:', gameLog.displayName);
} else if (userId === userStore.currentUser.id) { } else if (userId === userStore.currentUser.id) {
// skip // skip
} else if (friendStore.friends.has(userId)) { } else if (
friendStore.friends.has(userId) &&
typeof ref !== 'undefined'
) {
locationStore.lastLocation.friendList.set(userId, userMap); locationStore.lastLocation.friendList.set(userId, userMap);
if ( if (
ref.location !== locationStore.lastLocation.location && ref.location !== locationStore.lastLocation.location &&

View File

@@ -364,7 +364,7 @@ export const useInstanceStore = defineStore('Instance', () => {
} }
if ( if (
userStore.userDialog.visible && userStore.userDialog.visible &&
userStore.userDialog.ref.$location.tag === ref.id userStore.userDialog.ref?.$location.tag === ref.id
) { ) {
userStore.applyUserDialogLocation(); userStore.applyUserDialogLocation();
} }

View File

@@ -561,7 +561,7 @@ export const useUserStore = defineStore('User', () => {
} }
} }
for (const prop in json) { for (const prop in json) {
if (typeof ref[prop] !== 'undefined') { if (typeof json[prop] !== 'undefined') {
ref[prop] = json[prop]; ref[prop] = json[prop];
} }
} }
@@ -1732,7 +1732,7 @@ export const useUserStore = defineStore('User', () => {
} }
} }
for (const prop in json) { for (const prop in json) {
if (typeof ref[prop] !== 'undefined') { if (typeof json[prop] !== 'undefined') {
ref[prop] = json[prop]; ref[prop] = json[prop];
} }
} }

View File

@@ -127,7 +127,7 @@
<template #default="scope"> <template #default="scope">
<template v-if="scope.row.type === 'boop'"> <template v-if="scope.row.type === 'boop'">
<img <img
v-if="!scope.row.details.imageUrl.startsWith('default_')" v-if="scope.row.details?.imageUrl && !scope.row.details.imageUrl.startsWith('default_')"
class="x-link" class="x-link"
:src="getSmallThumbnailUrl(scope.row.details.imageUrl)" :src="getSmallThumbnailUrl(scope.row.details.imageUrl)"
style="flex: none; height: 50px; border-radius: 4px" style="flex: none; height: 50px; border-radius: 4px"