From d780e5b251c8f4f593f7bece72439e411a3c0b66 Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Sun, 9 Aug 2020 13:46:19 +0900 Subject: [PATCH] =?UTF-8?q?enhance(client):=20=E3=83=9F=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=81=95=E3=82=8C=E3=81=9F=E3=83=8E=E3=83=BC=E3=83=88?= =?UTF-8?q?=E6=95=B0=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F=E3=82=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/ja-JP.yml | 1 + src/client/components/ui/input.vue | 6 ++--- src/client/components/ui/select.vue | 2 +- src/client/components/ui/textarea.vue | 6 ++--- src/client/pages/my-settings/word-mute.vue | 8 +++++-- src/client/style.scss | 5 +++++ .../endpoints/i/get-word-muted-notes-count.ts | 22 +++++++++++++++++++ 7 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 src/server/api/endpoints/i/get-word-muted-notes-count.ts diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d3891a41a..c8b34608b 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -572,6 +572,7 @@ _wordMute: hardDescription: "指定した条件のノートをタイムラインに追加しないようにします。追加されなかったノートは、条件を変更しても除外されたままになります。" soft: "ソフト" hard: "ハード" + mutedNotesCount: "{count}ノートがミュートされました" _theme: explore: "テーマを探す" diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue index d5317db7f..f9c2d9a43 100644 --- a/src/client/components/ui/input.vue +++ b/src/client/components/ui/input.vue @@ -64,7 +64,7 @@ <div class="suffix" ref="suffix"><slot name="suffix"></slot></div> </div> <button class="save _textButton" v-if="save && changed" @click="() => { changed = false; save(); }">{{ $t('save') }}</button> - <div class="desc"><slot name="desc"></slot></div> + <div class="desc _caption"><slot name="desc"></slot></div> </div> </template> @@ -401,13 +401,11 @@ export default Vue.extend({ > .save { margin: 6px 0 0 0; - font-size: 13px; + font-size: 0.8em; } > .desc { margin: 6px 0 0 0; - font-size: 13px; - opacity: 0.7; &:empty { display: none; diff --git a/src/client/components/ui/select.vue b/src/client/components/ui/select.vue index 55f76553a..d42560e13 100644 --- a/src/client/components/ui/select.vue +++ b/src/client/components/ui/select.vue @@ -196,7 +196,7 @@ export default Vue.extend({ > .text { margin: 6px 0; - font-size: 13px; + font-size: 0.8em; &:empty { display: none; diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue index a42813ee6..fba9fc9d7 100644 --- a/src/client/components/ui/textarea.vue +++ b/src/client/components/ui/textarea.vue @@ -14,7 +14,7 @@ ></textarea> </div> <button class="save _textButton" v-if="save && changed" @click="() => { changed = false; save(); }">{{ $t('save') }}</button> - <div class="desc"><slot name="desc"></slot></div> + <div class="desc _caption"><slot name="desc"></slot></div> </div> </template> @@ -163,13 +163,11 @@ export default Vue.extend({ > .save { margin: 6px 0 0 0; - font-size: 13px; + font-size: 0.8em; } > .desc { margin: 6px 0 0 0; - font-size: 13px; - opacity: 0.7; &:empty { display: none; diff --git a/src/client/pages/my-settings/word-mute.vue b/src/client/pages/my-settings/word-mute.vue index 6b2a372f0..540a819bc 100644 --- a/src/client/pages/my-settings/word-mute.vue +++ b/src/client/pages/my-settings/word-mute.vue @@ -13,10 +13,11 @@ </div> <div class="_content" v-show="tab === 'hard'"> <mk-info>{{ $t('_wordMute.hardDescription') }}</mk-info> - <mk-textarea v-model="hardMutedWords"> + <mk-textarea v-model="hardMutedWords" style="margin-bottom: 16px;"> <span>{{ $t('_wordMute.muteWords') }}</span> <template #desc>{{ $t('_wordMute.muteWordsDescription') }}<br>{{ $t('_wordMute.muteWordsDescription2') }}</template> </mk-textarea> + <div v-if="hardWordMutedNotesCount != null" class="_caption">{{ $t('_wordMute.mutedNotesCount', { count: hardWordMutedNotesCount }) }}</div> </div> <div class="_footer"> <mk-button @click="save()" primary inline :disabled="!changed"><fa :icon="faSave"/> {{ $t('save') }}</mk-button> @@ -45,6 +46,7 @@ export default Vue.extend({ tab: 'soft', softMutedWords: '', hardMutedWords: '', + hardWordMutedNotesCount: null, changed: false, faCommentSlash, faSave, } @@ -59,9 +61,11 @@ export default Vue.extend({ }, }, - created() { + async created() { this.softMutedWords = this.$store.state.settings.mutedWords.map(x => x.join(' ')).join('\n'); this.hardMutedWords = this.$store.state.i.mutedWords.map(x => x.join(' ')).join('\n'); + + this.hardWordMutedNotesCount = (await this.$root.api('i/get-word-muted-notes-count', {})).count; }, methods: { diff --git a/src/client/style.scss b/src/client/style.scss index ab0dcf622..430e05651 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -413,6 +413,11 @@ hr { color: var(--link); } +._caption { + font-size: 0.8em; + opacity: 0.7; +} + .zoom-enter-active, .zoom-leave-active { transition: opacity 0.5s, transform 0.5s !important; } diff --git a/src/server/api/endpoints/i/get-word-muted-notes-count.ts b/src/server/api/endpoints/i/get-word-muted-notes-count.ts new file mode 100644 index 000000000..e88d697bf --- /dev/null +++ b/src/server/api/endpoints/i/get-word-muted-notes-count.ts @@ -0,0 +1,22 @@ +import define from '../../define'; +import { MutedNotes } from '../../../../models'; + +export const meta = { + tags: ['account'], + + requireCredential: true as const, + + kind: 'read:account', + + params: { + } +}; + +export default define(meta, async (ps, user) => { + return { + count: await MutedNotes.count({ + userId: user.id, + reason: 'word' + }) + }; +});