UNPKG

@livelike/react-native

Version:

LiveLike React Native package

81 lines 3.84 kB
import { createStore } from './store'; const initalUserReaction = {}; export const userReactionStore = createStore(initalUserReaction); export const userReactionStoreActions = { addUserReactionAction(_ref) { var _userReactionStore$ge, _userReactions$target; let { reactionSpaceId, userReaction, profileId } = _ref; const userReactions = (_userReactionStore$ge = userReactionStore.get()) === null || _userReactionStore$ge === void 0 ? void 0 : _userReactionStore$ge[reactionSpaceId]; const { target_id, reaction_id, reacted_by_id, id } = userReaction; const isSelfReacted = profileId === reacted_by_id; const reactionDetails = userReactions === null || userReactions === void 0 || (_userReactions$target = userReactions[target_id]) === null || _userReactions$target === void 0 ? void 0 : _userReactions$target[reaction_id]; const hasSelfReactionAlreadyAdded = isSelfReacted && reactionDetails && !!(reactionDetails !== null && reactionDetails !== void 0 && reactionDetails.self_reacted_user_reaction_id); const updatedUserReactions = { ...userReactions, [target_id]: { ...(userReactions === null || userReactions === void 0 ? void 0 : userReactions[target_id]), [reaction_id]: { reaction_id, self_reacted_user_reaction_id: isSelfReacted ? id : reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.self_reacted_user_reaction_id, count: hasSelfReactionAlreadyAdded ? reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count : ((reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count) ?? 0) + 1 } } }; userReactionStore.set({ ...userReactionStore.get(), [reactionSpaceId]: updatedUserReactions }); }, removeUserReactionAction(_ref2) { var _userReactionStore$ge2, _userReactions$target2; let { reactionSpaceId, userReaction, profileId } = _ref2; const userReactions = (_userReactionStore$ge2 = userReactionStore.get()) === null || _userReactionStore$ge2 === void 0 ? void 0 : _userReactionStore$ge2[reactionSpaceId]; const { target_id, reaction_id, reacted_by_id } = userReaction; const isSelfReacted = profileId === reacted_by_id; const reactionDetails = userReactions === null || userReactions === void 0 || (_userReactions$target2 = userReactions[target_id]) === null || _userReactions$target2 === void 0 ? void 0 : _userReactions$target2[reaction_id]; const hasSelfReactionAlreadyRemoved = isSelfReacted && reactionDetails && !(reactionDetails !== null && reactionDetails !== void 0 && reactionDetails.self_reacted_user_reaction_id); const updatedUserReactions = { ...userReactions, [target_id]: { ...(userReactions === null || userReactions === void 0 ? void 0 : userReactions[target_id]), [reaction_id]: { reaction_id, self_reacted_user_reaction_id: isSelfReacted ? null : reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.self_reacted_user_reaction_id, count: hasSelfReactionAlreadyRemoved ? reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count : ((reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count) ?? 0) - 1 } } }; userReactionStore.set({ ...userReactionStore.get(), [reactionSpaceId]: updatedUserReactions }); }, loadUserReactionAction(_ref3) { let { reactionSpaceId, targetUserReactions } = _ref3; userReactionStore.set({ ...userReactionStore.get(), [reactionSpaceId]: targetUserReactions }); } }; //# sourceMappingURL=userReaction.js.map