Skip to content

Commit 046eab7

Browse files
authored
fix(frontend/reactions): ローカルのカスタム絵文字のミュートが正常に機能しない問題を修正 (#765)
#762
1 parent 4d92891 commit 046eab7

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

packages/frontend/src/components/MkNoteDetailed.vue

+11-5
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,10 @@ SPDX-License-Identifier: AGPL-3.0-only
171171
<span style="margin-left: 4px;">{{ appearNote.reactions[reaction] }}</span>
172172
</button>
173173
</div>
174-
<MkButton v-if="reactionTabType" :class="$style.reactionMuteButton" @click="reactionMuteToggle(reactionTabType)"> <i :class="!mutedReactions.includes(reactionTabType) ? 'ti ti-mood-happy' : 'ti ti-mood-off'"></i> {{ !mutedReactions.includes(reactionTabType) ? i18n.ts.muteThisReaction : i18n.ts.unmuteThisReaction }} </MkButton>
174+
<MkButton v-if="reactionTabType" :class="$style.reactionMuteButton" @click="reactionMuteToggle(reactionTabTypeTrimLocal)">
175+
<i :class="!mutedReactions.includes(reactionTabTypeTrimLocal) ? 'ti ti-mood-happy' : 'ti ti-mood-off'"/>
176+
{{ !mutedReactions.includes(reactionTabTypeTrimLocal) ? i18n.ts.muteThisReaction : i18n.ts.unmuteThisReaction }}
177+
</MkButton>
175178
<MkPagination v-if="reactionTabType" :key="reactionTabType" :pagination="reactionsPagination" :disableAutoLoad="true">
176179
<template #default="{ items }">
177180
<div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); grid-gap: 12px;">
@@ -314,6 +317,7 @@ provide('react', (reaction: string) => {
314317

315318
const tab = ref(props.initialTab);
316319
const reactionTabType = ref<string | null>(null);
320+
const reactionTabTypeTrimLocal = computed(() => reactionTabType.value?.replace('@.', '') ?? null);
317321

318322
const renotesPagination = computed<Paging>(() => ({
319323
endpoint: 'notes/renotes',
@@ -484,12 +488,14 @@ async function clip() {
484488
os.popupMenu(await getNoteClipMenu({ note: note.value, isDeleted }), clipButton.value).then(focus);
485489
}
486490

487-
async function reactionMuteToggle(emojiName: string) {
488-
if (!mutedReactions.value.includes(emojiName)) {
489-
mutedReactions.value.push(emojiName);
491+
async function reactionMuteToggle(reactionName: string | null) {
492+
if (reactionName == null) return;
493+
494+
if (!mutedReactions.value.includes(reactionName)) {
495+
mutedReactions.value.push(reactionName);
490496
defaultStore.set('mutedReactions', mutedReactions.value);
491497
} else {
492-
mutedReactions.value = mutedReactions.value.filter(x => x !== emojiName);
498+
mutedReactions.value = mutedReactions.value.filter(x => x !== reactionName);
493499
defaultStore.set('mutedReactions', mutedReactions.value);
494500
}
495501
}

packages/frontend/src/pages/settings/mute-block.vue

-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ function remove(itemsRef: Ref<string[]>, reaction: string, ev: MouseEvent) {
197197
async function pickEmoji(itemsRef: Ref<string[]>, ev: MouseEvent) {
198198
os.pickEmoji(ev.currentTarget ?? ev.target, {
199199
showPinned: false,
200-
manualReactionInput: true,
201200
}).then(it => {
202201
const emoji = it;
203202
if (!itemsRef.value.includes(emoji)) {

0 commit comments

Comments
 (0)