forked from Ivasoft/mattermost-mobile
* Load team member and roles in the WebSocket event * Split WebSocket actions and events into multiple files
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {EmojiTypes, PostTypes} from '@mm-redux/action_types';
|
|
import {getCustomEmojiForReaction} from '@mm-redux/actions/posts';
|
|
import {ActionResult, DispatchFunc, GenericAction} from '@mm-redux/types/actions';
|
|
import {WebSocketMessage} from '@mm-redux/types/websocket';
|
|
|
|
export function handleAddEmoji(msg: WebSocketMessage): GenericAction {
|
|
const data = JSON.parse(msg.data.emoji);
|
|
|
|
return {
|
|
type: EmojiTypes.RECEIVED_CUSTOM_EMOJI,
|
|
data,
|
|
};
|
|
}
|
|
|
|
export function handleReactionAddedEvent(msg: WebSocketMessage) {
|
|
return (dispatch: DispatchFunc): ActionResult => {
|
|
const {data} = msg;
|
|
const reaction = JSON.parse(data.reaction);
|
|
|
|
dispatch(getCustomEmojiForReaction(reaction.emoji_name));
|
|
|
|
dispatch({
|
|
type: PostTypes.RECEIVED_REACTION,
|
|
data: reaction,
|
|
});
|
|
return {data: true};
|
|
};
|
|
}
|
|
|
|
export function handleReactionRemovedEvent(msg: WebSocketMessage): GenericAction {
|
|
const {data} = msg;
|
|
const reaction = JSON.parse(data.reaction);
|
|
|
|
return {
|
|
type: PostTypes.REACTION_DELETED,
|
|
data: reaction,
|
|
};
|
|
} |