diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index f007c06df6..0be516a195 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -47,10 +47,7 @@ import { showAlertForError } from '../actions/alerts';
import AccountContainer from 'flavours/glitch/containers/account_container';
import Spoilers from '../components/spoilers';
import Icon from 'flavours/glitch/components/icon';
-import { createSelector } from 'reselect';
-import { Map as ImmutableMap } from 'immutable';
-
-const customEmojiMap = createSelector([state => state.get('custom_emojis')], items => items.reduce((map, emoji) => map.set(emoji.get('shortcode'), emoji), ImmutableMap()));
+import buildCustomEmojiMap from '../utils/emoji_map';
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
@@ -94,7 +91,7 @@ const makeMapStateToProps = () => {
account: account || props.account,
settings: state.get('local_settings'),
prepend: prepend || props.prepend,
- emojiMap: customEmojiMap(state),
+ emojiMap: buildCustomEmojiMap(state),
pictureInPicture: getPictureInPicture(state, props),
};
};
diff --git a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
index 1770436ae7..00c11d6fa8 100644
--- a/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
+++ b/app/javascript/flavours/glitch/features/status/components/detailed_status.jsx
@@ -17,6 +17,7 @@ import { Icon } from 'flavours/glitch/components/icon';
import MediaGallery from 'flavours/glitch/components/media_gallery';
import PictureInPicturePlaceholder from 'flavours/glitch/components/picture_in_picture_placeholder';
import StatusContent from 'flavours/glitch/components/status_content';
+import StatusReactionsBar from '../../../components/status_reactions_bar';
import VisibilityIcon from 'flavours/glitch/components/status_visibility_icon';
import PollContainer from 'flavours/glitch/containers/poll_container';
import Audio from 'flavours/glitch/features/audio';
@@ -26,9 +27,6 @@ import scheduleIdleTask from '../../ui/util/schedule_idle_task';
import Card from './card';
-
-
-
class DetailedStatus extends ImmutablePureComponent {
static contextTypes = {
@@ -53,6 +51,9 @@ class DetailedStatus extends ImmutablePureComponent {
available: PropTypes.bool,
}),
onToggleMediaVisibility: PropTypes.func,
+ onReactionAdd: PropTypes.func.isRequired,
+ onReactionRemove: PropTypes.func.isRequired,
+ emojiMap: ImmutablePropTypes.map.isRequired,
intl: PropTypes.object.isRequired,
};
@@ -332,6 +333,14 @@ class DetailedStatus extends ImmutablePureComponent {
disabled
/>
+