ひとつの投稿内で使えるそれぞれの動きのあるMFM構文は3回までに制限

This commit is contained in:
syuilo 2018-08-05 19:36:19 +09:00
parent 5bbc95d659
commit 6ef28214df

View file

@ -41,6 +41,9 @@ export default Vue.component('misskey-flavored-markdown', {
ast = this.ast;
}
let bigCount = 0;
let motionCount = 0;
// Parse ast to DOM
const els = flatten(ast.map(token => {
switch (token.type) {
@ -62,12 +65,14 @@ export default Vue.component('misskey-flavored-markdown', {
}
case 'big': {
bigCount++;
const isLong = length(token.big) > 10;
const isMany = bigCount > 3;
return (createElement as any)('strong', {
attrs: {
style: 'display: inline-block; font-size: 200%;'
style: `display: inline-block; font-size: ${ isMany ? '100%' : '200%' };`
},
directives: [this.$store.state.settings.disableAnimatedMfm || isLong ? {} : {
directives: [this.$store.state.settings.disableAnimatedMfm || isLong || isMany ? {} : {
name: 'animate-css',
value: { classes: 'tada', iteration: 'infinite' }
}]
@ -75,12 +80,14 @@ export default Vue.component('misskey-flavored-markdown', {
}
case 'motion': {
motionCount++;
const isLong = length(token.motion) > 10;
const isMany = motionCount > 3;
return (createElement as any)('span', {
attrs: {
style: 'display: inline-block;'
},
directives: [this.$store.state.settings.disableAnimatedMfm || isLong ? {} : {
directives: [this.$store.state.settings.disableAnimatedMfm || isLong || isMany ? {} : {
name: 'animate-css',
value: { classes: 'rubberBand', iteration: 'infinite' }
}]