@grupalia/rn-ui-kit 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
12
12
  const UIKitContext = /*#__PURE__*/(0, _react.createContext)({
13
13
  config: {
14
14
  internetConnection: undefined,
15
+ appVersionCheck: undefined,
15
16
  timezone: 'America/Mexico_City'
16
17
  }
17
18
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UIKitContext","createContext","config","internetConnection","undefined","timezone","UIKitProvider","children","contextValue","React","useMemo","jsx","Provider","value","useUIKitConfig","context","useContext","Error","useTimezone"],"sourceRoot":"../../src","sources":["UIKitProvider.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAoE,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAapE,MAAMkB,YAAY,gBAAG,IAAAC,oBAAa,EAAmB;EACnDC,MAAM,EAAE;IACNC,kBAAkB,EAAEC,SAAS;IAC7BC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAOK,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEL;AAA2B,CAAC,EAAE;EACtE,MAAMM,YAAY,GAAGC,cAAK,CAACC,OAAO,CAAC,OAAO;IAAER;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEhE,oBACE,IAAAtB,WAAA,CAAA+B,GAAA,EAACX,YAAY,CAACY,QAAQ;IAACC,KAAK,EAAEL,YAAa;IAAAD,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B;AAEO,SAASO,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAAChB,YAAY,CAAC;EACxC,IAAI,CAACe,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO,CAACb,MAAM;AACvB;AAEO,SAASgB,WAAWA,CAAA,EAAW;EACpC,MAAMhB,MAAM,GAAGY,cAAc,CAAC,CAAC;EAE/B,OAAOZ,MAAM,CAACG,QAAQ;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UIKitContext","createContext","config","internetConnection","undefined","appVersionCheck","timezone","UIKitProvider","children","contextValue","React","useMemo","jsx","Provider","value","useUIKitConfig","context","useContext","Error","useTimezone"],"sourceRoot":"../../src","sources":["UIKitProvider.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAoE,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAepE,MAAMkB,YAAY,gBAAG,IAAAC,oBAAa,EAAmB;EACnDC,MAAM,EAAE;IACNC,kBAAkB,EAAEC,SAAS;IAC7BC,eAAe,EAAED,SAAS;IAC1BE,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAOK,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEN;AAA2B,CAAC,EAAE;EACtE,MAAMO,YAAY,GAAGC,cAAK,CAACC,OAAO,CAAC,OAAO;IAAET;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEhE,oBACE,IAAAtB,WAAA,CAAAgC,GAAA,EAACZ,YAAY,CAACa,QAAQ;IAACC,KAAK,EAAEL,YAAa;IAAAD,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B;AAEO,SAASO,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACjB,YAAY,CAAC;EACxC,IAAI,CAACgB,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO,CAACd,MAAM;AACvB;AAEO,SAASiB,WAAWA,CAAA,EAAW;EACpC,MAAMjB,MAAM,GAAGa,cAAc,CAAC,CAAC;EAE/B,OAAOb,MAAM,CAACI,QAAQ;AACxB","ignoreList":[]}
@@ -47,4 +47,15 @@ Object.keys(_useTimezonedDate).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
+ var _useAppUpdateCheck = require("./useAppUpdateCheck");
51
+ Object.keys(_useAppUpdateCheck).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _useAppUpdateCheck[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _useAppUpdateCheck[key];
58
+ }
59
+ });
60
+ });
50
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_useBreakpoints","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useIsAboveBreakpoint","_useInternetConnectionStatus","_useTimezonedDate"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,4BAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,4BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,4BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,4BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,iBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,iBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,iBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,iBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_useBreakpoints","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useIsAboveBreakpoint","_useInternetConnectionStatus","_useTimezonedDate","_useAppUpdateCheck"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,4BAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,4BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,4BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,4BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,iBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,iBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,iBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,iBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,kBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,kBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,kBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,kBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.useAppUpdateCheck = useAppUpdateCheck;
8
+ var _react = require("react");
9
+ var _UIKitProvider = require("../UIKitProvider");
10
+ function shouldForceUpdate(current, latest) {
11
+ const toSemver = v => {
12
+ const [majorStr = '0', minorStr = '0', patchStr = '0'] = v.split('.');
13
+ const major = Number.parseInt(majorStr, 10);
14
+ const minor = Number.parseInt(minorStr, 10);
15
+ const patch = Number.parseInt(patchStr, 10);
16
+ return {
17
+ major,
18
+ minor,
19
+ patch
20
+ };
21
+ };
22
+ const currentSemver = toSemver(current);
23
+ const latestSemver = toSemver(latest);
24
+ if (latestSemver.major > currentSemver.major) return true;
25
+ if (latestSemver.major < currentSemver.major) return false;
26
+ if (latestSemver.minor > currentSemver.minor) return true;
27
+ if (latestSemver.minor < currentSemver.minor) return false;
28
+ return latestSemver.patch > currentSemver.patch;
29
+ }
30
+ function useAppUpdateCheck(config) {
31
+ const uiKitConfig = (0, _UIKitProvider.useUIKitConfig)();
32
+ const selectedConfig = config ?? uiKitConfig.appVersionCheck;
33
+ if (!selectedConfig) {
34
+ throw new Error(`useAppUpdateCheck requires either a 'config' prop or 'appVersion' in UIKitProvider config.
35
+ Please provide one of them to use this hook. Example:
36
+
37
+ const config = {
38
+ getCurrentVersion: () => '1.2.3',
39
+ getLatestVersion: async (platform) => {
40
+ const response = await fetch('https://api.example.com/app_versions/check', {
41
+ headers: { 'X-App': 'your.app.id', 'X-OS': platform },
42
+ });
43
+ const json = await response.json();
44
+ return { version: json?.data?.version ?? null };
45
+ },
46
+ checkInterval: 180000, // 3 minutes
47
+ };
48
+
49
+ const status = useAppUpdateCheck(config);
50
+ `);
51
+ }
52
+ const {
53
+ getCurrentVersion,
54
+ getLatestVersion,
55
+ checkInterval
56
+ } = selectedConfig;
57
+ const [needsUpdate, setNeedsUpdate] = (0, _react.useState)(false);
58
+ const [currentVersion, setCurrentVersion] = (0, _react.useState)(null);
59
+ const [latestVersion, setLatestVersion] = (0, _react.useState)(null);
60
+ const intervalRef = (0, _react.useRef)(null);
61
+ const performCheck = (0, _react.useCallback)(async () => {
62
+ try {
63
+ const [current, latestInfo] = await Promise.all([Promise.resolve(getCurrentVersion()), getLatestVersion()]);
64
+ const latest = latestInfo?.version;
65
+ setCurrentVersion(current);
66
+ setLatestVersion(latest);
67
+ if (current && latest) {
68
+ setNeedsUpdate(shouldForceUpdate(current, latest));
69
+ } else {
70
+ setNeedsUpdate(false);
71
+ }
72
+ } catch {
73
+ setNeedsUpdate(false);
74
+ }
75
+ }, [getCurrentVersion, getLatestVersion]);
76
+ (0, _react.useEffect)(() => {
77
+ if (intervalRef.current) {
78
+ clearInterval(intervalRef.current);
79
+ intervalRef.current = null;
80
+ }
81
+ performCheck();
82
+ if (checkInterval > 0) {
83
+ intervalRef.current = setInterval(() => {
84
+ performCheck();
85
+ }, checkInterval);
86
+ }
87
+ return () => {
88
+ if (intervalRef.current) {
89
+ clearInterval(intervalRef.current);
90
+ intervalRef.current = null;
91
+ }
92
+ };
93
+ }, [performCheck, checkInterval]);
94
+ return (0, _react.useMemo)(() => ({
95
+ needsUpdate,
96
+ currentVersion,
97
+ latestVersion
98
+ }), [needsUpdate, currentVersion, latestVersion]);
99
+ }
100
+ var _default = exports.default = useAppUpdateCheck;
101
+ //# sourceMappingURL=useAppUpdateCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_UIKitProvider","shouldForceUpdate","current","latest","toSemver","v","majorStr","minorStr","patchStr","split","major","Number","parseInt","minor","patch","currentSemver","latestSemver","useAppUpdateCheck","config","uiKitConfig","useUIKitConfig","selectedConfig","appVersionCheck","Error","getCurrentVersion","getLatestVersion","checkInterval","needsUpdate","setNeedsUpdate","useState","currentVersion","setCurrentVersion","latestVersion","setLatestVersion","intervalRef","useRef","performCheck","useCallback","latestInfo","Promise","all","resolve","version","useEffect","clearInterval","setInterval","useMemo","_default","exports","default"],"sourceRoot":"../../../src","sources":["hooks/useAppUpdateCheck.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  const UIKitContext = /*#__PURE__*/createContext({
6
6
  config: {
7
7
  internetConnection: undefined,
8
+ appVersionCheck: undefined,
8
9
  timezone: 'America/Mexico_City'
9
10
  }
