mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-02 04:56:06 +02:00
add img fallback
This commit is contained in:
@@ -76,7 +76,7 @@
|
||||
import Location from '@/components/Location.vue';
|
||||
import Timer from '@/components/Timer.vue';
|
||||
|
||||
import { useAppearanceSettingsStore, useFriendStore, useUserStore } from '../../../stores';
|
||||
import { useAppearanceSettingsStore, useFriendStore } from '../../../stores';
|
||||
import { useUserDisplay } from '../../../composables/useUserDisplay';
|
||||
|
||||
import '@/styles/status-icon.css';
|
||||
|
||||
@@ -36,10 +36,12 @@
|
||||
<div
|
||||
class="relative inline-block flex-none size-9 mr-2.5"
|
||||
:class="userStatusClass(currentUser)">
|
||||
<img
|
||||
class="size-full rounded-full object-cover"
|
||||
:src="userImage(currentUser)"
|
||||
loading="lazy" />
|
||||
<Avatar class="size-full rounded-full">
|
||||
<AvatarImage :src="userImage(currentUser)" class="object-cover" />
|
||||
<AvatarFallback>
|
||||
<User class="size-5 text-muted-foreground" />
|
||||
</AvatarFallback>
|
||||
</Avatar>
|
||||
</div>
|
||||
<div class="flex-1 overflow-hidden h-9 flex flex-col justify-between">
|
||||
<span
|
||||
@@ -176,7 +178,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, nextTick, onMounted, reactive, ref, watch } from 'vue';
|
||||
import { ChevronDown } from 'lucide-vue-next';
|
||||
import { ChevronDown, User } from 'lucide-vue-next';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -193,6 +195,7 @@
|
||||
ContextMenuSubTrigger,
|
||||
ContextMenuTrigger
|
||||
} from '../../../components/ui/context-menu';
|
||||
import { Avatar, AvatarFallback, AvatarImage } from '../../../components/ui/avatar';
|
||||
import {
|
||||
useAdvancedSettingsStore,
|
||||
useAppearanceSettingsStore,
|
||||
|
||||
@@ -37,10 +37,12 @@
|
||||
@click="showGroupDialog(item.row.ownerId)">
|
||||
<template v-if="item.row.isVisible">
|
||||
<div class="relative inline-block flex-none size-9 mr-2.5">
|
||||
<img
|
||||
class="size-full rounded-full object-cover"
|
||||
:src="getSmallGroupIconUrl(item.row.iconUrl)"
|
||||
loading="lazy" />
|
||||
<Avatar class="size-9">
|
||||
<AvatarImage :src="getSmallGroupIconUrl(item.row.iconUrl)" class="object-cover" />
|
||||
<AvatarFallback>
|
||||
<Users class="size-4 text-muted-foreground" />
|
||||
</AvatarFallback>
|
||||
</Avatar>
|
||||
</div>
|
||||
<div class="flex-1 overflow-hidden">
|
||||
<span class="block truncate font-medium leading-[18px]">
|
||||
@@ -82,7 +84,8 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, nextTick, onMounted, ref, watch } from 'vue';
|
||||
import { ChevronDown } from 'lucide-vue-next';
|
||||
import { ChevronDown, Users } from 'lucide-vue-next';
|
||||
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
@@ -206,7 +206,8 @@ vi.mock('../FriendItem.vue', () => ({
|
||||
}));
|
||||
|
||||
vi.mock('lucide-vue-next', () => ({
|
||||
ChevronDown: { template: '<span data-testid="chevron" />' }
|
||||
ChevronDown: { template: '<span data-testid="chevron" />' },
|
||||
User: { template: '<i />' }
|
||||
}));
|
||||
|
||||
import FriendsSidebar from '../FriendsSidebar.vue';
|
||||
|
||||
@@ -117,7 +117,8 @@ vi.mock('../../../../components/Location.vue', () => ({
|
||||
}));
|
||||
|
||||
vi.mock('lucide-vue-next', () => ({
|
||||
ChevronDown: { template: '<i />' }
|
||||
ChevronDown: { template: '<i />' },
|
||||
Users: { template: '<i />' }
|
||||
}));
|
||||
|
||||
import GroupsSidebar from '../GroupsSidebar.vue';
|
||||
|
||||
Reference in New Issue
Block a user