@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
27 lines (26 loc) • 931 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.idleMiddleware = void 0;
var slices_1 = require("../slices");
var DEFAULT_PAGE_TIMEOUT = 60;
var idleTimeout = null;
var idleMiddleware = function (store) { return function (next) { return function (action) {
var _a;
var result = next(action);
if (idleTimeout) {
clearTimeout(idleTimeout);
}
var state = store.getState();
var hasOrder = state.idle.hasOrder;
if (hasOrder) {
var pageTimeout = (_a = state.kiosk.store) === null || _a === void 0 ? void 0 : _a.page_timeout;
if (!pageTimeout)
return;
var timeout = pageTimeout > 0 ? pageTimeout : DEFAULT_PAGE_TIMEOUT;
idleTimeout = setTimeout(function () {
store.dispatch((0, slices_1.setIsIdle)(true));
}, timeout * 1000);
}
return result;
}; }; };
exports.idleMiddleware = idleMiddleware;