UNPKG

@livelike/react-native

Version:

LiveLike React Native package

69 lines (65 loc) 1.62 kB
import { useCallback, useEffect } from 'react'; import { addReactionSpaceEventListener, ReactionSpaceEvent, removeReactionSpaceEventListener, userProfile, } from '@livelike/javascript'; import { userReactionStoreActions } from '../store/userReaction'; export function useUserReactionsEffect({ reactionSpaceId }) { 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]); }