pinafore/routes/_components/dialog/components/ImageDialog.html

49 lines
987 B
HTML

<ModalDialog
:id
:label
background="var(--muted-modal-bg)"
muted="true"
className="image-modal-dialog"
>
{{#if type === 'gifv'}}
<AutoplayVideo
ariaLabel="Animated GIF: {{description || ''}}"
:poster
:src
:width
:height
/>
{{else}}
<img
src="{{src}}"
width="{{width}}"
height="{{height}}"
alt="{{description || ''}}"
/>
{{/if}}
</ModalDialog>
<style>
:global(.image-modal-dialog img, .image-modal-dialog video) {
object-fit: contain;
max-width: calc(100vw - 20px);
max-height: calc(100% - 20px);
overflow: hidden;
}
</style>
<script>
import ModalDialog from './ModalDialog.html'
import AutoplayVideo from '../../AutoplayVideo.html'
import { show } from '../helpers/showDialog'
import { oncreate } from '../helpers/onCreateDialog'
export default {
oncreate,
components: {
ModalDialog,
AutoplayVideo
},
methods: {
show
}
}
</script>