aboutsummaryrefslogtreecommitdiff
path: root/src/components/gallery/gallery.vue
diff options
context:
space:
mode:
authorshpuld <shp@cock.li>2019-01-26 17:45:03 +0200
committershpuld <shp@cock.li>2019-01-26 17:45:03 +0200
commit3978aaef84cc023908155343af76983f2715cf90 (patch)
tree0776b181029151d45450e472d1540715040bcab0 /src/components/gallery/gallery.vue
parent8761e039d04ff26944c87339ef55d2951a42696c (diff)
Redo everything in the MR
Diffstat (limited to 'src/components/gallery/gallery.vue')
-rw-r--r--src/components/gallery/gallery.vue60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/components/gallery/gallery.vue b/src/components/gallery/gallery.vue
new file mode 100644
index 00000000..20e8ab2f
--- /dev/null
+++ b/src/components/gallery/gallery.vue
@@ -0,0 +1,60 @@
+<template>
+ <div ref="galleryContainer" style="width: 100%;">
+ <div class="gallery-row" v-for="row in rows" :style="rowHeight(row.length)" :class="{ 'contain-fit': useContainFit, 'cover-fit': !useContainFit }">
+ <attachment
+ v-for="attachment in row"
+ :setMedia="setMedia"
+ :nsfw="nsfw"
+ :attachment="attachment"
+ :allowPlay="false"
+ :key="attachment.id"
+ />
+ </div>
+ </div>
+</template>
+
+<script src='./gallery.js'></script>
+
+<style lang="scss">
+@import '../../_variables.scss';
+
+.gallery-row {
+ height: 200px;
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ align-content: stretch;
+ flex-grow: 1;
+ margin-top: 0.5em;
+
+ .attachments, .attachment {
+ margin: 0 0.5em 0 0;
+ flex-grow: 1;
+ height: 100%;
+ box-sizing: border-box;
+ }
+
+ .image-attachment {
+ width: 100%;
+ height: 100%;
+ }
+
+ .video-container {
+ height: 100%;
+ }
+
+ &.contain-fit {
+ img, video {
+ object-fit: contain;
+ }
+ }
+
+ &.cover-fit {
+ img, video {
+ object-fit: cover;
+ }
+ }
+}
+
+</style>