UNPKG

@livelike/react-native

Version:

LiveLike React Native package

88 lines (87 loc) 3.64 kB
"use strict"; 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