offline-sync-handler-test
Advanced tools
Comparing version 0.1.3 to 0.1.4
@@ -6,3 +6,3 @@ import { FC, ReactElement, ReactNode } from 'react'; | ||
render?: (status: { | ||
isOffline: boolean; | ||
isOffline?: boolean; | ||
isOnline: boolean; | ||
@@ -14,3 +14,4 @@ }) => ReactNode; | ||
}) => void; | ||
toastConfig?: any; | ||
}>; | ||
export declare const useOfflineSyncContext: () => any; |
@@ -636,6 +636,7 @@ 'use strict'; | ||
var OfflineSyncProvider = function OfflineSyncProvider(_ref) { | ||
var _window$navigator$onL, _window$navigator$onL2; | ||
var _window$navigator$onL; | ||
var children = _ref.children, | ||
render = _ref.render, | ||
onStatusChange = _ref.onStatusChange; | ||
onStatusChange = _ref.onStatusChange, | ||
toastConfig = _ref.toastConfig; | ||
// Manage state for data, offline status, and online status | ||
@@ -645,8 +646,6 @@ var _useState = React.useState({}), | ||
setData = _useState[1]; | ||
var _useState2 = React.useState((_window$navigator$onL = window.navigator.onLine) != null ? _window$navigator$onL : false), | ||
isOffline = _useState2[0], | ||
setIsOffline = _useState2[1]; | ||
var _useState3 = React.useState((_window$navigator$onL2 = window.navigator.onLine) != null ? _window$navigator$onL2 : true), | ||
isOnline = _useState3[0], | ||
setIsOnline = _useState3[1]; | ||
//const [isOffline, setIsOffline] = useState<boolean>(window.navigator.onLine ? false); | ||
var _useState2 = React.useState((_window$navigator$onL = window.navigator.onLine) != null ? _window$navigator$onL : true), | ||
isOnline = _useState2[0], | ||
setIsOnline = _useState2[1]; | ||
// Add event listeners for online/offline events | ||
@@ -684,3 +683,2 @@ React.useEffect(function () { | ||
console.log({ | ||
isOffline: isOffline, | ||
isOnline: isOnline | ||
@@ -701,3 +699,3 @@ }); | ||
}); | ||
setIsOffline(isOffline); | ||
// setIsOffline(isOffline); | ||
setIsOnline(isOnline); | ||
@@ -746,3 +744,3 @@ }; | ||
// }, []); | ||
return React__default.createElement(DataSyncContext.Provider, { | ||
return React__default.createElement(React__default.Fragment, null, React__default.createElement(DataSyncContext.Provider, { | ||
value: { | ||
@@ -754,5 +752,4 @@ data: data, | ||
}, render == null ? void 0 : render({ | ||
isOffline: isOffline, | ||
isOnline: isOnline | ||
}), React__default.createElement(reactToastify.ToastContainer, { | ||
}), children), React__default.createElement(reactToastify.ToastContainer, Object.assign({ | ||
position: "top-right", | ||
@@ -768,3 +765,3 @@ autoClose: 5000, | ||
theme: "dark" | ||
}), children); | ||
}, toastConfig))); | ||
}; | ||
@@ -771,0 +768,0 @@ // Custom hook to access offline sync context |
@@ -1,2 +0,2 @@ | ||
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=t(e),n=require("react-toastify");require("react-toastify/dist/ReactToastify.css");var o=t(require("axios")),i=t(require("localforage"));require("underscore");var a=e.createContext(null);function u(){u=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function f(t,e,r,o){var i=Object.create((e&&e.prototype instanceof h?e:h).prototype),a=new j(o||[]);return n(i,"_invoke",{value:L(t,r,a)}),i}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var p={};function h(){}function v(){}function d(){}var y={};s(y,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(S([])));m&&m!==e&&r.call(m,i)&&(y=m);var w=d.prototype=h.prototype=Object.create(y);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var o;n(this,"_invoke",{value:function(n,i){function a(){return new e((function(o,a){!function n(o,i,a,u){var c=l(t[o],t,i);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function L(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=E(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=l(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function E(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=l(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function S(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return v.prototype=d,n(w,"constructor",{value:d,configurable:!0}),n(d,"constructor",{value:v,configurable:!0}),v.displayName=s(d,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,s(t,c,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},x(b.prototype),s(b.prototype,a,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new b(f(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},x(w),s(w,c,"Generator"),s(w,i,(function(){return this})),s(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=S,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),p},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function c(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function s(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){c(i,n,o,a,u,"next",t)}function u(t){c(i,n,o,a,u,"throw",t)}a(void 0)}))}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function l(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return f(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var p=function(){var t=s(u().mark((function t(e,r){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,i.setItem(e,r);case 2:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),h=function(){var t=s(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.toast.warn("App is now in offline mode"),t.next=3,p("appOffline",!0);case 3:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),v=o.create(),d=function(){var t=s(u().mark((function t(e){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,i.getItem("apiRequests");case 3:if(t.t0=t.sent,t.t0){t.next=6;break}t.t0=[];case 6:return(r=t.t0).push(e),t.next=10,i.setItem("apiRequests",r);case 10:t.next=15;break;case 12:t.prev=12,t.t1=t.catch(0),console.error("Error saving API request for offline:",t.t1);case 15:case"end":return t.stop()}}),t,null,[[0,12]])})));return function(e){return t.apply(this,arguments)}}(),y=function(){var t=s(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,i.getItem("apiRequests");case 3:return t.abrupt("return",t.sent);case 6:return t.prev=6,t.t0=t.catch(0),console.error("Error getting stored API requests:",t.t0),t.abrupt("return",[]);case 10:case"end":return t.stop()}}),t,null,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),g=function(){var t=s(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,v.request(e);case 3:return t.abrupt("return",t.sent.data);case 7:if(t.prev=7,t.t0=t.catch(0),!(e.retryCount<3)){t.next=16;break}return t.next=12,new Promise((function(t){return setTimeout(t,1e3)}));case 12:return e.retryCount++,t.abrupt("return",g(e));case 16:return t.next=18,d(e);case 18:throw new Error("Exceeded retry limit, request saved for offline sync.");case 19:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(e){return t.apply(this,arguments)}}(),m=function(){var t=s(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e.retryCount=0,t.next=4,g(e);case 4:return t.abrupt("return",t.sent);case 7:throw t.prev=7,t.t0=t.catch(0),t.t0;case 10:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(e){return t.apply(this,arguments)}}(),w=function(){var t=s(u().mark((function t(){var e,r,n,o;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,y();case 2:if((e=t.sent)&&0!==e.length){t.next=5;break}return t.abrupt("return");case 5:r=l(e);case 6:if((n=r()).done){t.next=21;break}if(!(o=n.value)){t.next=19;break}return e.splice(e.indexOf(o),1),t.next=12,i.setItem("apiRequests",e);case 12:return t.prev=12,t.next=15,g(o);case 15:t.next=19;break;case 17:t.prev=17,t.t0=t.catch(12);case 19:t.next=6;break;case 21:case"end":return t.stop()}}),t,null,[[12,17]])})));return function(){return t.apply(this,arguments)}}();exports.OfflineSyncProvider=function(t){var o,i,u=t.children,c=t.render,s=t.onStatusChange,f=e.useState({}),l=f[0],p=f[1],v=e.useState(null!=(o=window.navigator.onLine)&&o),d=v[0],y=v[1],g=e.useState(null==(i=window.navigator.onLine)||i),x=g[0],b=g[1];e.useEffect((function(){if("undefined"!=typeof window)return window.addEventListener("online",L),window.addEventListener("offline",E),function(){window.removeEventListener("offline",E),window.removeEventListener("online",L)}}),[]);var L=e.useCallback((function(){O(!1),w()}),[]),E=function(){h(),O(!0)};console.log({isOffline:d,isOnline:x});var O=function(t){void 0===t&&(t=!0);var e=!t;null==s||s({isOffline:t,isOnline:e}),y(t),b(e)};return r.createElement(a.Provider,{value:{data:l,setData:p,sendRequest:m}},null==c?void 0:c({isOffline:d,isOnline:x}),r.createElement(n.ToastContainer,{position:"top-right",autoClose:5e3,hideProgressBar:!1,newestOnTop:!0,closeOnClick:!0,rtl:!1,pauseOnFocusLoss:!0,draggable:!0,pauseOnHover:!0,theme:"dark"}),u)},exports.useOfflineSyncContext=function(){return e.useContext(a)}; | ||
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=t(e),n=require("react-toastify");require("react-toastify/dist/ReactToastify.css");var o=t(require("axios")),i=t(require("localforage"));require("underscore");var a=e.createContext(null);function u(){u=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function f(t,e,r,o){var i=Object.create((e&&e.prototype instanceof h?e:h).prototype),a=new j(o||[]);return n(i,"_invoke",{value:E(t,r,a)}),i}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var p={};function h(){}function v(){}function d(){}var y={};s(y,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(S([])));m&&m!==e&&r.call(m,i)&&(y=m);var w=d.prototype=h.prototype=Object.create(y);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var o;n(this,"_invoke",{value:function(n,i){function a(){return new e((function(o,a){!function n(o,i,a,u){var c=l(t[o],t,i);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function E(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=L(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=l(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=l(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function S(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return v.prototype=d,n(w,"constructor",{value:d,configurable:!0}),n(d,"constructor",{value:v,configurable:!0}),v.displayName=s(d,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,s(t,c,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},x(b.prototype),s(b.prototype,a,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new b(f(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},x(w),s(w,c,"Generator"),s(w,i,(function(){return this})),s(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=S,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),p},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function c(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function s(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){c(i,n,o,a,u,"next",t)}function u(t){c(i,n,o,a,u,"throw",t)}a(void 0)}))}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function l(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return f(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var p=function(){var t=s(u().mark((function t(e,r){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,i.setItem(e,r);case 2:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),h=function(){var t=s(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.toast.warn("App is now in offline mode"),t.next=3,p("appOffline",!0);case 3:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),v=o.create(),d=function(){var t=s(u().mark((function t(e){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,i.getItem("apiRequests");case 3:if(t.t0=t.sent,t.t0){t.next=6;break}t.t0=[];case 6:return(r=t.t0).push(e),t.next=10,i.setItem("apiRequests",r);case 10:t.next=15;break;case 12:t.prev=12,t.t1=t.catch(0),console.error("Error saving API request for offline:",t.t1);case 15:case"end":return t.stop()}}),t,null,[[0,12]])})));return function(e){return t.apply(this,arguments)}}(),y=function(){var t=s(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,i.getItem("apiRequests");case 3:return t.abrupt("return",t.sent);case 6:return t.prev=6,t.t0=t.catch(0),console.error("Error getting stored API requests:",t.t0),t.abrupt("return",[]);case 10:case"end":return t.stop()}}),t,null,[[0,6]])})));return function(){return t.apply(this,arguments)}}(),g=function(){var t=s(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,v.request(e);case 3:return t.abrupt("return",t.sent.data);case 7:if(t.prev=7,t.t0=t.catch(0),!(e.retryCount<3)){t.next=16;break}return t.next=12,new Promise((function(t){return setTimeout(t,1e3)}));case 12:return e.retryCount++,t.abrupt("return",g(e));case 16:return t.next=18,d(e);case 18:throw new Error("Exceeded retry limit, request saved for offline sync.");case 19:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(e){return t.apply(this,arguments)}}(),m=function(){var t=s(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,e.retryCount=0,t.next=4,g(e);case 4:return t.abrupt("return",t.sent);case 7:throw t.prev=7,t.t0=t.catch(0),t.t0;case 10:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(e){return t.apply(this,arguments)}}(),w=function(){var t=s(u().mark((function t(){var e,r,n,o;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,y();case 2:if((e=t.sent)&&0!==e.length){t.next=5;break}return t.abrupt("return");case 5:r=l(e);case 6:if((n=r()).done){t.next=21;break}if(!(o=n.value)){t.next=19;break}return e.splice(e.indexOf(o),1),t.next=12,i.setItem("apiRequests",e);case 12:return t.prev=12,t.next=15,g(o);case 15:t.next=19;break;case 17:t.prev=17,t.t0=t.catch(12);case 19:t.next=6;break;case 21:case"end":return t.stop()}}),t,null,[[12,17]])})));return function(){return t.apply(this,arguments)}}();exports.OfflineSyncProvider=function(t){var o,i=t.children,u=t.render,c=t.onStatusChange,s=t.toastConfig,f=e.useState({}),l=f[0],p=f[1],v=e.useState(null==(o=window.navigator.onLine)||o),d=v[0],y=v[1];e.useEffect((function(){if("undefined"!=typeof window)return window.addEventListener("online",g),window.addEventListener("offline",x),function(){window.removeEventListener("offline",x),window.removeEventListener("online",g)}}),[]);var g=e.useCallback((function(){b(!1),w()}),[]),x=function(){h(),b(!0)};console.log({isOnline:d});var b=function(t){void 0===t&&(t=!0);var e=!t;null==c||c({isOffline:t,isOnline:e}),y(e)};return r.createElement(r.Fragment,null,r.createElement(a.Provider,{value:{data:l,setData:p,sendRequest:m}},null==u?void 0:u({isOnline:d}),i),r.createElement(n.ToastContainer,Object.assign({position:"top-right",autoClose:5e3,hideProgressBar:!1,newestOnTop:!0,closeOnClick:!0,rtl:!1,pauseOnFocusLoss:!0,draggable:!0,pauseOnHover:!0,theme:"dark"},s)))},exports.useOfflineSyncContext=function(){return e.useContext(a)}; | ||
//# sourceMappingURL=offline-sync-handler-test.cjs.production.min.js.map |
@@ -629,6 +629,7 @@ import React, { createContext, useState, useEffect, useCallback, useContext } from 'react'; | ||
var OfflineSyncProvider = function OfflineSyncProvider(_ref) { | ||
var _window$navigator$onL, _window$navigator$onL2; | ||
var _window$navigator$onL; | ||
var children = _ref.children, | ||
render = _ref.render, | ||
onStatusChange = _ref.onStatusChange; | ||
onStatusChange = _ref.onStatusChange, | ||
toastConfig = _ref.toastConfig; | ||
// Manage state for data, offline status, and online status | ||
@@ -638,8 +639,6 @@ var _useState = useState({}), | ||
setData = _useState[1]; | ||
var _useState2 = useState((_window$navigator$onL = window.navigator.onLine) != null ? _window$navigator$onL : false), | ||
isOffline = _useState2[0], | ||
setIsOffline = _useState2[1]; | ||
var _useState3 = useState((_window$navigator$onL2 = window.navigator.onLine) != null ? _window$navigator$onL2 : true), | ||
isOnline = _useState3[0], | ||
setIsOnline = _useState3[1]; | ||
//const [isOffline, setIsOffline] = useState<boolean>(window.navigator.onLine ? false); | ||
var _useState2 = useState((_window$navigator$onL = window.navigator.onLine) != null ? _window$navigator$onL : true), | ||
isOnline = _useState2[0], | ||
setIsOnline = _useState2[1]; | ||
// Add event listeners for online/offline events | ||
@@ -677,3 +676,2 @@ useEffect(function () { | ||
console.log({ | ||
isOffline: isOffline, | ||
isOnline: isOnline | ||
@@ -694,3 +692,3 @@ }); | ||
}); | ||
setIsOffline(isOffline); | ||
// setIsOffline(isOffline); | ||
setIsOnline(isOnline); | ||
@@ -739,3 +737,3 @@ }; | ||
// }, []); | ||
return React.createElement(DataSyncContext.Provider, { | ||
return React.createElement(React.Fragment, null, React.createElement(DataSyncContext.Provider, { | ||
value: { | ||
@@ -747,5 +745,4 @@ data: data, | ||
}, render == null ? void 0 : render({ | ||
isOffline: isOffline, | ||
isOnline: isOnline | ||
}), React.createElement(ToastContainer, { | ||
}), children), React.createElement(ToastContainer, Object.assign({ | ||
position: "top-right", | ||
@@ -761,3 +758,3 @@ autoClose: 5000, | ||
theme: "dark" | ||
}), children); | ||
}, toastConfig))); | ||
}; | ||
@@ -764,0 +761,0 @@ // Custom hook to access offline sync context |
{ | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1950
144530