diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-10 23:17:42 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-10 23:17:42 +0900 |
| commit | 2511114c287d95010e15a08deb7ff20561b0c3b0 (patch) | |
| tree | c65806f5bde9a57cd6ff73b2c7805d21fbf2c898 /src/client/components | |
| parent | :art: (diff) | |
| download | misskey-2511114c287d95010e15a08deb7ff20561b0c3b0.tar.gz misskey-2511114c287d95010e15a08deb7ff20561b0c3b0.tar.bz2 misskey-2511114c287d95010e15a08deb7ff20561b0c3b0.zip | |
なんかもうめっちゃ変えた
Resolve #5846
Diffstat (limited to 'src/client/components')
| -rw-r--r-- | src/client/components/autocomplete.vue | 2 | ||||
| -rw-r--r-- | src/client/components/emoji-picker.vue | 2 | ||||
| -rw-r--r-- | src/client/components/emoji.vue | 43 | ||||
| -rw-r--r-- | src/client/components/mfm.ts | 3 | ||||
| -rw-r--r-- | src/client/components/post-form.vue | 8 | ||||
| -rw-r--r-- | src/client/components/reaction-icon.vue | 12 | ||||
| -rw-r--r-- | src/client/components/signin.vue | 11 | ||||
| -rw-r--r-- | src/client/components/signup.vue | 11 |
8 files changed, 40 insertions, 52 deletions
diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue index 2ab837a2c5..f17351a6f0 100644 --- a/src/client/components/autocomplete.vue +++ b/src/client/components/autocomplete.vue @@ -143,7 +143,7 @@ export default Vue.extend({ this.setPosition(); //#region Construct Emoji DB - const customEmojis = (this.$root.getMetaSync() || { emojis: [] }).emojis || []; + const customEmojis = this.$store.state.instance.meta.emojis; const emojiDefinitions: EmojiDef[] = []; for (const x of customEmojis) { diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue index 61d641a023..a647b0ea04 100644 --- a/src/client/components/emoji-picker.vue +++ b/src/client/components/emoji-picker.vue @@ -140,7 +140,7 @@ export default Vue.extend({ }, created() { - let local = (this.$root.getMetaSync() || { emojis: [] }).emojis || []; + let local = this.$store.state.instance.meta.emojis; local = groupByX(local, (x: any) => x.category || ''); this.customEmojis = local; }, diff --git a/src/client/components/emoji.vue b/src/client/components/emoji.vue index 2e8bddb803..7784a1bf17 100644 --- a/src/client/components/emoji.vue +++ b/src/client/components/emoji.vue @@ -55,38 +55,35 @@ export default Vue.extend({ useOsDefaultEmojis(): boolean { return this.$store.state.device.useOsDefaultEmojis && !this.isReaction; + }, + + ce() { + let ce = []; + if (this.customEmojis) ce = ce.concat(this.customEmojis); + if (this.$store.state.instance.meta && this.$store.state.instance.meta.emojis) ce = ce.concat(this.$store.state.instance.meta.emojis); + return ce; } }, watch: { - customEmojis() { - if (this.name) { - const customEmoji = this.customEmojis.find(x => x.name == this.name); - if (customEmoji) { - this.customEmoji = customEmoji; - this.url = this.$store.state.device.disableShowingAnimatedImages - ? getStaticImageUrl(customEmoji.url) - : customEmoji.url; + ce: { + handler() { + if (this.name) { + const customEmoji = this.ce.find(x => x.name == this.name); + if (customEmoji) { + this.customEmoji = customEmoji; + this.url = this.$store.state.device.disableShowingAnimatedImages + ? getStaticImageUrl(customEmoji.url) + : customEmoji.url; + } } - } + }, + immediate: true }, }, created() { - if (this.name) { - const customEmoji = this.customEmojis.find(x => x.name == this.name); - if (customEmoji) { - this.customEmoji = customEmoji; - this.url = this.$store.state.device.disableShowingAnimatedImages - ? getStaticImageUrl(customEmoji.url) - : customEmoji.url; - } else { - //const emoji = lib[this.name]; - //if (emoji) { - // this.char = emoji.char; - //} - } - } else { + if (!this.name) { this.char = this.emoji; } diff --git a/src/client/components/mfm.ts b/src/client/components/mfm.ts index 719e9fe94a..275167836e 100644 --- a/src/client/components/mfm.ts +++ b/src/client/components/mfm.ts @@ -234,7 +234,6 @@ export default Vue.component('misskey-flavored-markdown', { } case 'emoji': { - const customEmojis = (this.$root.getMetaSync() || { emojis: [] }).emojis || []; return [createElement('mk-emoji', { key: Math.random(), attrs: { @@ -242,7 +241,7 @@ export default Vue.component('misskey-flavored-markdown', { name: token.node.props.name }, props: { - customEmojis: this.customEmojis || customEmojis, + customEmojis: this.customEmojis, normal: this.plain } })]; diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 6716fa1b7c..6645c4f1f4 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -8,7 +8,7 @@ <header> <button class="cancel _button" @click="cancel"><fa :icon="faTimes"/></button> <div> - <span class="text-count" :class="{ over: trimmedLength(text) > 500 }">{{ 500 - trimmedLength(text) }}</span> + <span class="text-count" :class="{ over: trimmedLength(text) > max }">{{ max - trimmedLength(text) }}</span> <button class="_button visibility" @click="setVisibility" ref="visibilityButton"> <span v-if="visibility === 'public'"><fa :icon="faGlobe"/></span> <span v-if="visibility === 'home'"><fa :icon="faHome"/></span> @@ -172,8 +172,12 @@ export default Vue.extend({ canPost(): boolean { return !this.posting && (1 <= this.text.length || 1 <= this.files.length || this.poll || this.renote) && - (length(this.text.trim()) <= 500) && + (length(this.text.trim()) <= this.max) && (!this.poll || this.pollChoices.length >= 2); + }, + + max(): number { + return this.$store.state.instance.meta ? this.$store.state.instance.meta.maxNoteTextLength : 1000; } }, diff --git a/src/client/components/reaction-icon.vue b/src/client/components/reaction-icon.vue index 368ddc0efc..9155c59440 100644 --- a/src/client/components/reaction-icon.vue +++ b/src/client/components/reaction-icon.vue @@ -1,5 +1,5 @@ <template> -<mk-emoji :emoji="reaction.startsWith(':') ? null : reaction" :name="reaction.startsWith(':') ? reaction.substr(1, reaction.length - 2) : null" :is-reaction="true" :custom-emojis="customEmojis" :normal="true" :no-style="noStyle"/> +<mk-emoji :emoji="reaction.startsWith(':') ? null : reaction" :name="reaction.startsWith(':') ? reaction.substr(1, reaction.length - 2) : null" :is-reaction="true" :normal="true" :no-style="noStyle"/> </template> <script lang="ts"> @@ -18,15 +18,5 @@ export default Vue.extend({ default: false }, }, - data() { - return { - customEmojis: [] - }; - }, - created() { - this.$root.getMeta().then(meta => { - if (meta && meta.emojis) this.customEmojis = meta.emojis; - }); - }, }); </script> diff --git a/src/client/components/signin.vue b/src/client/components/signin.vue index 1526f554a4..22b5ec804c 100644 --- a/src/client/components/signin.vue +++ b/src/client/components/signin.vue @@ -82,7 +82,6 @@ export default Vue.extend({ token: '', apiUrl, host: toUnicode(host), - meta: null, totpLogin: false, credential: null, challengeData: null, @@ -91,11 +90,13 @@ export default Vue.extend({ }; }, - created() { - this.$root.getMeta().then(meta => { - this.meta = meta; - }); + computed: { + meta() { + return this.$store.state.instance.meta; + }, + }, + created() { if (this.autoSet) { this.$once('login', res => { localStorage.setItem('i', res.i); diff --git a/src/client/components/signup.vue b/src/client/components/signup.vue index c03a99def6..47c32a3364 100644 --- a/src/client/components/signup.vue +++ b/src/client/components/signup.vue @@ -79,7 +79,6 @@ export default Vue.extend({ usernameState: null, passwordStrength: '', passwordRetypeState: null, - meta: {}, submitting: false, ToSAgreement: false, faLock, faExclamationTriangle, faSpinner, faCheck @@ -87,6 +86,10 @@ export default Vue.extend({ }, computed: { + meta() { + return this.$store.state.instance.meta; + }, + shouldShowProfileUrl(): boolean { return (this.username != '' && this.usernameState != 'invalid-format' && @@ -95,12 +98,6 @@ export default Vue.extend({ } }, - created() { - this.$root.getMeta().then(meta => { - this.meta = meta; - }); - }, - mounted() { const head = document.getElementsByTagName('head')[0]; const script = document.createElement('script'); |