Merge branch 'master' of github.com:hackersanddesigners/chatty-pub

This commit is contained in:
André Fincato 2021-07-07 17:26:56 +02:00
commit 80ebc50514
2 changed files with 27 additions and 16 deletions

View file

@ -102,18 +102,18 @@ export default {
switch (event.type) { switch (event.type) {
case 'message': case 'message':
switch (event.message.subject) { if (event.message.subject == 'rules') {
case 'content': this.$store.commit('addRule', event.message)
this.$store.commit('addMessage', event.message) } else {
break this.$store.commit('addMessage', event.message)
case 'rules':
this.$store.commit('addRule', event.message)
break
} }
break break
case 'delete_message': case 'delete_message':
this.$store.commit('deleteMessage', event.message_id) this.$store.commit('deleteMessage', {
subject: event.topic,
mid: event.message_id
})
break break
case 'update_message': case 'update_message':

View file

@ -115,20 +115,29 @@ export default createStore({
} }
} }
}, },
deleteMessage: (state, mid) => { deleteMessage: (state, { mid, subject }) => {
const message = state.contents.find(m => m.id == mid) const topic = state.topics.find(t => t.title == subject)
if (message) { if (topic) {
state.contents.splice(state.contents.indexOf(message), 1) const message = topic.messages.find(m => m.id == mid)
if (message) {
topic.messages.splice(topic.messages.indexOf(message), 1)
}
} }
}, },
addReaction: (state, { mid, reaction }) => { addReaction: (state, { mid, reaction }) => {
const message = state.contents.find(m => m.id == mid) const message = state.topics
.map(t => t.messages)
.flat()
.find(m => m.id == mid)
if (message) { if (message) {
message.reactions.push(reaction) message.reactions.push(reaction)
} }
}, },
removeReaction: (state, { mid, reaction }) => { removeReaction: (state, { mid, reaction }) => {
const message = state.contents.find(m => m.id == mid) const message = state.topics
.map(t => t.messages)
.flat()
.find(m => m.id == mid)
if (message) { if (message) {
message.reactions.splice(message.reactions.indexOf(reaction), 1) message.reactions.splice(message.reactions.indexOf(reaction), 1)
} }
@ -145,13 +154,15 @@ export default createStore({
addRule: (state, rule) => { addRule: (state, rule) => {
if (toCSS(rule) !== null) { if (toCSS(rule) !== null) {
// state.rules.push(toCSS(rule, state.currentStream)) // state.rules.push(toCSS(rule, state.currentStream))
// vue will not update if i use rules.push(rule) // vue will not update if i use rules.push(rule)
state.rules = [...state.rules,...[toCSS(rule, state.currentStream)]] state.rules = [...state.rules,...[toCSS(rule, state.currentStream)]]
} }
}, },
editMessage: (state, { mid, content }) => { editMessage: (state, { mid, content }) => {
const message = state.contents.find(m => m.id == mid) const message = state.topics
.map(t => t.messages)
.flat()
.find(m => m.id == mid)
const rule = state.rules.find(r => r.id == mid) const rule = state.rules.find(r => r.id == mid)
if (message) { if (message) {
message.content = content message.content = content