<div class="status-media {{sensitive ? 'status-media-is-sensitive' : ''}}" style="grid-template-columns: repeat(auto-fit, minmax({{maxMediaWidth}}px, 1fr));" > {{#each mediaAttachments as media}} <Media :media /> {{/each}} </div> <style> .status-media { grid-area: media; display: grid; align-items: center; justify-content: center; justify-items: center; grid-column-gap: 10px; grid-row-gap: 10px; margin: 10px 0; } .status-media.status-media-is-sensitive { margin: 0; } .status-media { overflow: hidden; } .status-media { max-width: calc(100vw - 40px); } @media (max-width: 767px) { .status-media { max-width: calc(100vw - 20px); } } </style> <script> import Media from './Media.html' import { DEFAULT_MEDIA_WIDTH } from '../../_static/media' export default { computed: { maxMediaWidth: (mediaAttachments) => { return Math.max.apply(Math, mediaAttachments.map(media => { return media.meta && media.meta.small && typeof media.meta.small.width === 'number' ? media.meta.small.width : DEFAULT_MEDIA_WIDTH })) } }, components: { Media } } </script>