@livelike/react-native
Version:
LiveLike React Native package
46 lines • 1.51 kB
JavaScript
import { useCallback, useEffect } from 'react';
import { addReactionSpaceEventListener, ReactionSpaceEvent, removeReactionSpaceEventListener, userProfile } from '@livelike/javascript';
import { userReactionStoreActions } from '../store/userReaction';
export function useUserReactionsEffect(_ref) {
let {
reactionSpaceId
} = _ref;
const addUserReaction = useCallback(event => {
userReactionStoreActions.addUserReactionAction({
reactionSpaceId,
userReaction: event.message,
profileId: userProfile.id
});
}, [reactionSpaceId]);
const removeUserReaction = useCallback(event => {
userReactionStoreActions.removeUserReactionAction({
reactionSpaceId,
userReaction: event.message,
profileId: userProfile.id
});
}, [reactionSpaceId]);
useEffect(() => {
if (!reactionSpaceId) {
return;
}
addReactionSpaceEventListener({
event: ReactionSpaceEvent.ADD_REACTION,
reactionSpaceId
}, addUserReaction);
addReactionSpaceEventListener({
event: ReactionSpaceEvent.REMOVE_REACTION,
reactionSpaceId
}, removeUserReaction);
return () => {
removeReactionSpaceEventListener({
event: ReactionSpaceEvent.ADD_REACTION,
reactionSpaceId
}, addUserReaction);
removeReactionSpaceEventListener({
event: ReactionSpaceEvent.REMOVE_REACTION,
reactionSpaceId
}, removeUserReaction);
};
}, [reactionSpaceId]);
}
//# sourceMappingURL=useUserReactionsEffect.js.map