From de951a0ef94fa42503fb08fa5546be021d39f657 Mon Sep 17 00:00:00 2001 From: KMY Date: Sun, 26 Feb 2023 18:09:25 +0900 Subject: [PATCH] Add emoji reaction notification support --- .../mastodon/actions/interactions.js | 4 ++- .../mastodon/actions/notifications.js | 1 + .../components/column_settings.jsx | 11 ++++++ .../notifications/components/filter_bar.jsx | 7 ++++ .../notifications/components/notification.jsx | 35 +++++++++++++++++++ app/javascript/mastodon/reducers/statuses.js | 7 ++-- app/models/notification.rb | 3 ++ .../rest/notification_serializer.rb | 2 +- app/services/un_emoji_react_service.rb | 30 +++++++++------- app/workers/feed_any_json_worker.rb | 21 +++++++++-- app/workers/un_emoji_react_worker.rb | 2 +- 11 files changed, 100 insertions(+), 23 deletions(-) diff --git a/app/javascript/mastodon/actions/interactions.js b/app/javascript/mastodon/actions/interactions.js index 5b1163b3ab..d9d7e14060 100644 --- a/app/javascript/mastodon/actions/interactions.js +++ b/app/javascript/mastodon/actions/interactions.js @@ -207,7 +207,9 @@ export function emojiReact(status, emoji) { return function (dispatch, getState) { dispatch(emojiReactRequest(status, emoji)); - api(getState).post(`/api/v1/statuses/${status.get('id')}/emoji_reactions`, { emoji: emoji.custom ? (emoji.name + (emoji.domain || '')) : emoji.native }).then(function () { + const api_emoji = typeof emoji !== 'string' ? (emoji.custom ? (emoji.name + (emoji.domain || '')) : emoji.native) : emoji; + + api(getState).post(`/api/v1/statuses/${status.get('id')}/emoji_reactions`, { emoji: api_emoji }).then(function () { dispatch(emojiReactSuccess(status, emoji)); }).catch(function (error) { dispatch(emojiReactFail(status, emoji, error)); diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index cd9c1fd1a0..81bce49148 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -137,6 +137,7 @@ const excludeTypesFromFilter = filter => { 'follow', 'follow_request', 'favourite', + 'emoji_reaction', 'reblog', 'mention', 'poll', diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.jsx b/app/javascript/mastodon/features/notifications/components/column_settings.jsx index 9251847bad..b6a3124ccb 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.jsx +++ b/app/javascript/mastodon/features/notifications/components/column_settings.jsx @@ -115,6 +115,17 @@ export default class ColumnSettings extends React.PureComponent { +
+ + +
+ + {showPushSettings && } + + +
+
+
diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx index 368eb0b7e6..f56ca6a69c 100644 --- a/app/javascript/mastodon/features/notifications/components/filter_bar.jsx +++ b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx @@ -74,6 +74,13 @@ class FilterBar extends React.PureComponent { > +