UNPKG

@livelike/react-native

Version:

LiveLike React Native package

49 lines (43 loc) 1.33 kB
import { useCallback } from 'react'; import { getUserReactionsCount } from '@livelike/javascript'; import { userReactionStoreActions } from '../store/userReaction'; export type UseLoadUserReactionsArg = { reactionSpaceId: string; }; export function useLoadUserReactions({ reactionSpaceId, }: UseLoadUserReactionsArg) { const loadUserReactions = useCallback( ({ targetIds }: { targetIds: string[] }) => { if (targetIds.length === 0 || !reactionSpaceId) { return; } const loadUserReactionCountData = async () => { const { results: _userReactions } = await getUserReactionsCount({ targetIds, reactionSpaceId, }); const reducedUserReactions = _userReactions.reduce( (accReactions, reaction) => { accReactions[reaction.target_id] = reaction.reactions.reduce( (a, r) => { a[r.reaction_id] = r; return a; }, {} ); return accReactions; }, {} ); userReactionStoreActions.loadUserReactionAction({ reactionSpaceId, targetUserReactions: reducedUserReactions, }); }; loadUserReactionCountData(); }, [reactionSpaceId] ); return { loadUserReactions }; }