mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-06 22:46:06 +02:00
fixes
This commit is contained in:
@@ -218,7 +218,8 @@ export function updateFriendship(ref) {
|
|||||||
previousDisplayName: ctx.displayName,
|
previousDisplayName: ctx.displayName,
|
||||||
friendNumber: ref.$friendNumber
|
friendNumber: ref.$friendNumber
|
||||||
};
|
};
|
||||||
friendLogTable.value.data.push(friendLogHistoryDisplayName);
|
// Sentry: VRCX-WEB-2A7
|
||||||
|
friendLogTable.value?.data.push(friendLogHistoryDisplayName);
|
||||||
database.addFriendLogHistory(friendLogHistoryDisplayName);
|
database.addFriendLogHistory(friendLogHistoryDisplayName);
|
||||||
notificationStore.queueFriendLogNoty(friendLogHistoryDisplayName);
|
notificationStore.queueFriendLogNoty(friendLogHistoryDisplayName);
|
||||||
sharedFeedStore.addEntry(friendLogHistoryDisplayName);
|
sharedFeedStore.addEntry(friendLogHistoryDisplayName);
|
||||||
|
|||||||
@@ -577,7 +577,6 @@ async function handleUserUpdate(ref, props) {
|
|||||||
export async function refreshUserDialogAvatars(fileId) {
|
export async function refreshUserDialogAvatars(fileId) {
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const avatarStore = useAvatarStore();
|
const avatarStore = useAvatarStore();
|
||||||
const t = i18n.global.t;
|
|
||||||
|
|
||||||
const D = userStore.userDialog;
|
const D = userStore.userDialog;
|
||||||
const userId = D.id;
|
const userId = D.id;
|
||||||
|
|||||||
@@ -570,7 +570,7 @@
|
|||||||
"context_menu": {
|
"context_menu": {
|
||||||
"view_details": "View Details",
|
"view_details": "View Details",
|
||||||
"hide_friend": "Hide from Graph",
|
"hide_friend": "Hide from Graph",
|
||||||
"refresh_mutuals": "Refresh Their Mutuals",
|
"refresh_mutuals": "Refresh Mutuals",
|
||||||
"confirm_non_friend_title": "Not a Friend",
|
"confirm_non_friend_title": "Not a Friend",
|
||||||
"confirm_non_friend_message": "This user is no longer your friend. Do you still want to fetch their mutual friends data?",
|
"confirm_non_friend_message": "This user is no longer your friend. Do you still want to fetch their mutual friends data?",
|
||||||
"refresh_success": "Mutual friends data updated for {name}",
|
"refresh_success": "Mutual friends data updated for {name}",
|
||||||
|
|||||||
@@ -945,6 +945,8 @@
|
|||||||
|
|
||||||
if (!sigmaInstance) {
|
if (!sigmaInstance) {
|
||||||
sigmaInstance = new Sigma(graph, container, {
|
sigmaInstance = new Sigma(graph, container, {
|
||||||
|
// Sentry: VRCX-WEB-2EG
|
||||||
|
allowInvalidContainer: true,
|
||||||
renderLabels: true,
|
renderLabels: true,
|
||||||
labelRenderedSizeThreshold: DEFAULT_LABEL_THRESHOLD,
|
labelRenderedSizeThreshold: DEFAULT_LABEL_THRESHOLD,
|
||||||
labelColor: { color: labelColor },
|
labelColor: { color: labelColor },
|
||||||
|
|||||||
@@ -1,51 +1,48 @@
|
|||||||
<template>
|
<template>
|
||||||
<UserContextMenu
|
<UserContextMenu :user-id="friend.id" :state="friend.state" :location="friend.ref?.location">
|
||||||
:user-id="friend.id"
|
<Card
|
||||||
:state="friend.state"
|
class="friend-card x-hover-card hover:bg-muted relative"
|
||||||
:location="friend.ref?.location">
|
:style="cardStyle"
|
||||||
<Card
|
@click="showUserDialog(friend.id)">
|
||||||
class="friend-card x-hover-card hover:bg-muted relative"
|
<div class="friend-card__header grid items-center mb-1.75">
|
||||||
:style="cardStyle"
|
<div>
|
||||||
@click="showUserDialog(friend.id)">
|
<Avatar :style="{ width: `${avatarSize}px`, height: `${avatarSize}px` }">
|
||||||
<div class="friend-card__header grid items-center mb-1.75">
|
<AvatarImage :src="userImage(friend.ref, true)" />
|
||||||
<div>
|
<AvatarFallback>
|
||||||
<Avatar :style="{ width: `${avatarSize}px`, height: `${avatarSize}px` }">
|
<User class="text-muted-foreground" :size="Math.max(16, 20 * cardScale)" />
|
||||||
<AvatarImage :src="userImage(friend.ref, true)" />
|
</AvatarFallback>
|
||||||
<AvatarFallback>
|
</Avatar>
|
||||||
<User class="text-muted-foreground" :size="Math.max(16, 20 * cardScale)" />
|
|
||||||
</AvatarFallback>
|
|
||||||
</Avatar>
|
|
||||||
</div>
|
|
||||||
<span
|
|
||||||
class="friend-card__status-dot absolute rounded-full pointer-events-none"
|
|
||||||
:class="statusDotClass"></span>
|
|
||||||
<div
|
|
||||||
class="friend-card__name font-semibold leading-[1.3] overflow-hidden text-ellipsis whitespace-nowrap ml-2"
|
|
||||||
:title="friend.name">
|
|
||||||
{{ friend.name }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="friend-card__body grid">
|
<span
|
||||||
<div
|
class="friend-card__status-dot absolute rounded-full pointer-events-none"
|
||||||
class="friend-card__signature flex items-center overflow-hidden text-ellipsis whitespace-nowrap text-muted-foreground"
|
:class="statusDotClass"></span>
|
||||||
:title="friend.ref?.statusDescription">
|
<div
|
||||||
<Pencil v-if="friend.ref?.statusDescription" class="h-3.5 w-3.5 mr-0.5" style="opacity: 0.7" />
|
class="friend-card__name font-semibold leading-[1.3] overflow-hidden text-ellipsis whitespace-nowrap ml-2"
|
||||||
{{ friend.ref?.statusDescription || ' ' }}
|
:title="friend.name">
|
||||||
</div>
|
{{ friend.name }}
|
||||||
<div
|
|
||||||
v-if="displayInstanceInfo"
|
|
||||||
@click.stop
|
|
||||||
class="friend-card__world flex items-center justify-start box-border max-w-full min-w-0 overflow-hidden"
|
|
||||||
:title="friend.worldName">
|
|
||||||
<Location
|
|
||||||
class="friend-card__location flex w-full overflow-hidden leading-[1.3] wrap-break-word text-center"
|
|
||||||
:location="friend.ref?.location"
|
|
||||||
:traveling="friend.ref?.travelingToLocation"
|
|
||||||
enable-context-menu
|
|
||||||
link />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</Card>
|
</div>
|
||||||
|
<div class="friend-card__body grid">
|
||||||
|
<div
|
||||||
|
class="friend-card__signature flex items-center overflow-hidden text-ellipsis whitespace-nowrap text-muted-foreground"
|
||||||
|
:title="friend.ref?.statusDescription">
|
||||||
|
<Pencil v-if="friend.ref?.statusDescription" class="h-3.5 w-3.5 mr-0.5" style="opacity: 0.7" />
|
||||||
|
{{ friend.ref?.statusDescription || ' ' }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="displayInstanceInfo"
|
||||||
|
@click.stop
|
||||||
|
class="friend-card__world flex items-center justify-start box-border max-w-full min-w-0 overflow-hidden"
|
||||||
|
:title="friend.worldName">
|
||||||
|
<Location
|
||||||
|
class="friend-card__location flex w-full overflow-hidden leading-[1.3] wrap-break-word text-center"
|
||||||
|
:location="friend.ref?.location"
|
||||||
|
:traveling="friend.ref?.travelingToLocation"
|
||||||
|
enable-context-menu
|
||||||
|
link />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
</UserContextMenu>
|
</UserContextMenu>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -92,18 +89,17 @@
|
|||||||
paddingBottom: `${36 * props.cardScale * props.cardSpacing}px !important`
|
paddingBottom: `${36 * props.cardScale * props.cardSpacing}px !important`
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
const statusDotClass = computed(() => {
|
const statusDotClass = computed(() => {
|
||||||
const status = userStatusClass(props.friend.ref, props.friend.pendingOffline);
|
const status = userStatusClass(props.friend.ref, props.friend.pendingOffline);
|
||||||
|
|
||||||
if (status.joinme) {
|
if (status?.joinme) {
|
||||||
return 'friend-card__status-dot--join';
|
return 'friend-card__status-dot--join';
|
||||||
}
|
}
|
||||||
if (status.online) {
|
if (status?.online) {
|
||||||
return 'friend-card__status-dot--online';
|
return 'friend-card__status-dot--online';
|
||||||
}
|
}
|
||||||
// sometimes appearing and sometimes disappearing
|
// sometimes appearing and sometimes disappearing
|
||||||
if (status.active) {
|
if (status?.active) {
|
||||||
const friendStatus = props.friend.status;
|
const friendStatus = props.friend.status;
|
||||||
if (friendStatus === 'join me') {
|
if (friendStatus === 'join me') {
|
||||||
return 'friend-card__status-dot--active-join';
|
return 'friend-card__status-dot--active-join';
|
||||||
@@ -116,13 +112,13 @@
|
|||||||
}
|
}
|
||||||
return 'friend-card__status-dot--active';
|
return 'friend-card__status-dot--active';
|
||||||
}
|
}
|
||||||
if (status.askme) {
|
if (status?.askme) {
|
||||||
return 'friend-card__status-dot--ask';
|
return 'friend-card__status-dot--ask';
|
||||||
}
|
}
|
||||||
if (status.busy) {
|
if (status?.busy) {
|
||||||
return 'friend-card__status-dot--busy';
|
return 'friend-card__status-dot--busy';
|
||||||
}
|
}
|
||||||
if (status.offline) {
|
if (status?.offline) {
|
||||||
return 'friend-card__status-dot--offline';
|
return 'friend-card__status-dot--offline';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,15 +72,17 @@ export const createColumns = ({
|
|||||||
const { isGameRunning } = storeToRefs(useGameStore());
|
const { isGameRunning } = storeToRefs(useGameStore());
|
||||||
const { isNotificationExpired } = useNotificationStore();
|
const { isNotificationExpired } = useNotificationStore();
|
||||||
|
|
||||||
const { cachedInstances } = storeToRefs(useInstanceStore());
|
const { cachedInstances } = useInstanceStore();
|
||||||
|
|
||||||
const canInvite = () => {
|
const canInvite = () => {
|
||||||
const location = lastLocation.value?.location;
|
const location = lastLocation.value?.location;
|
||||||
return (
|
return (
|
||||||
Boolean(location) && isGameRunning.value && checkCanInvite(location, {
|
Boolean(location) &&
|
||||||
|
isGameRunning.value &&
|
||||||
|
checkCanInvite(location, {
|
||||||
currentUserId: currentUser.value?.id,
|
currentUserId: currentUser.value?.id,
|
||||||
lastLocationStr: lastLocation.value?.location,
|
lastLocationStr: lastLocation.value?.location,
|
||||||
cachedInstances: cachedInstances.value
|
cachedInstances: cachedInstances
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -109,12 +109,13 @@
|
|||||||
import { groupRequest } from '../../../api';
|
import { groupRequest } from '../../../api';
|
||||||
import { processBulk } from '../../../services/request';
|
import { processBulk } from '../../../services/request';
|
||||||
import { useGroupStore } from '../../../stores';
|
import { useGroupStore } from '../../../stores';
|
||||||
|
import { showGroupDialog } from '@/coordinators/groupCoordinator';
|
||||||
|
|
||||||
import GroupCalendarEventCard from '../components/GroupCalendarEventCard.vue';
|
import GroupCalendarEventCard from '../components/GroupCalendarEventCard.vue';
|
||||||
import GroupCalendarMonth from '../components/GroupCalendarMonth.vue';
|
import GroupCalendarMonth from '../components/GroupCalendarMonth.vue';
|
||||||
import configRepository from '../../../services/config';
|
import configRepository from '../../../services/config';
|
||||||
|
|
||||||
const { applyGroupEvent, showGroupDialog } = useGroupStore();
|
const { applyGroupEvent } = useGroupStore();
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -126,7 +126,9 @@ export default defineConfig(({ mode }) => {
|
|||||||
},
|
},
|
||||||
sourcemaps: {
|
sourcemaps: {
|
||||||
assets: './build/html/**',
|
assets: './build/html/**',
|
||||||
filesToDeleteAfterUpload: './build/html/**/*.js.map'
|
filesToDeleteAfterUpload:
|
||||||
|
'./build/html/**/*.js.map',
|
||||||
|
ignore: []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
@@ -179,7 +181,7 @@ export default defineConfig(({ mode }) => {
|
|||||||
copyPublicDir: true,
|
copyPublicDir: true,
|
||||||
reportCompressedSize: false,
|
reportCompressedSize: false,
|
||||||
chunkSizeWarningLimit: 5000,
|
chunkSizeWarningLimit: 5000,
|
||||||
sourcemap: buildAndUploadSourceMaps,
|
sourcemap: buildAndUploadSourceMaps ? 'hidden' : false,
|
||||||
assetsInlineLimit(filePath) {
|
assetsInlineLimit(filePath) {
|
||||||
if (isFont(filePath)) return 0;
|
if (isFont(filePath)) return 0;
|
||||||
return 40960;
|
return 40960;
|
||||||
|
|||||||
Reference in New Issue
Block a user