117 lines
3.4 KiB
JavaScript
117 lines
3.4 KiB
JavaScript
import PhoneAPI from './../../PhoneAPI'
|
|
const LOCAL_NAME = 'gc_notes_channels'
|
|
|
|
let NotesAudio = null
|
|
|
|
const state = {
|
|
channels: JSON.parse(localStorage[LOCAL_NAME] || null) || [],
|
|
currentChannel: null,
|
|
messagesChannel: []
|
|
}
|
|
|
|
const getters = {
|
|
notesChannels: ({ channels }) => channels,
|
|
notesCurrentChannel: ({ currentChannel }) => currentChannel,
|
|
notesMessages: ({ messagesChannel }) => messagesChannel
|
|
}
|
|
|
|
const actions = {
|
|
notesReset ({commit}) {
|
|
commit('NOTES_SET_MESSAGES', { messages: [] })
|
|
commit('NOTES_SET_CHANNEL', { channel: null })
|
|
commit('NOTES_REMOVES_ALL_CHANNELS')
|
|
},
|
|
notesSetChannel ({ state, commit, dispatch }, { channel }) {
|
|
if (state.currentChannel !== channel) {
|
|
commit('NOTES_SET_MESSAGES', { messages: [] })
|
|
commit('NOTES_SET_CHANNEL', { channel })
|
|
dispatch('notesGetMessagesChannel', { channel })
|
|
}
|
|
},
|
|
notesAddMessage ({ state, commit, getters }, { message }) {
|
|
const channel = message.channel
|
|
if (state.channels.find(e => e.channel === channel) !== undefined) {
|
|
if (NotesAudio !== null) {
|
|
NotesAudio.pause()
|
|
NotesAudio = null
|
|
}
|
|
NotesAudio = new Audio('/html/static/sound/tchatNotification.ogg')
|
|
NotesAudio.volume = getters.volume
|
|
NotesAudio.play()
|
|
}
|
|
commit('NOTES_ADD_MESSAGES', { message })
|
|
},
|
|
notesAddChannel ({ commit }, { channel }) {
|
|
commit('NOTES_ADD_CHANNELS', { channel })
|
|
},
|
|
notesRemoveChannel ({ commit }, { channel }) {
|
|
commit('NOTES_REMOVES_CHANNELS', { channel })
|
|
},
|
|
notesGetMessagesChannel ({ commit }, { channel }) {
|
|
PhoneAPI.notesGetMessagesChannel(channel)
|
|
},
|
|
notesSendMessage (state, { channel, message }) {
|
|
PhoneAPI.notesSendMessage(channel, message)
|
|
}
|
|
}
|
|
|
|
const mutations = {
|
|
NOTES_SET_CHANNEL (state, { channel }) {
|
|
state.currentChannel = channel
|
|
},
|
|
NOTES_ADD_CHANNELS (state, { channel }) {
|
|
state.channels.push({
|
|
channel
|
|
})
|
|
localStorage[LOCAL_NAME] = JSON.stringify(state.channels)
|
|
},
|
|
NOTES_REMOVES_CHANNELS (state, { channel }) {
|
|
state.channels = state.channels.filter(c => {
|
|
return c.channel !== channel
|
|
})
|
|
localStorage[LOCAL_NAME] = JSON.stringify(state.channels)
|
|
},
|
|
NOTES_REMOVES_ALL_CHANNELS (state) {
|
|
state.channels = []
|
|
localStorage[LOCAL_NAME] = JSON.stringify(state.channels)
|
|
},
|
|
NOTES_ADD_MESSAGES (state, { message }) {
|
|
if (message.channel === state.currentChannel) {
|
|
state.messagesChannel.push(message)
|
|
}
|
|
},
|
|
NOTES_SET_MESSAGES (state, { messages }) {
|
|
state.messagesChannel = messages
|
|
}
|
|
}
|
|
|
|
export default {
|
|
state,
|
|
getters,
|
|
actions,
|
|
mutations
|
|
}
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
state.currentChannel = 'debug'
|
|
state.messagesChannel = JSON.parse('[{"channel":"teste","message":"teste","id":6,"time":1528671680000},{"channel":"teste","message":"Hop","id":5,"time":1528671153000}]')
|
|
for (let i = 0; i < 200; i++) {
|
|
state.messagesChannel.push(Object.assign({}, state.messagesChannel[0], { id: 100 + i, message: 'mess ' + i }))
|
|
}
|
|
state.messagesChannel.push({
|
|
message: 'Message sur plusieur ligne car il faut bien !!! Ok !',
|
|
id: 5000,
|
|
time: new Date().getTime()
|
|
})
|
|
state.messagesChannel.push({
|
|
message: 'Message sur plusieur ligne car il faut bien !!! Ok !',
|
|
id: 5000,
|
|
time: new Date().getTime()
|
|
})
|
|
state.messagesChannel.push({
|
|
message: 'Message sur plusieur ligne car il faut bien !!! Ok !',
|
|
id: 5000,
|
|
time: new Date(4567845).getTime()
|
|
})
|
|
}
|