akkoma-fe/src/components/status_content/status_content.vue

64 lines
1.5 KiB
Vue
Raw Normal View History

<template>
2020-07-27 22:27:11 +00:00
<div class="StatusContent">
<slot name="header" />
2021-06-07 16:51:04 +00:00
<StatusBody
:status="status"
:single-line="singleLine"
:hide-mentions="hideMentions"
2021-06-14 07:30:08 +00:00
@parseReady="$emit('parseReady', $event)"
2021-06-07 16:51:04 +00:00
>
<div v-if="status.poll && status.poll.options">
<poll :base-poll="status.poll" />
</div>
<div
v-if="status.attachments.length !== 0"
class="attachments media-body"
>
<attachment
v-for="attachment in nonGalleryAttachments"
:key="attachment.id"
class="non-gallery"
:size="attachmentSize"
:nsfw="nsfwClickthrough"
:attachment="attachment"
:allow-play="true"
:set-media="setMedia()"
@play="$emit('mediaplay', attachment.id)"
@pause="$emit('mediapause', attachment.id)"
/>
<gallery
v-if="galleryAttachments.length > 0"
:nsfw="nsfwClickthrough"
:attachments="galleryAttachments"
:set-media="setMedia()"
/>
</div>
<div
v-if="status.card && !noHeading"
class="link-preview media-body"
>
<link-preview
:card="status.card"
:size="attachmentSize"
:nsfw="nsfwClickthrough"
/>
</div>
</StatusBody>
<slot name="footer" />
</div>
</template>
<script src="./status_content.js" ></script>
<style lang="scss">
@import '../../_variables.scss';
$status-margin: 0.75em;
2020-07-27 22:27:11 +00:00
.StatusContent {
flex: 1;
min-width: 0;
}
</style>