FoundKey/packages/client/src/components/note-preview.vue

92 lines
1.2 KiB
Vue

<template>
<div v-size="{ min: [350, 500] }" class="fefdfafb">
<MkAvatar class="avatar" :user="$i"/>
<div class="main">
<div class="header">
<MkUserName :user="$i"/>
</div>
<div class="body">
<div class="content">
<Mfm :text="text.trim()" :author="$i"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
defineProps<{
text: string;
}>();
</script>
<style lang="scss" scoped>
.fefdfafb {
display: flex;
margin: 0;
padding: 0;
overflow: clip;
font-size: 0.95em;
&.min-width_350px {
> .avatar {
margin: 0 10px 0 0;
width: 44px;
height: 44px;
}
}
&.min-width_500px {
> .avatar {
margin: 0 12px 0 0;
width: 48px;
height: 48px;
}
}
> .avatar {
flex-shrink: 0;
display: block;
margin: 0 10px 0 0;
width: 40px;
height: 40px;
border-radius: 8px;
pointer-events: none;
}
> .main {
flex: 1;
min-width: 0;
> .header {
margin-bottom: 2px;
font-weight: bold;
}
> .body {
> .cw {
cursor: default;
display: block;
margin: 0;
padding: 0;
overflow-wrap: break-word;
> .text {
margin-right: 8px;
}
}
> .content {
> .text {
cursor: default;
margin: 0;
padding: 0;
}
}
}
}
}
</style>