all repos — stealth-developers @ 29dd7f183fb09a93de77814cbfbcf9025fbc079f

pkgs/frontend/src/components/UserChip.vue (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
<script lang="ts" setup>
import type { User } from '@/types'
import { computed } from 'vue';
const props = defineProps<{ user?: User }>()

const displayedUser = computed(() => {
	if (!props.user) return { id: '0', name: '?', avatarUrl: 'https://cdn.discordapp.com/app-icons/1350116449611677770/0f6f1cdda4e1c6f0149aa2f099b80463.png?size=256', isModerator: false };
	return props.user;
});
</script>

<template>
	<div class="user-chip">
		<img :src="displayedUser.avatarUrl" alt="avatar" />
		<span>{{ displayedUser.name }}</span>
	</div>
</template>

<style scoped>
.user-chip {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	overflow: hidden;

	img {
		width: 1.5rem;
		height: 1.5rem;
		border-radius: 50%;
		flex-shrink: 0;
	}

	span {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}
</style>