UNPKG

@livelike/react-native

Version:

LiveLike React Native package

47 lines (44 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useIsWidgetDisabled = void 0; var _react = require("react"); var _javascript = require("@livelike/javascript"); var _store = require("../store"); var _types = require("../types"); var _useSelectedFieldStore = require("./useSelectedFieldStore"); var _useWidgetUIPhase = require("./useWidgetUIPhase"); const useIsWidgetDisabled = _ref => { let { widgetId } = _ref; const widgetUIPhase = (0, _useWidgetUIPhase.useWidgetUIPhase)({ widgetId }); const widgetKind = (0, _useSelectedFieldStore.useSelectedFieldStore)(_store.widgetStore, () => { var _widgetStore$get$widg; return (_widgetStore$get$widg = _store.widgetStore.get()[widgetId]) === null || _widgetStore$get$widg === void 0 || (_widgetStore$get$widg = _widgetStore$get$widg.widgetPayload) === null || _widgetStore$get$widg === void 0 ? void 0 : _widgetStore$get$widg.kind; }); return (0, _react.useMemo)(() => { // disable widget if widget interaction is exprired or is in submitting phase const isSubmitting = widgetUIPhase === _types.WidgetUIPhase.SUBMITTING; const isExpired = widgetUIPhase === _types.WidgetUIPhase.EXPIRED; const isFollowUpPublished = widgetUIPhase === _types.WidgetUIPhase.FOLLOW_UP_PUBLISHED; if (isSubmitting || isExpired || isFollowUpPublished) { return true; } // disable widget if widget interaction is already submitted for one time interactable widgets const isSubmitted = widgetUIPhase === _types.WidgetUIPhase.SUBMITTED; if (isSubmitted && _javascript.SINGLE_INTERACTION_WIDGET_KINDS.includes(widgetKind)) { return true; } // disable widget if widget interactivity is timed out if (widgetUIPhase === _types.WidgetUIPhase.INTERACTIVE_TIMED_OUT) { return true; } return false; }, [widgetUIPhase, widgetKind]); }; exports.useIsWidgetDisabled = useIsWidgetDisabled; //# sourceMappingURL=useIsWidgetDisabled.js.map