media_viewer.js (996B)
- import fileTypeService from '../services/file_type/file_type.service.js'
- const supportedTypes = new Set(['image', 'video', 'audio', 'flash'])
- const mediaViewer = {
- state: {
- media: [],
- currentIndex: 0,
- activated: false
- },
- mutations: {
- setMedia (state, media) {
- state.media = media
- },
- setCurrentMedia (state, index) {
- state.activated = true
- state.currentIndex = index
- },
- close (state) {
- state.activated = false
- }
- },
- actions: {
- setMedia ({ commit }, attachments) {
- const media = attachments.filter(attachment => {
- const type = fileTypeService.fileType(attachment.mimetype)
- return supportedTypes.has(type)
- })
- commit('setMedia', media)
- },
- setCurrentMedia ({ commit, state }, current) {
- const index = state.media.indexOf(current)
- commit('setCurrentMedia', index || 0)
- },
- closeMediaViewer ({ commit }) {
- commit('close')
- }
- }
- }
- export default mediaViewer