diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index d8f2ed9bf..9bed18034 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -752,11 +752,13 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
+ undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
+ undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
diff --git a/src/client/app/common/scripts/note-mixin.ts b/src/client/app/common/scripts/note-mixin.ts
index 39e23f94e..76059fbb0 100644
--- a/src/client/app/common/scripts/note-mixin.ts
+++ b/src/client/app/common/scripts/note-mixin.ts
@@ -142,6 +142,14 @@ export default (opts: Opts = {}) => ({
});
},
+ undoReact(note) {
+ const oldReaction = note.myReaction;
+ if (!oldReaction) return;
+ this.$root.api('notes/reactions/delete', {
+ noteId: note.id
+ });
+ },
+
favorite() {
this.$root.api('notes/favorites/create', {
noteId: this.appearNote.id
diff --git a/src/client/app/desktop/views/components/note-detail.vue b/src/client/app/desktop/views/components/note-detail.vue
index d0a625bc1..f2d46a6ee 100644
--- a/src/client/app/desktop/views/components/note-detail.vue
+++ b/src/client/app/desktop/views/components/note-detail.vue
@@ -76,9 +76,12 @@
-