@livelike/react-native
Version:
LiveLike React Native package
51 lines (50 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useLoadReactionPacksEffect = useLoadReactionPacksEffect;
var _react = require("react");
var _javascript = require("@livelike/javascript");
var _reactionPack = require("../store/reactionPack");
const loadReactionPackFromReactionSpace = reactionSpace => {
return Promise.all(reactionSpace.reaction_pack_ids.map(reactionPackId => (0, _javascript.getReactionPackDetail)({
reactionPackId
}))).then(reactionPacks => {
_reactionPack.reactionPackStoreActions.updateReactionPackAction({
reactionSpaceId: reactionSpace.id,
reactionPacks
});
});
};
function useLoadReactionPacksEffect(_ref) {
let {
reactionSpaceId
} = _ref;
(0, _react.useEffect)(() => {
if (!reactionSpaceId) {
return;
}
(0, _javascript.getReactionSpaceDetail)({
reactionSpaceId
}).then(loadReactionPackFromReactionSpace);
}, [reactionSpaceId]);
const reactionSpaceListener = (0, _react.useCallback)(event => {
return loadReactionPackFromReactionSpace(event.message);
}, [reactionSpaceId]);
(0, _react.useEffect)(() => {
if (!reactionSpaceId) {
return;
}
(0, _javascript.addReactionSpaceEventListener)({
event: _javascript.ReactionSpaceEvent.UPDATE_REACTION_SPACE,
reactionSpaceId
}, reactionSpaceListener);
return () => {
(0, _javascript.removeReactionSpaceEventListener)({
event: _javascript.ReactionSpaceEvent.UPDATE_REACTION_SPACE,
reactionSpaceId
}, reactionSpaceListener);
};
}, [reactionSpaceId]);
}
//# sourceMappingURL=useLoadReactionPacksEffect.js.map