@livelike/react-native
Version:
LiveLike React Native package
47 lines (44 loc) • 1.99 kB
JavaScript
;
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