add FullscreenModal component
This commit is contained in:
@@ -0,0 +1,81 @@
|
|||||||
|
<template>
|
||||||
|
<b-modal
|
||||||
|
:id="id"
|
||||||
|
class="modal-image"
|
||||||
|
static hide-footer hide-header
|
||||||
|
>
|
||||||
|
<template #default="{ close }">
|
||||||
|
<div class="modal-image-wrapper">
|
||||||
|
<button-expand expanded @click="close()" />
|
||||||
|
<img
|
||||||
|
v-if="image"
|
||||||
|
:src="image.url" :alt="image.alt"
|
||||||
|
@click="close()"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</b-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'FullscreenModal',
|
||||||
|
|
||||||
|
props: {
|
||||||
|
image: { type: Object, default: null },
|
||||||
|
id: { type: String, required: true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.modal-image {
|
||||||
|
z-index: 1100;
|
||||||
|
|
||||||
|
::v-deep .modal {
|
||||||
|
&-dialog {
|
||||||
|
max-width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-body {
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.modal-image-wrapper {
|
||||||
|
pointer-events: auto;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:not(:hover) .btn-expand {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-expand {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100vw;
|
||||||
|
max-height: 100vh;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user