pinafore/routes/_components/dialog/ImageDialog.html

48 lines
1,005 B
HTML
Raw Normal View History

2018-04-01 01:46:44 +00:00
<ModalDialog :label
:shown
background="var(--muted-modal-bg)"
muted="true"
className="image-modal-dialog"
2018-04-05 03:33:17 +00:00
on:destroyDialog="destroy()"
2018-04-01 01:46:44 +00:00
>
{{#if type === 'gifv'}}
2018-03-31 17:45:11 +00:00
<AutoplayVideo
ariaLabel="Animated GIF: {{description || ''}}"
:poster
:src
:width
:height
/>
{{else}}
<img
src="{{src}}"
width="{{width}}"
height="{{height}}"
2018-02-05 16:44:46 +00:00
alt="{{description || ''}}"
/>
{{/if}}
</ModalDialog>
<style>
2018-04-01 01:46:44 +00:00
:global(.image-modal-dialog img, .image-modal-dialog video) {
object-fit: contain;
max-width: calc(100vw - 20px);
2018-02-23 04:04:19 +00:00
max-height: calc(100% - 20px);
overflow: hidden;
}
</style>
<script>
2018-02-05 17:43:45 +00:00
import ModalDialog from './ModalDialog.html'
2018-03-31 17:45:11 +00:00
import AutoplayVideo from '../AutoplayVideo.html'
export default {
components: {
2018-03-31 17:45:11 +00:00
ModalDialog,
AutoplayVideo
},
methods: {
async show() {
this.set({shown: true})
}
}
}
</script>