mirror of
https://github.com/vrcx-team/VRCX.git
synced 2026-04-06 00:32:02 +02:00
fixes
This commit is contained in:
@@ -218,7 +218,8 @@ export function updateFriendship(ref) {
|
||||
previousDisplayName: ctx.displayName,
|
||||
friendNumber: ref.$friendNumber
|
||||
};
|
||||
friendLogTable.value.data.push(friendLogHistoryDisplayName);
|
||||
// Sentry: VRCX-WEB-2A7
|
||||
friendLogTable.value?.data.push(friendLogHistoryDisplayName);
|
||||
database.addFriendLogHistory(friendLogHistoryDisplayName);
|
||||
notificationStore.queueFriendLogNoty(friendLogHistoryDisplayName);
|
||||
sharedFeedStore.addEntry(friendLogHistoryDisplayName);
|
||||
|
||||
@@ -577,7 +577,6 @@ async function handleUserUpdate(ref, props) {
|
||||
export async function refreshUserDialogAvatars(fileId) {
|
||||
const userStore = useUserStore();
|
||||
const avatarStore = useAvatarStore();
|
||||
const t = i18n.global.t;
|
||||
|
||||
const D = userStore.userDialog;
|
||||
const userId = D.id;
|
||||
|
||||
@@ -570,7 +570,7 @@
|
||||
"context_menu": {
|
||||
"view_details": "View Details",
|
||||
"hide_friend": "Hide from Graph",
|
||||
"refresh_mutuals": "Refresh Their Mutuals",
|
||||
"refresh_mutuals": "Refresh Mutuals",
|
||||
"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?",
|
||||
"refresh_success": "Mutual friends data updated for {name}",
|
||||
|
||||
@@ -945,6 +945,8 @@
|
||||
|
||||
if (!sigmaInstance) {
|
||||
sigmaInstance = new Sigma(graph, container, {
|
||||
// Sentry: VRCX-WEB-2EG
|
||||
allowInvalidContainer: true,
|
||||
renderLabels: true,
|
||||
labelRenderedSizeThreshold: DEFAULT_LABEL_THRESHOLD,
|
||||
labelColor: { color: labelColor },
|
||||
|
||||
@@ -1,51 +1,48 @@
|
||||
<template>
|
||||
<UserContextMenu
|
||||
:user-id="friend.id"
|
||||
:state="friend.state"
|
||||
:location="friend.ref?.location">
|
||||
<Card
|
||||
class="friend-card x-hover-card hover:bg-muted relative"
|
||||
:style="cardStyle"
|
||||
@click="showUserDialog(friend.id)">
|
||||
<div class="friend-card__header grid items-center mb-1.75">
|
||||
<div>
|
||||
<Avatar :style="{ width: `${avatarSize}px`, height: `${avatarSize}px` }">
|
||||
<AvatarImage :src="userImage(friend.ref, true)" />
|
||||
<AvatarFallback>
|
||||
<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>
|
||||
<UserContextMenu :user-id="friend.id" :state="friend.state" :location="friend.ref?.location">
|
||||
<Card
|
||||
class="friend-card x-hover-card hover:bg-muted relative"
|
||||
:style="cardStyle"
|
||||
@click="showUserDialog(friend.id)">
|
||||
<div class="friend-card__header grid items-center mb-1.75">
|
||||
<div>
|
||||
<Avatar :style="{ width: `${avatarSize}px`, height: `${avatarSize}px` }">
|
||||
<AvatarImage :src="userImage(friend.ref, true)" />
|
||||
<AvatarFallback>
|
||||
<User class="text-muted-foreground" :size="Math.max(16, 20 * cardScale)" />
|
||||
</AvatarFallback>
|
||||
</Avatar>
|
||||
</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>
|
||||
<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>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
@@ -92,18 +89,17 @@
|
||||
paddingBottom: `${36 * props.cardScale * props.cardSpacing}px !important`
|
||||
}));
|
||||
|
||||
|
||||
const statusDotClass = computed(() => {
|
||||
const status = userStatusClass(props.friend.ref, props.friend.pendingOffline);
|
||||
|
||||
if (status.joinme) {
|
||||
if (status?.joinme) {
|
||||
return 'friend-card__status-dot--join';
|
||||
}
|
||||
if (status.online) {
|
||||
if (status?.online) {
|
||||
return 'friend-card__status-dot--online';
|
||||
}
|
||||
// sometimes appearing and sometimes disappearing
|
||||
if (status.active) {
|
||||
if (status?.active) {
|
||||
const friendStatus = props.friend.status;
|
||||
if (friendStatus === 'join me') {
|
||||
return 'friend-card__status-dot--active-join';
|
||||
@@ -116,13 +112,13 @@
|
||||
}
|
||||
return 'friend-card__status-dot--active';
|
||||
}
|
||||
if (status.askme) {
|
||||
if (status?.askme) {
|
||||
return 'friend-card__status-dot--ask';
|
||||
}
|
||||
if (status.busy) {
|
||||
if (status?.busy) {
|
||||
return 'friend-card__status-dot--busy';
|
||||
}
|
||||
if (status.offline) {
|
||||
if (status?.offline) {
|
||||
return 'friend-card__status-dot--offline';
|
||||
}
|
||||
|
||||
|
||||
@@ -72,15 +72,17 @@ export const createColumns = ({
|
||||
const { isGameRunning } = storeToRefs(useGameStore());
|
||||
const { isNotificationExpired } = useNotificationStore();
|
||||
|
||||
const { cachedInstances } = storeToRefs(useInstanceStore());
|
||||
const { cachedInstances } = useInstanceStore();
|
||||
|
||||
const canInvite = () => {
|
||||
const location = lastLocation.value?.location;
|
||||
return (
|
||||
Boolean(location) && isGameRunning.value && checkCanInvite(location, {
|
||||
Boolean(location) &&
|
||||
isGameRunning.value &&
|
||||
checkCanInvite(location, {
|
||||
currentUserId: currentUser.value?.id,
|
||||
lastLocationStr: lastLocation.value?.location,
|
||||
cachedInstances: cachedInstances.value
|
||||
cachedInstances: cachedInstances
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
@@ -109,12 +109,13 @@
|
||||
import { groupRequest } from '../../../api';
|
||||
import { processBulk } from '../../../services/request';
|
||||
import { useGroupStore } from '../../../stores';
|
||||
import { showGroupDialog } from '@/coordinators/groupCoordinator';
|
||||
|
||||
import GroupCalendarEventCard from '../components/GroupCalendarEventCard.vue';
|
||||
import GroupCalendarMonth from '../components/GroupCalendarMonth.vue';
|
||||
import configRepository from '../../../services/config';
|
||||
|
||||
const { applyGroupEvent, showGroupDialog } = useGroupStore();
|
||||
const { applyGroupEvent } = useGroupStore();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
|
||||
@@ -126,7 +126,9 @@ export default defineConfig(({ mode }) => {
|
||||
},
|
||||
sourcemaps: {
|
||||
assets: './build/html/**',
|
||||
filesToDeleteAfterUpload: './build/html/**/*.js.map'
|
||||
filesToDeleteAfterUpload:
|
||||
'./build/html/**/*.js.map',
|
||||
ignore: []
|
||||
}
|
||||
})
|
||||
)
|
||||
@@ -179,7 +181,7 @@ export default defineConfig(({ mode }) => {
|
||||
copyPublicDir: true,
|
||||
reportCompressedSize: false,
|
||||
chunkSizeWarningLimit: 5000,
|
||||
sourcemap: buildAndUploadSourceMaps,
|
||||
sourcemap: buildAndUploadSourceMaps ? 'hidden' : false,
|
||||
assetsInlineLimit(filePath) {
|
||||
if (isFont(filePath)) return 0;
|
||||
return 40960;
|
||||
|
||||
Reference in New Issue
Block a user