feat: add BaseUserAvatar and unify avatar usage

This commit is contained in:
Tim
2025-09-24 00:26:51 +08:00
parent 26d1db79f4
commit efbb83924b
15 changed files with 263 additions and 91 deletions

View File

@@ -3,10 +3,19 @@
<div class="timeline-item" v-for="(item, idx) in items" :key="idx">
<div
class="timeline-icon"
:class="{ clickable: !!item.iconClick }"
@click="item.iconClick && item.iconClick()"
:class="{ clickable: !!item.iconClick && !item.src }"
@click="!item.src && item.iconClick && item.iconClick()"
>
<BaseImage v-if="item.src" :src="item.src" class="timeline-img" alt="timeline item" />
<BaseUserAvatar
v-if="item.src"
:class="['timeline-img', { 'is-clickable': !!item.iconClick }]"
:user-id="item.userId"
:avatar="item.src"
:username="item.userName || item.username"
:width="32"
:link="!item.iconClick"
@click.stop="item.iconClick && item.iconClick()"
/>
<component
v-else-if="item.icon && (typeof item.icon !== 'string' || !item.icon.includes(' '))"
:is="item.icon"
@@ -64,10 +73,12 @@ export default {
}
.timeline-img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
width: 32px;
height: 32px;
}
.timeline-img.is-clickable {
cursor: pointer;
}
.timeline-emoji {