define([ //'/customize/application_config.js', //'/customize/messages.js', //'/common/common-interface.js', ], function (/*AppConfig, Messages, UI*/) { var common = {}; //common.infiniteSpinnerDetected = false; //var BAD_STATE_TIMEOUT = typeof(AppConfig.badStateTimeout) === 'number'? // AppConfig.badStateTimeout: 30000; //var connected = false; //var intr; //var infiniteSpinnerHandlers = []; /* TODO make this not blow up when disconnected or lagging... */ common.whenRealtimeSyncs = function (realtime, cb) { if (typeof(realtime.getAuthDoc) !== 'function') { return void console.error('improper use of this function'); } self.setTimeout(function () { if (realtime.getAuthDoc() === realtime.getUserDoc()) { return void cb(); } else { realtime.onSettle(cb); } }, 0); }; /* common.beginDetectingInfiniteSpinner = function (realtime) { if (intr) { return; } intr = window.setInterval(function () { var l; try { l = realtime.getLag(); } catch (e) { throw new Error("ChainPad.getLag() does not exist, please `bower update`"); } if (l.lag < BAD_STATE_TIMEOUT || !connected) { return; } realtime.abort(); // don't launch more than one popup if (common.infiniteSpinnerDetected) { return; } infiniteSpinnerHandlers.forEach(function (ish) { ish(); }); // inform the user their session is in a bad state UI.confirm(Messages.realtime_unrecoverableError, function (yes) { if (!yes) { return; } window.parent.location.reload(); }); common.infiniteSpinnerDetected = true; }, 2000); }; */ //common.onInfiniteSpinner = function (f) { infiniteSpinnerHandlers.push(f); }; /*common.setConnectionState = function (bool) { if (typeof(bool) !== 'boolean') { return; } connected = bool; };*/ return common; });