10
11
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","jsx","_jsx","UIKitContext","config","internetConnection","undefined","timezone","UIKitProvider","children","contextValue","useMemo","Provider","value","useUIKitConfig","context","Error","useTimezone"],"sourceRoot":"../../src","sources":["UIKitProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,QAAmB,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAapE,MAAMC,YAAY,gBAAGJ,aAAa,CAAmB;EACnDK,MAAM,EAAE;IACNC,kBAAkB,EAAEC,SAAS;IAC7BC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAOF,OAAO,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEL;AAA2B,CAAC,EAAE;EACtE,MAAMM,YAAY,GAAGZ,KAAK,CAACa,OAAO,CAAC,OAAO;IAAEP;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEhE,oBACEF,IAAA,CAACC,YAAY,CAACS,QAAQ;IAACC,KAAK,EAAEH,YAAa;IAAAD,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B;AAEA,OAAO,SAASK,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,OAAO,GAAGf,UAAU,CAACG,YAAY,CAAC;EACxC,IAAI,CAACY,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOD,OAAO,CAACX,MAAM;AACvB;AAEA,OAAO,SAASa,WAAWA,CAAA,EAAW;EACpC,MAAMb,MAAM,GAAGU,cAAc,CAAC,CAAC;EAE/B,OAAOV,MAAM,CAACG,QAAQ;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","jsx","_jsx","UIKitContext","config","internetConnection","undefined","appVersionCheck","timezone","UIKitProvider","children","contextValue","useMemo","Provider","value","useUIKitConfig","context","Error","useTimezone"],"sourceRoot":"../../src","sources":["UIKitProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,QAAmB,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAepE,MAAMC,YAAY,gBAAGJ,aAAa,CAAmB;EACnDK,MAAM,EAAE;IACNC,kBAAkB,EAAEC,SAAS;IAC7BC,eAAe,EAAED,SAAS;IAC1BE,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAOF,OAAO,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEN;AAA2B,CAAC,EAAE;EACtE,MAAMO,YAAY,GAAGb,KAAK,CAACc,OAAO,CAAC,OAAO;IAAER;EAAO,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEhE,oBACEF,IAAA,CAACC,YAAY,CAACU,QAAQ;IAACC,KAAK,EAAEH,YAAa;IAAAD,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B;AAEA,OAAO,SAASK,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,OAAO,GAAGhB,UAAU,CAACG,YAAY,CAAC;EACxC,IAAI,CAACa,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOD,OAAO,CAACZ,MAAM;AACvB;AAEA,OAAO,SAASc,WAAWA,CAAA,EAAW;EACpC,MAAMd,MAAM,GAAGW,cAAc,CAAC,CAAC;EAE/B,OAAOX,MAAM,CAACI,QAAQ;AACxB","ignoreList":[]}
@@ -4,4 +4,5 @@ export * from "./useBreakpoints.js";
4
4
  export * from "./useIsAboveBreakpoint.js";
