Redo everything in the MR

This commit is contained in:
shpuld 2019-01-26 17:45:03 +02:00
parent 8761e039d0
commit 3978aaef84
19 changed files with 563 additions and 92 deletions

View file

@ -5,9 +5,11 @@ import DeleteButton from '../delete_button/delete_button.vue'
import PostStatusForm from '../post_status_form/post_status_form.vue'
import UserCardContent from '../user_card_content/user_card_content.vue'
import StillImage from '../still-image/still-image.vue'
import Gallery from '../gallery/gallery.vue'
import { filter, find } from 'lodash'
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import fileType from 'src/services/file_type/file_type.service'
const Status = {
name: 'Status',
@ -197,6 +199,24 @@ const Status = {
return 'small'
}
return 'normal'
},
galleryTypes () {
if (this.attachmentSize === 'hide') {
return []
}
return this.$store.state.config.playVideosInline
? ['image']
: ['image', 'video']
},
galleryAttachments () {
return this.status.attachments.filter(
file => fileType.fileMatchesSomeType(this.galleryTypes, file)
)
},
nonGalleryAttachments () {
return this.status.attachments.filter(
file => !fileType.fileMatchesSomeType(this.galleryTypes, file)
)
}
},
components: {
@ -206,7 +226,8 @@ const Status = {
DeleteButton,
PostStatusForm,
UserCardContent,
StillImage
StillImage,
Gallery
},
methods: {
visibilityIcon (visibility) {
@ -283,7 +304,7 @@ const Status = {
return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)
},
setMedia () {
const attachments = this.status.attachments
const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments
return () => this.$store.dispatch('setMedia', attachments)
}
},

View file

@ -93,16 +93,23 @@
<a v-if="showingMore" href="#" class="status-unhider" @click.prevent="toggleShowMore">Show less</a>
</div>
<div v-if='status.attachments && !hideSubjectStatus' class='attachments media-body'>
<div v-if="status.attachments && !hideSubjectStatus" class="attachments media-body">
<attachment
class="non-gallery"
v-for="attachment in nonGalleryAttachments"
:size="attachmentSize"
:status-id="status.id"
:nsfw="nsfwClickthrough"
:attachment="attachment"
:set-media="setMedia()"
v-for="attachment in status.attachments"
:key="attachment.id">
</attachment>
:allowPlay="true"
:setMedia="setMedia()"
:key="attachment.id"
/>
<gallery
v-if="galleryAttachments.length > 0"
:nsfw="nsfwClickthrough"
:attachments="galleryAttachments"
:setMedia="setMedia()"
/>
</div>
<div v-if="!noHeading && !noReplyLinks" class='status-actions media-body'>
@ -568,7 +575,7 @@ a.unmute {
}
}
@media all and (max-width: 960px) {
@media all and (max-width: 800px) {
.status-el {
.retweet-info {
.avatar {