UNPKG

@livelike/react-native

Version:

LiveLike React Native package

45 lines 1.53 kB
import { useCallback, useEffect } from 'react'; import { getReactionSpaceDetail, getReactionPackDetail, addReactionSpaceEventListener, ReactionSpaceEvent, removeReactionSpaceEventListener } from '@livelike/javascript'; import { reactionPackStoreActions } from '../store/reactionPack'; const loadReactionPackFromReactionSpace = reactionSpace => { return Promise.all(reactionSpace.reaction_pack_ids.map(reactionPackId => getReactionPackDetail({ reactionPackId }))).then(reactionPacks => { reactionPackStoreActions.updateReactionPackAction({ reactionSpaceId: reactionSpace.id, reactionPacks }); }); }; export function useLoadReactionPacksEffect(_ref) { let { reactionSpaceId } = _ref; useEffect(() => { if (!reactionSpaceId) { return; } getReactionSpaceDetail({ reactionSpaceId }).then(loadReactionPackFromReactionSpace); }, [reactionSpaceId]); const reactionSpaceListener = useCallback(event => { return loadReactionPackFromReactionSpace(event.message); }, [reactionSpaceId]); useEffect(() => { if (!reactionSpaceId) { return; } addReactionSpaceEventListener({ event: ReactionSpaceEvent.UPDATE_REACTION_SPACE, reactionSpaceId }, reactionSpaceListener); return () => { removeReactionSpaceEventListener({ event: ReactionSpaceEvent.UPDATE_REACTION_SPACE, reactionSpaceId }, reactionSpaceListener); }; }, [reactionSpaceId]); } //# sourceMappingURL=useLoadReactionPacksEffect.js.map