@livelike/react-native
Version:
LiveLike React Native package
88 lines (87 loc) • 3.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useWidgetInteractionActions = useWidgetInteractionActions;
var _react = require("react");
var _javascript = require("@livelike/javascript");
var _store = require("../store");
var _useWidgetInteractions = require("./useWidgetInteractions");
var _types = require("../types");
var _useWidgetKind = require("./useWidgetKind");
function useWidgetInteractionActions(_ref) {
let {
widgetId
} = _ref;
const widgetInteractions = (0, _useWidgetInteractions.useWidgetInteractions)({
widgetId
});
const widgetKind = (0, _useWidgetKind.useWidgetKind)({
widgetId
});
const updateWidgetInteractionAction = (0, _react.useCallback)(_ref2 => {
let {
interactionItem
} = _ref2;
if (!(widgetInteractions !== null && widgetInteractions !== void 0 && widgetInteractions.length) || widgetInteractions[0].widget_kind === _javascript.WidgetKind.CHEER_METER && (0, _javascript.isWidgetOptionItem)(interactionItem) && !widgetInteractions.find(interaction => interaction.option_id === interactionItem.id) || !(0, _javascript.isWidgetOptionItem)(interactionItem)) {
(0, _javascript.hasDebugLogger)() && console.warn('widget interaction not found, may be call createWidgetInteractionAction');
return;
}
_store.widgetStoreActions.updateWidgetStateAction({
widgetId,
widgetState: {
widgetUIPhase: _types.WidgetUIPhase.SUBMITTING
}
});
return (0, _javascript.updateWidgetInteraction)({
widgetId,
widgetKind,
interactionItem
}).then(widgetInteraction => {
_store.widgetStoreActions.updateWidgetInteractionAction({
widgetId,
widgetInteractions: (0, _javascript.getUpdatedWidgetInteraction)(widgetInteraction, widgetInteractions)
});
return widgetInteraction;
}).catch(() => {
_store.widgetStoreActions.updateWidgetUIPhaseAction({
widgetId,
widgetUIPhase: _types.WidgetUIPhase.SUBMITTED
});
});
}, [widgetId, widgetKind, widgetInteractions]);
const createWidgetInteractionAction = (0, _react.useCallback)(_ref3 => {
let {
interactionItem
} = _ref3;
if (!!(widgetInteractions !== null && widgetInteractions !== void 0 && widgetInteractions.length) && widgetInteractions[0].widget_kind !== _javascript.WidgetKind.CHEER_METER || (0, _javascript.isWidgetOptionItem)(interactionItem) && widgetInteractions !== null && widgetInteractions !== void 0 && widgetInteractions.find(interaction => interaction.option_id === interactionItem.id)) {
(0, _javascript.hasDebugLogger)() && console.warn('widget interaction already found, may be call "updateWidgetInteractionAction"');
return;
}
_store.widgetStoreActions.updateWidgetUIPhaseAction({
widgetId,
widgetUIPhase: _types.WidgetUIPhase.SUBMITTING
});
return (0, _javascript.createWidgetInteraction)({
widgetId,
widgetKind,
interactionItem
}).then(widgetInteraction => {
_store.widgetStoreActions.updateWidgetInteractionAction({
widgetId,
widgetInteractions: (0, _javascript.getUpdatedWidgetInteraction)(widgetInteraction, widgetInteractions)
});
return widgetInteraction;
}).catch(() => {
_store.widgetStoreActions.updateWidgetUIPhaseAction({
widgetId,
widgetUIPhase: _types.WidgetUIPhase.INTERACTIVE
});
});
}, [widgetId, widgetKind, widgetInteractions]);
return {
updateWidgetInteractionAction,
createWidgetInteractionAction
};
}
//# sourceMappingURL=useWidgetInteractionActions.js.map