8181 </template >
8282 </room >
8383 </div >
84+ <transition name =" vac-fade-preview" appear >
85+ <media-preview
86+ v-if =" showMediaPreview"
87+ :file =" previewFile"
88+ @close-media-preview =" showMediaPreview = false"
89+ />
90+ </transition >
8491 </div >
8592</template >
8693
8794<script >
8895import RoomsList from ' ./RoomsList/RoomsList'
8996import Room from ' ./Room/Room'
97+ import MediaPreview from ' ./MediaPreview/MediaPreview'
9098
9199import locales from ' ../locales'
92100import { defaultThemeStyles , cssThemeVars } from ' ../themes'
@@ -99,7 +107,8 @@ export default {
99107 name: ' ChatContainer' ,
100108 components: {
101109 RoomsList,
102- Room
110+ Room,
111+ MediaPreview
103112 },
104113
105114 props: {
@@ -163,7 +172,8 @@ export default {
163172 roomMessage: { type: String , default: ' ' },
164173 scrollDistance: { type: Number , default: 60 },
165174 acceptedFiles: { type: String , default: ' *' },
166- templatesText: { type: Array , default: null }
175+ templatesText: { type: Array , default: null },
176+ mediaPreviewEnabled: { type: Boolean , default: true }
167177 },
168178
169179 emits: [
@@ -191,7 +201,9 @@ export default {
191201 room: {},
192202 loadingMoreRooms: false ,
193203 showRoomsList: true ,
194- isMobile: false
204+ isMobile: false ,
205+ showMediaPreview: false ,
206+ previewFile: {}
195207 }
196208 },
197209
@@ -333,7 +345,12 @@ export default {
333345 this .$emit (' delete-message' , { message, roomId: this .room .roomId })
334346 },
335347 openFile ({ message, file }) {
336- this .$emit (' open-file' , { message, file })
348+ if (this .mediaPreviewEnabled && file .action === ' preview' ) {
349+ this .previewFile = file .file
350+ this .showMediaPreview = true
351+ } else {
352+ this .$emit (' open-file' , { message, file })
353+ }
337354 },
338355 openUserTag ({ user }) {
339356 this .$emit (' open-user-tag' , { user })
0 commit comments