Skip to content

Commit 866a9a0

Browse files
committed
(UI) add media preview animation
1 parent d01f01a commit 866a9a0

File tree

3 files changed

+54
-24
lines changed

3 files changed

+54
-24
lines changed

src/lib/ChatWindow.vue

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,13 @@
7878
</template>
7979
</room>
8080
</div>
81-
<media-preview
82-
v-if="showMediaPreview"
83-
:file="filePreview"
84-
@close-media-preview="showMediaPreview = false"
85-
/>
81+
<transition name="vac-fade-preview" appear>
82+
<media-preview
83+
v-if="showMediaPreview"
84+
:file="filePreview"
85+
@close-media-preview="showMediaPreview = false"
86+
/>
87+
</transition>
8688
</div>
8789
</template>
8890

src/lib/MediaPreview/MediaPreview.vue

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,24 @@
66
@click.stop="closeModal"
77
@keydown.esc="closeModal"
88
>
9-
<div v-if="isImage" class="vac-media-preview-container">
10-
<div
11-
class="vac-image-preview"
12-
:style="{
13-
'background-image': `url('${file.url}')`
14-
}"
15-
@keypress.esc="closeModal"
16-
/>
17-
</div>
9+
<transition name="vac-bounce-preview" appear>
10+
<div v-if="isImage" class="vac-media-preview-container">
11+
<div
12+
class="vac-image-preview"
13+
:style="{
14+
'background-image': `url('${file.url}')`
15+
}"
16+
/>
17+
</div>
1818

19-
<div
20-
v-else-if="isVideo"
21-
class="vac-video-preview"
22-
@keypress.esc="closeModal"
23-
>
24-
<video width="100%" height="100%" controls>
25-
<source :src="file.url" />
26-
</video>
27-
</div>
19+
<div v-else-if="isVideo" class="vac-video-preview">
20+
<video width="100%" height="100%" controls>
21+
<source :src="file.url" />
22+
</video>
23+
</div>
24+
</transition>
2825

29-
<div class="vac-svg-button" @click="closeModal">
26+
<div class="vac-svg-button">
3027
<slot name="preview-close-icon">
3128
<svg-icon name="close-outline" param="preview" size="10" />
3229
</slot>

src/styles/animation.scss

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,34 @@
9898
transform: scale(1);
9999
}
100100
}
101+
102+
// Open media preview animation
103+
.vac-fade-preview-enter {
104+
opacity: 0;
105+
}
106+
107+
.vac-fade-preview-enter-active {
108+
transition: opacity 0.1s;
109+
}
110+
111+
.vac-fade-preview-leave-active {
112+
transition: opacity 0.2s;
113+
opacity: 0;
114+
}
115+
116+
.vac-bounce-preview-enter-active {
117+
animation: vac-bounce-image-in 0.4s;
118+
}
119+
120+
.vac-bounce-preview-leave-active {
121+
animation: vac-bounce-image-in 0.3s reverse;
122+
}
123+
124+
@keyframes vac-bounce-image-in {
125+
0% {
126+
transform: scale(0.6);
127+
}
128+
100% {
129+
transform: scale(1);
130+
}
131+
}

0 commit comments

Comments
 (0)