{{ $.type.name }}
-
+ .+)\s*\n?{\n?(?[\s\w.~:>-]+\s*:\s*.+;?\n?)*\n?}/gm
let regex = /[/s]?(?.+)\s*\n?{\n?(?(.*;\n?)+)}/gm
let content = stripHtml(message.content).result;
let results = content.matchAll(regex);
results = Array.from(results);
+ // console.log(results)
if (results.length > 0) {
className = emojiConv.replace_colons(results[0]['groups']['selector']);
if (emoji.methods.containsEmoji(className)) {
@@ -26,7 +30,8 @@ let toCSS = (message, currentStream) => {
}
rules = results[0]['groups']['props'].split("\n");
rules = rules.filter((rule) => validateRule(rule))
- return { className, emoji_code, rules, parentClassName };
+ // console.log(className, emoji_code, rules, parentClassName, id)
+ return { className, emoji_code, rules, parentClassName, id };
}
return null;
}
@@ -84,25 +89,22 @@ export default createStore({
},
mutations: {
+
setMobile : (state, mobile) => state.isMobile = mobile,
setStreams : (state, streams) => state.streams = streams,
- setCurStream : (state, stream) => state.currentStream = stream,
-
+ setCurStream : (state, stream) => state.currentStream = stream,
+ setContents: (state, contents) => state.contents = contents,
addMessage: (state, message) => {
- if (message.content.startsWith('@_**')) {
- handleMDReply(message)
- } else if (
- message.content.includes('user-mention') &&
- message.content.includes('blockquote')
- ) {
- handleHTMLReply(message)
- }
- state.contents.push(message)
- },
- editMessage: (state, { mid, content }) => {
- const message = state.contents.find(m => m.id == mid)
- if (message) {
- message.content = content
+ if (message.display_recipient == state.currentStream) {
+ if (message.content.startsWith('@_**')) {
+ handleMDReply(message)
+ } else if (
+ message.content.includes('user-mention') &&
+ message.content.includes('blockquote')
+ ) {
+ handleHTMLReply(message)
+ }
+ state.contents.push(message)
}
},
deleteMessage: (state, mid) => {
@@ -123,7 +125,6 @@ export default createStore({
message.reactions.splice(message.reactions.indexOf(reaction), 1)
}
},
-
setRules: (state, rules) => {
state.rules = rules.reduce((acc, cur) => {
let rule = toCSS(cur, state.currentStream);
@@ -133,19 +134,43 @@ export default createStore({
return acc
}, [])
},
-
addRule: (state, rule) => {
if (toCSS(rule) !== null) {
- state.rules.push(toCSS(rule))
+ state.rules.push(toCSS(rule, state.currentStream))
}
- }
+ },
+ editMessage: (state, { mid, content }) => {
+ const message = state.contents.find(m => m.id == mid)
+ const rule = state.rules.find(r => r.id == mid)
+ if (message) {
+ message.content = content
+ if (message.content.startsWith('@_**')) {
+ handleMDReply(message)
+ } else if (
+ message.content.includes('user-mention') &&
+ message.content.includes('blockquote')
+ ) {
+ handleHTMLReply(message)
+ }
+ } else if (rule) {
+ const newRules = [...state.rules, ...[toCSS({
+ id: mid, content: content,
+ }, state.currentStream)]]
+ state.rules = newRules
+
+ // state.rules[state.rules.indexOf(rule)] = toCSS({
+ // id: mid, content: content,
+ // }, state.currentStream)
+ }
+ },
},
actions: {
},
- getters: {
+ getters: {
+ rules: state => state.rules
}
})
\ No newline at end of file
diff --git a/front/src/components/Rules/Rule.vue b/front/src/components/Rules/Rule.vue
index 544e1de..ebc605e 100644
--- a/front/src/components/Rules/Rule.vue
+++ b/front/src/components/Rules/Rule.vue
@@ -1,12 +1,12 @@
-
\ No newline at end of file
diff --git a/front/src/components/Streams/Stream.vue b/front/src/components/Streams/Stream.vue
index 6ac72a1..31b5e37 100644
--- a/front/src/components/Streams/Stream.vue
+++ b/front/src/components/Streams/Stream.vue
@@ -21,6 +21,8 @@ export default {
\ No newline at end of file
diff --git a/front/src/store/index.js b/front/src/store/index.js
index 7e7293d..d4a3ebf 100644
--- a/front/src/store/index.js
+++ b/front/src/store/index.js
@@ -1,24 +1,28 @@
/*eslint no-unused-vars: "off"*/
/*eslint no-undef: "off"*/
+// import Vue from 'vue'
import { createStore } from 'vuex'
-import emoji from "../mixins/emoji";
-import { stripHtml } from "string-strip-html";
+import emoji from "../mixins/emoji"
+import { stripHtml } from "string-strip-html"
var EmojiConvertor = require('emoji-js');
var emojiConv = new EmojiConvertor();
let toCSS = (message, currentStream) => {
+ // console.log(message)
let className = "",
emoji_code = "",
rules = [],
- parentClassName = currentStream
+ parentClassName = currentStream,
+ id = message.id
// let regex = /[/s]?(?
{{ rule.className }} {
{{ dec }}
}
-
+