diff --git a/app/gabsocial/features/status/components/status_interaction_bar.js b/app/gabsocial/features/status/components/status_interaction_bar.js
index bb276dd84..9b1cb4c3b 100644
--- a/app/gabsocial/features/status/components/status_interaction_bar.js
+++ b/app/gabsocial/features/status/components/status_interaction_bar.js
@@ -9,22 +9,37 @@ export class StatusInteractionBar extends React.Component {
status: ImmutablePropTypes.map,
}
- render() {
+ getNormalizedReacts = () => {
const { status } = this.props;
const emojiReacts = status.getIn(['pleroma', 'emoji_reactions']);
const favouritesCount = status.get('favourites_count');
+ return reduceEmoji(emojiReacts, favouritesCount).reverse();
+ }
+
+ render() {
+ const emojiReacts = this.getNormalizedReacts();
+ const count = emojiReacts.reduce((acc, cur) => (
+ acc + cur.get('count')
+ ), 0);
+
+ if (count < 1) return null;
return (
-
- {reduceEmoji(emojiReacts, favouritesCount).map((e, i) => (
-
-
- {e.get('count')}
-
- ))}
+
+
+ {emojiReacts.map((e, i) => (
+
+
+ {e.get('count')}
+
+ ))}
+
+
+ {count}
+
);
}
diff --git a/app/styles/application.scss b/app/styles/application.scss
index a57193533..3b267a4bd 100644
--- a/app/styles/application.scss
+++ b/app/styles/application.scss
@@ -32,6 +32,7 @@
@import 'gabsocial/components/group-sidebar-panel';
@import 'gabsocial/components/sidebar-menu';
@import 'gabsocial/components/hotkeys-modal';
+@import 'gabsocial/components/emoji-reacts';
@import 'gabsocial/polls';
@import 'gabsocial/introduction';
diff --git a/app/styles/gabsocial/components/emoji-reacts.scss b/app/styles/gabsocial/components/emoji-reacts.scss
new file mode 100644
index 000000000..71a5c18e1
--- /dev/null
+++ b/app/styles/gabsocial/components/emoji-reacts.scss
@@ -0,0 +1,49 @@
+.emoji-react {
+ display: inline-block;
+ transition: 0.1s;
+
+ &__emoji {
+ img {
+ width: 20px;
+ height: 20px;
+ filter: drop-shadow(2px 0 0 #fff); // FIXME: Use theme color
+ }
+ }
+
+ &__count {
+ display: none;
+ }
+
+ + .emoji-react {
+ margin-right: -8px;
+ }
+}
+
+.emoji-reacts {
+ display: inline-flex;
+ flex-direction: row-reverse;
+}
+
+.emoji-reacts-container {
+ display: inline-flex;
+
+ &:hover {
+ .emoji-react {
+ margin: 0;
+
+ &__count {
+ display: inline;
+ }
+ }
+
+ .emoji-reacts__count {
+ display: none;
+ }
+ }
+}
+
+.emoji-reacts__count,
+.emoji-react__count {
+ font-size: 12px;
+ font-weight: bold;
+}