5
5
  export * from "./useInternetConnectionStatus.js";
6
6
  export * from "./useTimezonedDate.js";
7
+ export * from "./useAppUpdateCheck.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,cAAc,qBAAkB;AAChC,cAAc,2BAAwB;AACtC,cAAc,kCAA+B;AAC7C,cAAc,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,cAAc,qBAAkB;AAChC,cAAc,2BAAwB;AACtC,cAAc,kCAA+B;AAC7C,cAAc,uBAAoB;AAClC,cAAc,wBAAqB","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
+ import { useUIKitConfig } from "../UIKitProvider.js";
5
+ function shouldForceUpdate(current, latest) {
6
+ const toSemver = v => {
7
+ const [majorStr = '0', minorStr = '0', patchStr = '0'] = v.split('.');
8
+ const major = Number.parseInt(majorStr, 10);
9
+ const minor = Number.parseInt(minorStr, 10);
10
+ const patch = Number.parseInt(patchStr, 10);
11
+ return {
12
+ major,
13
+ minor,
14
+ patch
15
+ };
16
+ };
17
+ const currentSemver = toSemver(current);
18
+ const latestSemver = toSemver(latest);
19
+ if (latestSemver.major > currentSemver.major) return true;
20
+ if (latestSemver.major < currentSemver.major) return false;
21
+ if (latestSemver.minor > currentSemver.minor) return true;
22
+ if (latestSemver.minor < currentSemver.minor) return false;
23
+ return latestSemver.patch > currentSemver.patch;
24
+ }
25
+ export function useAppUpdateCheck(config) {
26
+ const uiKitConfig = useUIKitConfig();
27
+ const selectedConfig = config ?? uiKitConfig.appVersionCheck;
28
+ if (!selectedConfig) {
29
+ throw new Error(`useAppUpdateCheck requires either a 'config' prop or 'appVersion' in UIKitProvider config.
30
+ Please provide one of them to use this hook. Example:
31
+
32
+ const config = {
33
+ getCurrentVersion: () => '1.2.3',
34
+ getLatestVersion: async (platform) => {
35
+ const response = await fetch('https://api.example.com/app_versions/check', {
36
+ headers: { 'X-App': 'your.app.id', 'X-OS': platform },
37
+ });
38
+ const json = await response.json();
39
+ return { version: json?.data?.version ?? null };
40
+ },
41
+ checkInterval: 180000, // 3 minutes
42
+ };
43
+
44
+ const status = useAppUpdateCheck(config);
45
+ `);
46
+ }
47
+ const {
48
+ getCurrentVersion,
49
+ getLatestVersion,
50
+ checkInterval
51
+ } = selectedConfig;
52
+ const [needsUpdate, setNeedsUpdate] = useState(false);
53
+ const [currentVersion, setCurrentVersion] = useState(null);
54
+ const [latestVersion, setLatestVersion] = useState(null);
55
+ const intervalRef = useRef(null);
56
+ const performCheck = useCallback(async () => {
57
+ try {
58
+ const [current, latestInfo] = await Promise.all([Promise.resolve(getCurrentVersion()), getLatestVersion()]);
59
+ const latest = latestInfo?.version;
60
+ setCurrentVersion(current);
61
+ setLatestVersion(latest);
62
+ if (current && latest) {
63
+ setNeedsUpdate(shouldForceUpdate(current, latest));
64
+ } else {
65
+ setNeedsUpdate(false);
66
+ }
67
+ } catch {
68
+ setNeedsUpdate(false);
69
+ }
70
+ }, [getCurrentVersion, getLatestVersion]);
71
+ useEffect(() => {
72
+ if (intervalRef.current) {
73
+ clearInterval(intervalRef.current);
74
+ intervalRef.current = null;
75
+ }
76
+ performCheck();
77
+ if (checkInterval > 0) {
78
+ intervalRef.current = setInterval(() => {
79
+ performCheck();
80
+ }, checkInterval);
81
+ }
82
+ return () => {
83
+ if (intervalRef.current) {
84
+ clearInterval(intervalRef.current);
85
+ intervalRef.current = null;
86
+ }
87
+ };
88
+ }, [performCheck, checkInterval]);
89
+ return useMemo(() => ({
90
+ needsUpdate,
91
+ currentVersion,
92
+ latestVersion
93
+ }), [needsUpdate, currentVersion, latestVersion]);
94
+ }
95
+ export default useAppUpdateCheck;
96
+ //# sourceMappingURL=useAppUpdateCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useUIKitConfig","shouldForceUpdate","current","latest","toSemver","v","majorStr","minorStr","patchStr","split","major","Number","parseInt","minor","patch","currentSemver","latestSemver","useAppUpdateCheck","config","uiKitConfig","selectedConfig","appVersionCheck","Error","getCurrentVersion","getLatestVersion","checkInterval","needsUpdate","setNeedsUpdate","currentVersion","setCurrentVersion","latestVersion","setLatestVersion","intervalRef","performCheck","latestInfo","Promise","all","resolve","version","clearInterval","setInterval"],"sourceRoot":"../../../src","sources":["hooks/useAppUpdateCheck.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import React, { ReactNode } from 'react';
2
+ import { AppVersionCheckConfig } from './hooks/useAppUpdateCheck';
2
3
  import { InternetConnectionStatusConfig } from './hooks/useInternetConnectionStatus';
