diff --git a/app/gabsocial/actions/emoji_reacts.js b/app/gabsocial/actions/emoji_reacts.js index 0b61d1eb4..3443165d2 100644 --- a/app/gabsocial/actions/emoji_reacts.js +++ b/app/gabsocial/actions/emoji_reacts.js @@ -13,9 +13,11 @@ export const EMOJI_REACTS_FETCH_REQUEST = 'EMOJI_REACTS_FETCH_REQUEST'; export const EMOJI_REACTS_FETCH_SUCCESS = 'EMOJI_REACTS_FETCH_SUCCESS'; export const EMOJI_REACTS_FETCH_FAIL = 'EMOJI_REACTS_FETCH_FAIL'; +const noOp = () => () => new Promise(f => f()); + export function fetchEmojiReacts(id, emoji) { return (dispatch, getState) => { - if (!getState().get('me')) return; + if (!getState().get('me')) return dispatch(noOp()); dispatch(fetchEmojiReactsRequest(id, emoji)); @@ -23,7 +25,7 @@ export function fetchEmojiReacts(id, emoji) { ? `/api/v1/pleroma/statuses/${id}/reactions/${emoji}` : `/api/v1/pleroma/statuses/${id}/reactions`; - api(getState).get(url).then(response => { + return api(getState).get(url).then(response => { response.data.forEach(emojiReact => { dispatch(importFetchedAccounts(emojiReact.accounts)); }); @@ -36,11 +38,11 @@ export function fetchEmojiReacts(id, emoji) { export function emojiReact(status, emoji) { return function(dispatch, getState) { - if (!getState().get('me')) return; + if (!getState().get('me')) return dispatch(noOp()); dispatch(emojiReactRequest(status, emoji)); - api(getState) + return api(getState) .put(`/api/v1/pleroma/statuses/${status.get('id')}/reactions/${emoji}`) .then(function(response) { dispatch(importFetchedStatus(response.data)); @@ -53,11 +55,11 @@ export function emojiReact(status, emoji) { export function unEmojiReact(status, emoji) { return (dispatch, getState) => { - if (!getState().get('me')) return; + if (!getState().get('me')) return dispatch(noOp()); dispatch(unEmojiReactRequest(status, emoji)); - api(getState) + return api(getState) .delete(`/api/v1/pleroma/statuses/${status.get('id')}/reactions/${emoji}`) .then(response => { dispatch(importFetchedStatus(response.data)); diff --git a/app/gabsocial/components/icon_button.js b/app/gabsocial/components/icon_button.js index ceb2a643c..c0561bf9e 100644 --- a/app/gabsocial/components/icon_button.js +++ b/app/gabsocial/components/icon_button.js @@ -4,6 +4,7 @@ import spring from 'react-motion/lib/spring'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import Icon from 'gabsocial/components/icon'; +import emojify from 'gabsocial/features/emoji/emoji'; export default class IconButton extends React.PureComponent { @@ -24,6 +25,7 @@ export default class IconButton extends React.PureComponent { overlay: PropTypes.bool, tabIndex: PropTypes.string, text: PropTypes.string, + emoji: PropTypes.string, }; static defaultProps = { @@ -66,6 +68,7 @@ export default class IconButton extends React.PureComponent { tabIndex, title, text, + emoji, } = this.props; const classes = classNames(className, 'icon-button', { @@ -90,7 +93,9 @@ export default class IconButton extends React.PureComponent { disabled={disabled} >
-