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