From a877e6486d2ebdb3c1483fe84717b22a41cddbc4 Mon Sep 17 00:00:00 2001
From: KMY <tt@kmycode.net>
Date: Tue, 1 Oct 2024 12:09:15 +0900
Subject: [PATCH 1/2] =?UTF-8?q?Fix:=20=E7=B5=B5=E6=96=87=E5=AD=97=E3=83=AA?=
 =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=9C=E3=82=BF?=
 =?UTF-8?q?=E3=83=B3=E3=81=8C=E5=8F=B3=E3=81=AB=E3=81=9A=E3=82=8C=E3=82=8B?=
 =?UTF-8?q?=E5=95=8F=E9=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../mastodon/components/status_action_bar.jsx          | 10 ++++++----
 app/javascript/styles/mastodon/components.scss         |  8 ++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx
index 01af1501d3..ebc62bd651 100644
--- a/app/javascript/mastodon/components/status_action_bar.jsx
+++ b/app/javascript/mastodon/components/status_action_bar.jsx
@@ -484,11 +484,13 @@ class StatusActionBar extends ImmutablePureComponent {
     const outside = emojiReactionPolicy !== 'outside_only' || (relationship && (relationship.get('following') || relationship.get('followed_by')));
     const denyFromAll = emojiReactionPolicy !== 'block' && emojiReactionPolicy !== 'block';
     const emojiPickerDropdown = (enableEmojiReaction && emojiReactionAvailableServer && denyFromAll && (writtenByMe || (following && followed && mutual && outside)) && (
-      <EmojiPickerDropdown onPickEmoji={this.handleEmojiPick} button={(
-        <IconButton className='status__action-bar__button' icon='smile-o' iconComponent={EmojiReactionIcon} onClick={this.handleEmojiPickInnerButton} />
-      )} />
+      <div className='status__action-bar__button-wrapper'>
+        <EmojiPickerDropdown onPickEmoji={this.handleEmojiPick} button={(
+          <IconButton icon='smile-o' iconComponent={EmojiReactionIcon} onClick={this.handleEmojiPickInnerButton} />
+        )} />
+      </div>
     )) || (enableEmojiReaction && (
-      <div className='status__action-bar__button__blank' />
+      <div className='status__action-bar__button-wrapper status__action-bar__button-wrapper__blank' />
     )) || null;
 
     const isReply = status.get('in_reply_to_account_id') === status.getIn(['account', 'id']);
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 75440790e8..a63dcb2c37 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -1524,6 +1524,10 @@ body > [data-popper-placement] {
     &:last-child {
       flex-grow: 0;
     }
+
+    &__blank {
+      width: 24px;
+    }
   }
 
   &--first-in-thread {
@@ -1767,10 +1771,6 @@ body > [data-popper-placement] {
   align-items: center;
   gap: 18px;
   margin-top: 16px;
-
-  &__button__blank {
-    width: 24px;
-  }
 }
 
 .detailed-status__action-bar-dropdown {

From 4182f75e48c1b2901019492567f318ba3e07a3fa Mon Sep 17 00:00:00 2001
From: KMY <tt@kmycode.net>
Date: Tue, 1 Oct 2024 12:20:19 +0900
Subject: [PATCH 2/2] =?UTF-8?q?Fix:=20=E7=B5=B5=E6=96=87=E5=AD=97=E3=83=AA?=
 =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=82=B7=E3=83=A7=E3=83=B3=E9=80=9A=E7=9F=A5?=
 =?UTF-8?q?=E3=81=AE=E3=82=B0=E3=83=AB=E3=83=BC=E3=83=97=E5=8C=96=E3=81=8C?=
 =?UTF-8?q?=E8=A1=8C=E3=82=8F=E3=82=8C=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/javascript/mastodon/actions/notification_groups.ts | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/app/javascript/mastodon/actions/notification_groups.ts b/app/javascript/mastodon/actions/notification_groups.ts
index b40b04f8cc..40dd0521cf 100644
--- a/app/javascript/mastodon/actions/notification_groups.ts
+++ b/app/javascript/mastodon/actions/notification_groups.ts
@@ -68,7 +68,11 @@ function dispatchAssociatedRecords(
     dispatch(importFetchedStatuses(fetchedStatuses));
 }
 
-const supportedGroupedNotificationTypes = ['favourite', 'reblog'];
+const supportedGroupedNotificationTypes = [
+  'favourite',
+  'reblog',
+  'emoji_reaction',
+];
 
 export const fetchNotifications = createDataLoadingThunk(
   'notificationGroups/fetch',