summaryrefslogtreecommitdiffstats
path: root/webapp/actions/emoji_actions.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/actions/emoji_actions.jsx')
-rw-r--r--webapp/actions/emoji_actions.jsx53
1 files changed, 44 insertions, 9 deletions
diff --git a/webapp/actions/emoji_actions.jsx b/webapp/actions/emoji_actions.jsx
index e5c9751c0..a6323449e 100644
--- a/webapp/actions/emoji_actions.jsx
+++ b/webapp/actions/emoji_actions.jsx
@@ -3,20 +3,21 @@
import UserStore from 'stores/user_store.jsx';
+import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
+import {ActionTypes} from 'utils/constants.jsx';
+
import store from 'stores/redux_store.jsx';
const dispatch = store.dispatch;
const getState = store.getState;
import {getProfilesByIds} from 'mattermost-redux/actions/users';
-import {getAllCustomEmojis} from 'mattermost-redux/actions/emojis';
+import * as EmojiActions from 'mattermost-redux/actions/emojis';
-export function loadEmoji(getProfiles = true) {
- getAllCustomEmojis(10000)(dispatch, getState).then(
- (data) => {
- if (getProfiles) {
- loadProfilesForEmoji(data);
- }
- }
- );
+export async function loadEmoji(getProfiles = true) {
+ const data = await EmojiActions.getAllCustomEmojis(10000)(dispatch, getState);
+
+ if (data && getProfiles) {
+ loadProfilesForEmoji(data);
+ }
}
function loadProfilesForEmoji(emojiList) {
@@ -35,3 +36,37 @@ function loadProfilesForEmoji(emojiList) {
getProfilesByIds(list)(dispatch, getState);
}
+
+export function addEmoji(emoji, image, success, error) {
+ EmojiActions.createCustomEmoji(emoji, image)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.emojis.createCustomEmoji.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function deleteEmoji(emojiId, success, error) {
+ EmojiActions.deleteCustomEmoji(emojiId)(dispatch, getState).then(
+ (data) => {
+ if (data) {
+ // Needed to remove recently used emoji
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.REMOVED_CUSTOM_EMOJI,
+ id: emojiId
+ });
+
+ if (success) {
+ success(data);
+ }
+ } else if (data == null && error) {
+ const serverError = getState().requests.emojis.deleteCustomEmoji.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}