3
4
  export interface UIKitConfig {
4
5
  internetConnection?: InternetConnectionStatusConfig;
6
+ appVersionCheck?: AppVersionCheckConfig;
5
7
  timezone: string;
6
8
  }
7
9
  interface UIKitProviderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"UIKitProvider.d.ts","sourceRoot":"","sources":["../../../src/UIKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,8BAA8B,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,kBAAkB,qBAQrE;AAED,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC"}
1
+ {"version":3,"file":"UIKitProvider.d.ts","sourceRoot":"","sources":["../../../src/UIKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,8BAA8B,CAAC;IACpD,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,kBAAkB,qBAQrE;AAED,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC"}
@@ -2,4 +2,5 @@ export * from './useBreakpoints';
2
2
  export * from './useIsAboveBreakpoint';
3
3
  export * from './useInternetConnectionStatus';
4
4
  export * from './useTimezonedDate';
5
+ export * from './useAppUpdateCheck';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface AppVersionInfo {
2
+ version: string | null;
3
+ }
4
+ export interface AppVersionCheckConfig {
5
+ checkInterval: number;
6
+ getCurrentVersion: () => string | null | Promise<string | null>;
7
+ getLatestVersion: () => Promise<AppVersionInfo>;
8
+ }
9
+ export interface AppUpdateStatus {
10
+ needsUpdate: boolean;
11
+ currentVersion: string | null;
12
+ latestVersion: string | null;
13
+ }
14
+ export declare function useAppUpdateCheck(config?: AppVersionCheckConfig): AppUpdateStatus;
15
+ export default useAppUpdateCheck;
16
+ //# sourceMappingURL=useAppUpdateCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppUpdateCheck.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAppUpdateCheck.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,gBAAgB,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAqBD,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAqFjF;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import React, { ReactNode } from 'react';
2
+ import { AppVersionCheckConfig } from './hooks/useAppUpdateCheck';
2
3
  import { InternetConnectionStatusConfig } from './hooks/useInternetConnectionStatus';
3
4
  export interface UIKitConfig {
4
5
  internetConnection?: InternetConnectionStatusConfig;
6
+ appVersionCheck?: AppVersionCheckConfig;
5
7
  timezone: string;
6
8
  }
7
9
  interface UIKitProviderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"UIKitProvider.d.ts","sourceRoot":"","sources":["../../../src/UIKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,8BAA8B,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,kBAAkB,qBAQrE;AAED,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC"}
1
+ {"version":3,"file":"UIKitProvider.d.ts","sourceRoot":"","sources":["../../../src/UIKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,WAAW,WAAW;IAC1B,kBAAkB,CAAC,EAAE,8BAA8B,CAAC;IACpD,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,kBAAkB,qBAQrE;AAED,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAIpC"}
@@ -2,4 +2,5 @@ export * from './useBreakpoints';
2
2
  export * from './useIsAboveBreakpoint';
3
3
  export * from './useInternetConnectionStatus';
4
4
  export * from './useTimezonedDate';
5
+ export * from './useAppUpdateCheck';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface AppVersionInfo {
2
+ version: string | null;
3
+ }
4
+ export interface AppVersionCheckConfig {
5
+ checkInterval: number;
6
+ getCurrentVersion: () => string | null | Promise<string | null>;
7
+ getLatestVersion: () => Promise<AppVersionInfo>;
8
+ }
9
+ export interface AppUpdateStatus {
10
+ needsUpdate: boolean;
11
+ currentVersion: string | null;
12
+ latestVersion: string | null;
13
+ }
14
+ export declare function useAppUpdateCheck(config?: AppVersionCheckConfig): AppUpdateStatus;
15
+ export default useAppUpdateCheck;
16
+ //# sourceMappingURL=useAppUpdateCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppUpdateCheck.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAppUpdateCheck.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,gBAAgB,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAqBD,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAqFjF;AAED,eAAe,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grupalia/rn-ui-kit",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Grupalia React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/module/index.d.ts",