74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
<MkTooltip :source="source" ref="tooltip" @closed="$emit('closed')">
 | 
						|
	<div class="bqxuuuey">
 | 
						|
		<div class="info">
 | 
						|
			<div>{{ reaction.replace('@.', '') }}</div>
 | 
						|
			<XReactionIcon :reaction="reaction" :custom-emojis="emojis" class="icon" :no-style="true"/>
 | 
						|
		</div>
 | 
						|
		<template v-if="users.length <= 10">
 | 
						|
			<b v-for="u in users" :key="u.id" style="margin-right: 12px;">
 | 
						|
				<MkAvatar :user="u" style="width: 24px; height: 24px; margin-right: 2px;"/>
 | 
						|
				<MkUserName :user="u" :nowrap="false" style="line-height: 24px;"/>
 | 
						|
			</b>
 | 
						|
		</template>
 | 
						|
		<template v-if="10 < users.length">
 | 
						|
			<b v-for="u in users" :key="u.id" style="margin-right: 12px;">
 | 
						|
				<MkAvatar :user="u" style="width: 24px; height: 24px; margin-right: 2px;"/>
 | 
						|
				<MkUserName :user="u" :nowrap="false" style="line-height: 24px;"/>
 | 
						|
			</b>
 | 
						|
			<span slot="omitted">+{{ count - 10 }}</span>
 | 
						|
		</template>
 | 
						|
	</div>
 | 
						|
</MkTooltip>
 | 
						|
</template>
 | 
						|
 | 
						|
<script lang="ts">
 | 
						|
import { defineComponent } from 'vue';
 | 
						|
import MkTooltip from './ui/tooltip.vue';
 | 
						|
import XReactionIcon from './reaction-icon.vue';
 | 
						|
 | 
						|
export default defineComponent({
 | 
						|
	components: {
 | 
						|
		MkTooltip,
 | 
						|
		XReactionIcon
 | 
						|
	},
 | 
						|
	props: {
 | 
						|
		reaction: {
 | 
						|
			type: String,
 | 
						|
			required: true,
 | 
						|
		},
 | 
						|
		users: {
 | 
						|
			type: Array,
 | 
						|
			required: true,
 | 
						|
		},
 | 
						|
		count: {
 | 
						|
			type: Number,
 | 
						|
			required: true,
 | 
						|
		},
 | 
						|
		emojis: {
 | 
						|
			type: Array,
 | 
						|
			required: true,
 | 
						|
		},
 | 
						|
		source: {
 | 
						|
			required: true,
 | 
						|
		}
 | 
						|
	},
 | 
						|
	emits: ['closed'],
 | 
						|
})
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
.bqxuuuey {
 | 
						|
	> .info {
 | 
						|
		padding: 0 0 8px 0;
 | 
						|
		text-align: center;
 | 
						|
 | 
						|
		> .icon {
 | 
						|
			display: block;
 | 
						|
			width: 60px;
 | 
						|
			margin: 0 auto;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
</style>
 |