UNPKG

@livelike/react-native

Version:

LiveLike React Native package

40 lines 1.47 kB
import { useMemo } from 'react'; import { userReactionStore } from '../store'; import { useReactionPacks } from './useReactionPacks'; import { useSelectedFieldStore } from './useSelectedFieldStore'; const initialUserReactionValue = {}; export function useUserReactions(_ref) { let { reactionSpaceId, targetId } = _ref; const targetIdUserReactions = useSelectedFieldStore(userReactionStore, () => { var _userReactionStore$ge; return ((_userReactionStore$ge = userReactionStore.get()) === null || _userReactionStore$ge === void 0 || (_userReactionStore$ge = _userReactionStore$ge[reactionSpaceId]) === null || _userReactionStore$ge === void 0 ? void 0 : _userReactionStore$ge[targetId]) || initialUserReactionValue; }); const { reactionPacks } = useReactionPacks({ reactionSpaceId }); const validUserReactions = useMemo(() => { if (!reactionPacks.length || !Object.keys(targetIdUserReactions).length) { return initialUserReactionValue; } return reactionPacks.reduce((_allReactions, pack) => { pack.emojis.forEach(emoji => { if (targetIdUserReactions[emoji.id]) { _allReactions[emoji.id] = { ...targetIdUserReactions[emoji.id], imageSrc: emoji.file }; } }); return _allReactions; }, {}); }, [targetIdUserReactions, reactionPacks]); return { userReactions: validUserReactions }; } //# sourceMappingURL=useUserReactions.js.map