import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { player: { isPlaying: false, isBuffering: false, isMute: false, isPaused: false, volume: 0, oldVolume: 0, title: 'test', }, }, mutations: { isPlaying(state, playerState) { state.player.isPlaying = playerState }, isBuffering(state, bufferingState) { state.player.isBuffering = bufferingState }, changeVolume(state, volume) { state.player.volume = volume }, toggleMute(state) { if (state.player.isMute) { state.player.volume = state.player.oldVolume state.player.isMute = false } else { state.player.oldVolume = state.player.volume state.player.volume = 0 state.player.isMute = true } }, togglePlay(state) { if (state.player.isPlaying) { state.player.isPlaying = false state.player.isPaused = true } else { state.player.isPlaying = true state.player.isPaused = false } }, setTitle(state, title) { state.player.title = title }, }, actions: { isPlaying(context, playerState) { context.commit('isPlaying', playerState) }, isBuffering(context, bufferingState) { context.commit('isBuffering', bufferingState) }, changeVolume(context, volume) { context.commit('changeVolume', volume) }, toggleMute(context) { context.commit('toggleMute') }, togglePlay(context) { context.commit('togglePlay') }, setTitle(context, title) { context.commit('setTitle', title) }, }, })