diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d3891a41a6a11f90e9f6849d71ff7f268abfa8e4..c8b34608b59240be7a21a9a127ee45bdd718a246 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 d5317db7f9f11c5792369a0fc47de50ff3fe6f32..f9c2d9a43afca04d61e143566142586c86a6712e 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 55f76553a7dbef60277750fbcd6a50095cacacc5..d42560e13aa41ce060537fd95b34e69866f0f528 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 a42813ee64a063987afcd9c32d9edc0bde504803..fba9fc9d78d1e60e066de97077854ab6fafb3379 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 6b2a372f0b2943740a1a71abf6a23922095d62a6..540a819bc034206e39adfd49c35cfeea2bda60f0 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 ab0dcf6220e8479ce4f02f572bebf81e2416d5ea..430e0565168c18f6e32c8967f7dfa218b4ee19fa 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 0000000000000000000000000000000000000000..e88d697bfd7d38d5183a2ce1ab0b31c8392a554e --- /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' + }) + }; +});