@kiosinc/commons-rn 0.6.2 → 0.7.1
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.
- package/lib/commonjs/components/TextInput.js +1 -1
- package/lib/commonjs/components/TextInput.js.map +1 -1
- package/lib/commonjs/helpers/businessHours.js +63 -23
- package/lib/commonjs/helpers/businessHours.js.map +1 -1
- package/lib/commonjs/localization/translations/en.json +1 -1
- package/lib/commonjs/screens/index.js +44 -0
- package/lib/commonjs/screens/index.js.map +1 -1
- package/lib/module/components/TextInput.js +1 -1
- package/lib/module/components/TextInput.js.map +1 -1
- package/lib/module/helpers/businessHours.js +63 -23
- package/lib/module/helpers/businessHours.js.map +1 -1
- package/lib/module/localization/translations/en.json +1 -1
- package/lib/module/screens/index.js +2 -0
- package/lib/module/screens/index.js.map +1 -1
- package/lib/typescript/src/helpers/businessHours.d.ts.map +1 -1
- package/lib/typescript/src/screens/index.d.ts +2 -0
- package/lib/typescript/src/screens/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/TextInput.tsx +1 -1
- package/src/helpers/businessHours.ts +70 -35
- package/src/localization/translations/en.json +1 -1
- package/src/screens/index.ts +10 -0
|
@@ -38,7 +38,7 @@ const TextInput = ({
|
|
|
38
38
|
width: "100%",
|
|
39
39
|
secureTextEntry: shouldShowPassword && secureTextEntry
|
|
40
40
|
}, rest)), (secureTextEntry || rightIcon) && /*#__PURE__*/_react.default.createElement(_View.View, {
|
|
41
|
-
pt: "
|
|
41
|
+
pt: "10",
|
|
42
42
|
justifyContent: "center",
|
|
43
43
|
alignSelf: "flex-end",
|
|
44
44
|
position: "absolute",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNativePaper","_View","_IconButton","_Text","_restyle","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","restyleFunctions","composeRestyleFunctions","spacing","spacingShorthand","layout","position","border","backgroundColor","backgroundColorShorthand","TextInputStyled","rest","props","useRestyle","createElement","TextInput","exports","errorMessage","secureTextEntry","rightIcon","status","setStatus","React","useState","onButtonToggle","shouldShowPassword","theme","useTheme","View","justifyContent","width","pt","alignSelf","ToggleButton","icon","size","onPress","Fragment","flexDirection","alignItems","pb","IconButton","margin","bg","iconColor","colors","error","Text","variant","color"],"sourceRoot":"../../../src","sources":["components/TextInput.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAiB0B,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAW1B,MAAMQ,gBAAgB,GAAG,IAAAC,gCAAuB,EAA0B,CACxEC,gBAAO,EACPC,yBAAgB,EAChBC,eAAM,EACNC,iBAAQ,EACRC,eAAM,EACNC,wBAAe,EACfC,iCAAwB,CACzB,CAAC;AAQK,MAAMC,eAAe,GAAGA,CAAC;EAAE,GAAGC;AAAY,CAAC,KAAK;EACrD,MAAMC,KAAK,GAAG,IAAAC,mBAAU,EAACZ,gBAAgB,EAASU,IAAI,CAAC;EAEvD,oBAAOnC,MAAA,CAAAU,OAAA,CAAA4B,aAAA,CAACnC,iBAAA,CAAAoC,SAAC,EAAKH,KAAQ,CAAC;AACzB,CAAC;AAACI,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAEK,MAAMK,SAA0B,GAAGA,CAAC;EACzCE,YAAY;EACZC,eAAe;EACfC,SAAS;EACT,GAAGR;AACL,CAAC,KAAK;EACJ,MAAM,CAACS,MAAM,EAAEC,SAAS,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,SAAS,CAAC;EAErD,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3BH,SAAS,CAACD,MAAM,KAAK,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;EAC3D,CAAC;EAED,MAAMK,kBAAkB,GAAGL,MAAM,KAAK,SAAS;EAC/C,MAAMM,KAAK,GAAG,IAAAC,0BAAQ,EAAC,CAAC;EACxB,oBACEnD,MAAA,CAAAU,OAAA,CAAA4B,aAAA,CAAClC,KAAA,CAAAgD,IAAI,qBACHpD,MAAA,CAAAU,OAAA,CAAA4B,aAAA,CAAClC,KAAA,CAAAgD,IAAI;IAACC,cAAc,EAAC;EAAQ,gBAC3BrD,MAAA,CAAAU,OAAA,CAAA4B,aAAA,CAACJ,eAAe,EAAAvB,QAAA;IACd2C,KAAK,EAAC,MAAM;IACZZ,eAAe,EAAEO,kBAAkB,IAAIP;EAAgB,GACnDP,IAAI,CACT,CAAC,EACD,CAACO,eAAe,IAAIC,SAAS,kBAC5B3C,MAAA,CAAAU,OAAA,CAAA4B,aAAA,CAAClC,KAAA,CAAAgD,IAAI;IACHG,EAAE,EAAC,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNativePaper","_View","_IconButton","_Text","_restyle","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","restyleFunctions","composeRestyleFunctions","spacing","spacingShorthand","layout","position","border","backgroundColor","backgroundColorShorthand","TextInputStyled","rest","props","useRestyle","createElement","TextInput","exports","errorMessage","secureTextEntry","rightIcon","status","setStatus","React","useState","onButtonToggle","shouldShowPassword","theme","useTheme","View","justifyContent","width","pt","alignSelf","ToggleButton","icon","size","onPress","Fragment","flexDirection","alignItems","pb","IconButton","margin","bg","iconColor","colors","error","Text","variant","color"],"sourceRoot":"../../../src","sources":["components/TextInput.tsx"],"mappings":"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"}
|
|
@@ -31,35 +31,44 @@ const getTodayStatus = (periods, utcOffset) => {
|
|
|
31
31
|
statusFlag: null
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
// "Local" time for the business using utcOffset in minutes (e.g., PT = -420)
|
|
34
36
|
const now = new Date();
|
|
35
|
-
const localTime = new Date(now.getTime() + (utcOffset ?? 0) *
|
|
36
|
-
const today = localTime.getUTCDay(); // 0-6
|
|
37
|
+
const localTime = new Date(now.getTime() + (utcOffset ?? 0) * 60_000);
|
|
38
|
+
const today = localTime.getUTCDay(); // 0-6, Sunday=0
|
|
37
39
|
|
|
38
|
-
//
|
|
39
|
-
const
|
|
40
|
-
let
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
40
|
+
// Ensure a stable order
|
|
41
|
+
const sorted = [...periods].sort((a, b) => Number(a.open.day) - Number(b.open.day));
|
|
42
|
+
let nextOpenDate = null;
|
|
43
|
+
let nextOpenTimeStr = null;
|
|
44
|
+
for (const p of sorted) {
|
|
45
|
+
const openDay = Number(p.open.day);
|
|
46
|
+
const closeDay = Number(p.close.day);
|
|
47
|
+
const openTime = p.open.time; // "HHmm"
|
|
48
|
+
const closeTime = p.close.time; // "HHmm"
|
|
46
49
|
|
|
47
|
-
//
|
|
50
|
+
// Build open & close dates relative to localTime's week
|
|
48
51
|
const openDate = new Date(localTime);
|
|
49
|
-
const closeDate = new Date(localTime);
|
|
50
|
-
|
|
51
|
-
// Set open time
|
|
52
52
|
openDate.setUTCDate(localTime.getUTCDate() + (openDay - today + 7) % 7);
|
|
53
53
|
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
54
54
|
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
openDate.setUTCSeconds(0, 0);
|
|
56
|
+
const closeDate = new Date(localTime);
|
|
57
57
|
closeDate.setUTCDate(localTime.getUTCDate() + (closeDay - today + 7) % 7);
|
|
58
58
|
closeDate.setUTCHours(Number(closeTime.slice(0, 2)));
|
|
59
59
|
closeDate.setUTCMinutes(Number(closeTime.slice(2, 4)));
|
|
60
|
-
|
|
60
|
+
closeDate.setUTCSeconds(0, 0);
|
|
61
|
+
|
|
62
|
+
// Handle overnight windows (close after midnight/next day)
|
|
63
|
+
let normalizedClose = closeDate;
|
|
64
|
+
if (normalizedClose <= openDate) {
|
|
65
|
+
normalizedClose = new Date(closeDate.getTime() + 24 * 60 * 60 * 1000);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Is open now?
|
|
69
|
+
const isOpenNow = localTime >= openDate && localTime < normalizedClose;
|
|
61
70
|
if (isOpenNow) {
|
|
62
|
-
const minutesToClose = Math.floor((
|
|
71
|
+
const minutesToClose = Math.floor((normalizedClose.getTime() - localTime.getTime()) / 60_000);
|
|
63
72
|
const isClosingSoon = minutesToClose < 60;
|
|
64
73
|
return {
|
|
65
74
|
main: isClosingSoon ? (0, _i18next.t)('restaurant.closesSoon') : (0, _i18next.t)('restaurant.openNow'),
|
|
@@ -68,7 +77,9 @@ const getTodayStatus = (periods, utcOffset) => {
|
|
|
68
77
|
statusFlag: isClosingSoon ? 'closingSoon' : null
|
|
69
78
|
};
|
|
70
79
|
}
|
|
71
|
-
|
|
80
|
+
|
|
81
|
+
// Opening soon (within 60 minutes)
|
|
82
|
+
const minutesToOpen = Math.floor((openDate.getTime() - localTime.getTime()) / 60_000);
|
|
72
83
|
if (minutesToOpen > 0 && minutesToOpen <= 60) {
|
|
73
84
|
return {
|
|
74
85
|
main: (0, _i18next.t)('restaurant.openingSoon'),
|
|
@@ -78,14 +89,43 @@ const getTodayStatus = (periods, utcOffset) => {
|
|
|
78
89
|
};
|
|
79
90
|
}
|
|
80
91
|
|
|
81
|
-
// Track next opening
|
|
82
|
-
if (
|
|
83
|
-
|
|
92
|
+
// Track the next future opening strictly after now
|
|
93
|
+
if (openDate > localTime) {
|
|
94
|
+
if (!nextOpenDate || openDate < nextOpenDate) {
|
|
95
|
+
nextOpenDate = openDate;
|
|
96
|
+
nextOpenTimeStr = openTime;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// If we didn’t find a future opening in the current week window,
|
|
102
|
+
// the next opening is the earliest weekly opening + 7 days.
|
|
103
|
+
if (!nextOpenDate) {
|
|
104
|
+
let earliestOpenDate = null;
|
|
105
|
+
let earliestOpenTimeStr = null;
|
|
106
|
+
for (const p of sorted) {
|
|
107
|
+
const openDay = Number(p.open.day);
|
|
108
|
+
const openTime = p.open.time;
|
|
109
|
+
const openDate = new Date(localTime);
|
|
110
|
+
openDate.setUTCDate(localTime.getUTCDate() + (openDay - today + 7) % 7);
|
|
111
|
+
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
112
|
+
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
113
|
+
openDate.setUTCSeconds(0, 0);
|
|
114
|
+
|
|
115
|
+
// If it's not in the future relative to localTime, push to next week
|
|
116
|
+
const rolled = openDate <= localTime ? new Date(openDate.getTime() + 7 * 24 * 60 * 60 * 1000) : openDate;
|
|
117
|
+
if (!earliestOpenDate || rolled < earliestOpenDate) {
|
|
118
|
+
earliestOpenDate = rolled;
|
|
119
|
+
earliestOpenTimeStr = openTime;
|
|
120
|
+
}
|
|
84
121
|
}
|
|
122
|
+
nextOpenDate = earliestOpenDate;
|
|
123
|
+
nextOpenTimeStr = earliestOpenTimeStr;
|
|
85
124
|
}
|
|
125
|
+
const weekdayFromDate = d => getWeekDayString(d.getUTCDay());
|
|
86
126
|
return {
|
|
87
127
|
main: (0, _i18next.t)('restaurant.closedNow'),
|
|
88
|
-
additional:
|
|
128
|
+
additional: nextOpenDate && nextOpenTimeStr ? `${(0, _i18next.t)('restaurant.opensAt')} ${weekdayFromDate(nextOpenDate)} ${formatPeriodTime(nextOpenTimeStr)}` : undefined,
|
|
89
129
|
isOpen: false,
|
|
90
130
|
statusFlag: null
|
|
91
131
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18next","require","getWeekDayString","day","days","t","exports","formatPeriodTime","time","hours","parseInt","substring","minutes","period","formattedHours","toString","padStart","getTodayStatus","periods","utcOffset","length","main","isOpen","statusFlag","now","Date","localTime","getTime","today","getUTCDay","
|
|
1
|
+
{"version":3,"names":["_i18next","require","getWeekDayString","day","days","t","exports","formatPeriodTime","time","hours","parseInt","substring","minutes","period","formattedHours","toString","padStart","getTodayStatus","periods","utcOffset","length","main","isOpen","statusFlag","now","Date","localTime","getTime","today","getUTCDay","sorted","sort","a","b","Number","open","nextOpenDate","nextOpenTimeStr","p","openDay","closeDay","close","openTime","closeTime","openDate","setUTCDate","getUTCDate","setUTCHours","slice","setUTCMinutes","setUTCSeconds","closeDate","normalizedClose","isOpenNow","minutesToClose","Math","floor","isClosingSoon","additional","minutesToOpen","earliestOpenDate","earliestOpenTimeStr","rolled","weekdayFromDate","d","undefined","WEEK_DAYS","formatBusinessHours","map","dayNum","dayMap","forEach"],"sourceRoot":"../../../src","sources":["helpers/businessHours.ts"],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"payByCard": "Pay by card",
|
|
75
75
|
"confirmCardDelete": "Confirm Delete Card",
|
|
76
76
|
"cardDeleteDesc": "Are you sure you want to delete card ending in {{card}}?",
|
|
77
|
-
"total": "
|
|
77
|
+
"total": "Total",
|
|
78
78
|
"createBusiness": "Create Business",
|
|
79
79
|
"selectBusiness": "Select Business",
|
|
80
80
|
"searchBusiness": "Search Business",
|
|
@@ -21,6 +21,36 @@ Object.defineProperty(exports, "TermsOfService", {
|
|
|
21
21
|
return _TermsOfService.TermsOfService;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "changePasswordSchema", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _validators.changePasswordSchema;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "checkIsRegisteredAPI", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _authentication.checkIsRegisteredAPI;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "loginValidationSchema", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _validators.loginValidationSchema;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "loginWithPhoneNumberValidationSchema", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _validators.loginWithPhoneNumberValidationSchema;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "passwordVerificationSchema", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _validators.passwordVerificationSchema;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
24
54
|
Object.defineProperty(exports, "renderAppNavigator", {
|
|
25
55
|
enumerable: true,
|
|
26
56
|
get: function () {
|
|
@@ -33,8 +63,22 @@ Object.defineProperty(exports, "renderAuthNavigator", {
|
|
|
33
63
|
return _navigators.renderAuthNavigator;
|
|
34
64
|
}
|
|
35
65
|
});
|
|
66
|
+
Object.defineProperty(exports, "resetPasswordValidationSchema", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _validators.resetPasswordValidationSchema;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "verificationValidationSchema", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _validators.verificationValidationSchema;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
36
78
|
var _SavedCards = require("./SavedCards/SavedCards");
|
|
37
79
|
var _SelectBusiness = require("./SelectBusiness/SelectBusiness");
|
|
38
80
|
var _TermsOfService = require("./TermsOfService/TermsOfService");
|
|
39
81
|
var _navigators = require("./Auth/navigators");
|
|
82
|
+
var _validators = require("./Auth/validators");
|
|
83
|
+
var _authentication = require("../api/authentication");
|
|
40
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_SavedCards","require","_SelectBusiness","_TermsOfService","_navigators"],"sourceRoot":"../../../src","sources":["screens/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_SavedCards","require","_SelectBusiness","_TermsOfService","_navigators","_validators","_authentication"],"sourceRoot":"../../../src","sources":["screens/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AASA,IAAAK,eAAA,GAAAL,OAAA"}
|
|
@@ -30,7 +30,7 @@ export const TextInput = ({
|
|
|
30
30
|
width: "100%",
|
|
31
31
|
secureTextEntry: shouldShowPassword && secureTextEntry
|
|
32
32
|
}, rest)), (secureTextEntry || rightIcon) && /*#__PURE__*/React.createElement(View, {
|
|
33
|
-
pt: "
|
|
33
|
+
pt: "10",
|
|
34
34
|
justifyContent: "center",
|
|
35
35
|
alignSelf: "flex-end",
|
|
36
36
|
position: "absolute",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TextInput","T","ToggleButton","useTheme","View","IconButton","Text","useRestyle","spacing","border","backgroundColor","backgroundColorShorthand","composeRestyleFunctions","spacingShorthand","layout","position","restyleFunctions","TextInputStyled","rest","props","createElement","errorMessage","secureTextEntry","rightIcon","status","setStatus","useState","onButtonToggle","shouldShowPassword","theme","justifyContent","_extends","width","pt","alignSelf","icon","size","onPress","Fragment","flexDirection","alignItems","pb","margin","bg","iconColor","colors","error","variant","color"],"sourceRoot":"../../../src","sources":["components/TextInput.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,SAAS,IAAIC,CAAC,EAEdC,YAAY,EACZC,QAAQ,QACH,oBAAoB;AAC3B,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SACEC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,eAAe,EACfC,wBAAwB,EAIxBC,uBAAuB,EAIvBC,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,QAEH,kBAAkB;AAWzB,MAAMC,gBAAgB,GAAGJ,uBAAuB,CAA0B,CACxEJ,OAAO,EACPK,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,EACRN,MAAM,EACNC,eAAe,EACfC,wBAAwB,CACzB,CAAC;AAQF,OAAO,MAAMM,eAAe,GAAGA,CAAC;EAAE,GAAGC;AAAY,CAAC,KAAK;EACrD,MAAMC,KAAK,GAAGZ,UAAU,CAACS,gBAAgB,EAASE,IAAI,CAAC;EAEvD,oBAAOnB,KAAA,CAAAqB,aAAA,CAACnB,CAAC,EAAKkB,KAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMnB,SAA0B,GAAGA,CAAC;EACzCqB,YAAY;EACZC,eAAe;EACfC,SAAS;EACT,GAAGL;AACL,CAAC,KAAK;EACJ,MAAM,CAACM,MAAM,EAAEC,SAAS,CAAC,GAAG1B,KAAK,CAAC2B,QAAQ,CAAC,SAAS,CAAC;EAErD,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3BF,SAAS,CAACD,MAAM,KAAK,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;EAC3D,CAAC;EAED,MAAMI,kBAAkB,GAAGJ,MAAM,KAAK,SAAS;EAC/C,MAAMK,KAAK,GAAG1B,QAAQ,CAAC,CAAC;EACxB,oBACEJ,KAAA,CAAAqB,aAAA,CAAChB,IAAI,qBACHL,KAAA,CAAAqB,aAAA,CAAChB,IAAI;IAAC0B,cAAc,EAAC;EAAQ,gBAC3B/B,KAAA,CAAAqB,aAAA,CAACH,eAAe,EAAAc,QAAA;IACdC,KAAK,EAAC,MAAM;IACZV,eAAe,EAAEM,kBAAkB,IAAIN;EAAgB,GACnDJ,IAAI,CACT,CAAC,EACD,CAACI,eAAe,IAAIC,SAAS,kBAC5BxB,KAAA,CAAAqB,aAAA,CAAChB,IAAI;IACH6B,EAAE,EAAC,
|
|
1
|
+
{"version":3,"names":["React","TextInput","T","ToggleButton","useTheme","View","IconButton","Text","useRestyle","spacing","border","backgroundColor","backgroundColorShorthand","composeRestyleFunctions","spacingShorthand","layout","position","restyleFunctions","TextInputStyled","rest","props","createElement","errorMessage","secureTextEntry","rightIcon","status","setStatus","useState","onButtonToggle","shouldShowPassword","theme","justifyContent","_extends","width","pt","alignSelf","icon","size","onPress","Fragment","flexDirection","alignItems","pb","margin","bg","iconColor","colors","error","variant","color"],"sourceRoot":"../../../src","sources":["components/TextInput.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,SAAS,IAAIC,CAAC,EAEdC,YAAY,EACZC,QAAQ,QACH,oBAAoB;AAC3B,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SACEC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,eAAe,EACfC,wBAAwB,EAIxBC,uBAAuB,EAIvBC,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,QAEH,kBAAkB;AAWzB,MAAMC,gBAAgB,GAAGJ,uBAAuB,CAA0B,CACxEJ,OAAO,EACPK,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,EACRN,MAAM,EACNC,eAAe,EACfC,wBAAwB,CACzB,CAAC;AAQF,OAAO,MAAMM,eAAe,GAAGA,CAAC;EAAE,GAAGC;AAAY,CAAC,KAAK;EACrD,MAAMC,KAAK,GAAGZ,UAAU,CAACS,gBAAgB,EAASE,IAAI,CAAC;EAEvD,oBAAOnB,KAAA,CAAAqB,aAAA,CAACnB,CAAC,EAAKkB,KAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMnB,SAA0B,GAAGA,CAAC;EACzCqB,YAAY;EACZC,eAAe;EACfC,SAAS;EACT,GAAGL;AACL,CAAC,KAAK;EACJ,MAAM,CAACM,MAAM,EAAEC,SAAS,CAAC,GAAG1B,KAAK,CAAC2B,QAAQ,CAAC,SAAS,CAAC;EAErD,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3BF,SAAS,CAACD,MAAM,KAAK,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;EAC3D,CAAC;EAED,MAAMI,kBAAkB,GAAGJ,MAAM,KAAK,SAAS;EAC/C,MAAMK,KAAK,GAAG1B,QAAQ,CAAC,CAAC;EACxB,oBACEJ,KAAA,CAAAqB,aAAA,CAAChB,IAAI,qBACHL,KAAA,CAAAqB,aAAA,CAAChB,IAAI;IAAC0B,cAAc,EAAC;EAAQ,gBAC3B/B,KAAA,CAAAqB,aAAA,CAACH,eAAe,EAAAc,QAAA;IACdC,KAAK,EAAC,MAAM;IACZV,eAAe,EAAEM,kBAAkB,IAAIN;EAAgB,GACnDJ,IAAI,CACT,CAAC,EACD,CAACI,eAAe,IAAIC,SAAS,kBAC5BxB,KAAA,CAAAqB,aAAA,CAAChB,IAAI;IACH6B,EAAE,EAAC,IAAI;IACPH,cAAc,EAAC,QAAQ;IACvBI,SAAS,EAAC,UAAU;IACpBnB,QAAQ,EAAC,UAAU;IACnBiB,KAAK,EAAE;EAAG,GAETT,SAAS,iBACRxB,KAAA,CAAAqB,aAAA,CAAClB,YAAY;IACXiC,IAAI,EAAEP,kBAAkB,GAAG,KAAK,GAAG,SAAU;IAC7CQ,IAAI,EAAE,EAAG;IACTC,OAAO,EAAEV;EAAe,CACzB,CAEC,CAEJ,CAAC,EAEN,CAAC,CAACN,YAAY,iBACbtB,KAAA,CAAAqB,aAAA,CAAArB,KAAA,CAAAuC,QAAA,qBACEvC,KAAA,CAAAqB,aAAA,CAAChB,IAAI;IAACmC,aAAa,EAAC,KAAK;IAACC,UAAU,EAAC,QAAQ;IAACC,EAAE,EAAC;EAAG,gBAClD1C,KAAA,CAAAqB,aAAA,CAACf,UAAU;IACT8B,IAAI,EAAC,sBAAsB;IAC3BC,IAAI,EAAE,EAAG;IACTJ,KAAK,EAAE,EAAG;IACVU,MAAM,EAAC,GAAG;IACVC,EAAE,EAAE,YAAa;IACjBC,SAAS,EAAEf,KAAK,CAACgB,MAAM,CAACC;EAAM,CAC/B,CAAC,eACF/C,KAAA,CAAAqB,aAAA,CAACd,IAAI;IAACyC,OAAO,EAAC,WAAW;IAACC,KAAK,EAAC;EAAO,GACpC3B,YACG,CACF,CACN,CAEA,CAAC;AAEX,CAAC"}
|
|
@@ -23,35 +23,44 @@ export const getTodayStatus = (periods, utcOffset) => {
|
|
|
23
23
|
statusFlag: null
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
// "Local" time for the business using utcOffset in minutes (e.g., PT = -420)
|
|
26
28
|
const now = new Date();
|
|
27
|
-
const localTime = new Date(now.getTime() + (utcOffset ?? 0) *
|
|
28
|
-
const today = localTime.getUTCDay(); // 0-6
|
|
29
|
+
const localTime = new Date(now.getTime() + (utcOffset ?? 0) * 60_000);
|
|
30
|
+
const today = localTime.getUTCDay(); // 0-6, Sunday=0
|
|
29
31
|
|
|
30
|
-
//
|
|
31
|
-
const
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const
|
|
32
|
+
// Ensure a stable order
|
|
33
|
+
const sorted = [...periods].sort((a, b) => Number(a.open.day) - Number(b.open.day));
|
|
34
|
+
let nextOpenDate = null;
|
|
35
|
+
let nextOpenTimeStr = null;
|
|
36
|
+
for (const p of sorted) {
|
|
37
|
+
const openDay = Number(p.open.day);
|
|
38
|
+
const closeDay = Number(p.close.day);
|
|
39
|
+
const openTime = p.open.time; // "HHmm"
|
|
40
|
+
const closeTime = p.close.time; // "HHmm"
|
|
38
41
|
|
|
39
|
-
//
|
|
42
|
+
// Build open & close dates relative to localTime's week
|
|
40
43
|
const openDate = new Date(localTime);
|
|
41
|
-
const closeDate = new Date(localTime);
|
|
42
|
-
|
|
43
|
-
// Set open time
|
|
44
44
|
openDate.setUTCDate(localTime.getUTCDate() + (openDay - today + 7) % 7);
|
|
45
45
|
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
46
46
|
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
openDate.setUTCSeconds(0, 0);
|
|
48
|
+
const closeDate = new Date(localTime);
|
|
49
49
|
closeDate.setUTCDate(localTime.getUTCDate() + (closeDay - today + 7) % 7);
|
|
50
50
|
closeDate.setUTCHours(Number(closeTime.slice(0, 2)));
|
|
51
51
|
closeDate.setUTCMinutes(Number(closeTime.slice(2, 4)));
|
|
52
|
-
|
|
52
|
+
closeDate.setUTCSeconds(0, 0);
|
|
53
|
+
|
|
54
|
+
// Handle overnight windows (close after midnight/next day)
|
|
55
|
+
let normalizedClose = closeDate;
|
|
56
|
+
if (normalizedClose <= openDate) {
|
|
57
|
+
normalizedClose = new Date(closeDate.getTime() + 24 * 60 * 60 * 1000);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Is open now?
|
|
61
|
+
const isOpenNow = localTime >= openDate && localTime < normalizedClose;
|
|
53
62
|
if (isOpenNow) {
|
|
54
|
-
const minutesToClose = Math.floor((
|
|
63
|
+
const minutesToClose = Math.floor((normalizedClose.getTime() - localTime.getTime()) / 60_000);
|
|
55
64
|
const isClosingSoon = minutesToClose < 60;
|
|
56
65
|
return {
|
|
57
66
|
main: isClosingSoon ? t('restaurant.closesSoon') : t('restaurant.openNow'),
|
|
@@ -60,7 +69,9 @@ export const getTodayStatus = (periods, utcOffset) => {
|
|
|
60
69
|
statusFlag: isClosingSoon ? 'closingSoon' : null
|
|
61
70
|
};
|
|
62
71
|
}
|
|
63
|
-
|
|
72
|
+
|
|
73
|
+
// Opening soon (within 60 minutes)
|
|
74
|
+
const minutesToOpen = Math.floor((openDate.getTime() - localTime.getTime()) / 60_000);
|
|
64
75
|
if (minutesToOpen > 0 && minutesToOpen <= 60) {
|
|
65
76
|
return {
|
|
66
77
|
main: t('restaurant.openingSoon'),
|
|
@@ -70,14 +81,43 @@ export const getTodayStatus = (periods, utcOffset) => {
|
|
|
70
81
|
};
|
|
71
82
|
}
|
|
72
83
|
|
|
73
|
-
// Track next opening
|
|
74
|
-
if (
|
|
75
|
-
|
|
84
|
+
// Track the next future opening strictly after now
|
|
85
|
+
if (openDate > localTime) {
|
|
86
|
+
if (!nextOpenDate || openDate < nextOpenDate) {
|
|
87
|
+
nextOpenDate = openDate;
|
|
88
|
+
nextOpenTimeStr = openTime;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// If we didn’t find a future opening in the current week window,
|
|
94
|
+
// the next opening is the earliest weekly opening + 7 days.
|
|
95
|
+
if (!nextOpenDate) {
|
|
96
|
+
let earliestOpenDate = null;
|
|
97
|
+
let earliestOpenTimeStr = null;
|
|
98
|
+
for (const p of sorted) {
|
|
99
|
+
const openDay = Number(p.open.day);
|
|
100
|
+
const openTime = p.open.time;
|
|
101
|
+
const openDate = new Date(localTime);
|
|
102
|
+
openDate.setUTCDate(localTime.getUTCDate() + (openDay - today + 7) % 7);
|
|
103
|
+
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
104
|
+
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
105
|
+
openDate.setUTCSeconds(0, 0);
|
|
106
|
+
|
|
107
|
+
// If it's not in the future relative to localTime, push to next week
|
|
108
|
+
const rolled = openDate <= localTime ? new Date(openDate.getTime() + 7 * 24 * 60 * 60 * 1000) : openDate;
|
|
109
|
+
if (!earliestOpenDate || rolled < earliestOpenDate) {
|
|
110
|
+
earliestOpenDate = rolled;
|
|
111
|
+
earliestOpenTimeStr = openTime;
|
|
112
|
+
}
|
|
76
113
|
}
|
|
114
|
+
nextOpenDate = earliestOpenDate;
|
|
115
|
+
nextOpenTimeStr = earliestOpenTimeStr;
|
|
77
116
|
}
|
|
117
|
+
const weekdayFromDate = d => getWeekDayString(d.getUTCDay());
|
|
78
118
|
return {
|
|
79
119
|
main: t('restaurant.closedNow'),
|
|
80
|
-
additional:
|
|
120
|
+
additional: nextOpenDate && nextOpenTimeStr ? `${t('restaurant.opensAt')} ${weekdayFromDate(nextOpenDate)} ${formatPeriodTime(nextOpenTimeStr)}` : undefined,
|
|
81
121
|
isOpen: false,
|
|
82
122
|
statusFlag: null
|
|
83
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","getWeekDayString","day","days","formatPeriodTime","time","hours","parseInt","substring","minutes","period","formattedHours","toString","padStart","getTodayStatus","periods","utcOffset","length","main","isOpen","statusFlag","now","Date","localTime","getTime","today","getUTCDay","
|
|
1
|
+
{"version":3,"names":["t","getWeekDayString","day","days","formatPeriodTime","time","hours","parseInt","substring","minutes","period","formattedHours","toString","padStart","getTodayStatus","periods","utcOffset","length","main","isOpen","statusFlag","now","Date","localTime","getTime","today","getUTCDay","sorted","sort","a","b","Number","open","nextOpenDate","nextOpenTimeStr","p","openDay","closeDay","close","openTime","closeTime","openDate","setUTCDate","getUTCDate","setUTCHours","slice","setUTCMinutes","setUTCSeconds","closeDate","normalizedClose","isOpenNow","minutesToClose","Math","floor","isClosingSoon","additional","minutesToOpen","earliestOpenDate","earliestOpenTimeStr","rolled","weekdayFromDate","d","undefined","WEEK_DAYS","formatBusinessHours","map","dayNum","dayMap","forEach"],"sourceRoot":"../../../src","sources":["helpers/businessHours.ts"],"mappings":"AACA,SAASA,CAAC,QAAQ,SAAS;AAE3B,OAAO,MAAMC,gBAAgB,GAAIC,GAAW,IAAa;EACvD,MAAMC,IAAI,GAAG,CACXH,CAAC,CAAC,mBAAmB,CAAC,EACtBA,CAAC,CAAC,mBAAmB,CAAC,EACtBA,CAAC,CAAC,oBAAoB,CAAC,EACvBA,CAAC,CAAC,sBAAsB,CAAC,EACzBA,CAAC,CAAC,qBAAqB,CAAC,EACxBA,CAAC,CAAC,mBAAmB,CAAC,EACtBA,CAAC,CAAC,qBAAqB,CAAC,CACzB;EACD,OAAOG,IAAI,CAACD,GAAG,CAAC,IAAI,EAAE;AACxB,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAIC,IAAY,IAAa;EACxD,IAAI,CAACA,IAAI,EAAE;IACT,OAAO,EAAE;EACX;EAEA,MAAMC,KAAK,GAAGC,QAAQ,CAACF,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EAChD,MAAMC,OAAO,GAAGF,QAAQ,CAACF,IAAI,CAACG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;EAE/C;EACA,MAAME,MAAM,GAAGJ,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EACxC,MAAMK,cAAc,GAAGL,KAAK,GAAG,EAAE,IAAI,EAAE;EACvC,OAAQ,GAAEK,cAAe,IAAGF,OAAO,CAACG,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAE,GAAEH,MAAO,EAAC;AAC5E,CAAC;AASD,OAAO,MAAMI,cAAc,GAAGA,CAC5BC,OAAwB,EACxBC,SAAkB,KACF;EAChB,IAAI,CAACD,OAAO,IAAIA,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;IACpC,OAAO;MACLC,IAAI,EAAElB,CAAC,CAAC,wBAAwB,CAAC;MACjCmB,MAAM,EAAE,KAAK;MACbC,UAAU,EAAE;IACd,CAAC;EACH;;EAEA;EACA,MAAMC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;EACtB,MAAMC,SAAS,GAAG,IAAID,IAAI,CAACD,GAAG,CAACG,OAAO,CAAC,CAAC,GAAG,CAACR,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC;EAErE,MAAMS,KAAK,GAAGF,SAAS,CAACG,SAAS,CAAC,CAAC,CAAC,CAAC;;EAErC;EACA,MAAMC,MAAM,GAAG,CAAC,GAAGZ,OAAO,CAAC,CAACa,IAAI,CAC9B,CAACC,CAAC,EAAEC,CAAC,KAAKC,MAAM,CAACF,CAAC,CAACG,IAAI,CAAC9B,GAAG,CAAC,GAAG6B,MAAM,CAACD,CAAC,CAACE,IAAI,CAAC9B,GAAG,CAClD,CAAC;EAED,IAAI+B,YAAyB,GAAG,IAAI;EACpC,IAAIC,eAA8B,GAAG,IAAI;EAEzC,KAAK,MAAMC,CAAC,IAAIR,MAAM,EAAE;IACtB,MAAMS,OAAO,GAAGL,MAAM,CAACI,CAAC,CAACH,IAAI,CAAC9B,GAAG,CAAC;IAClC,MAAMmC,QAAQ,GAAGN,MAAM,CAACI,CAAC,CAACG,KAAK,CAACpC,GAAG,CAAC;IACpC,MAAMqC,QAAQ,GAAGJ,CAAC,CAACH,IAAI,CAAC3B,IAAI,CAAC,CAAC;IAC9B,MAAMmC,SAAS,GAAGL,CAAC,CAACG,KAAK,CAACjC,IAAI,CAAC,CAAC;;IAEhC;IACA,MAAMoC,QAAQ,GAAG,IAAInB,IAAI,CAACC,SAAS,CAAC;IACpCkB,QAAQ,CAACC,UAAU,CAACnB,SAAS,CAACoB,UAAU,CAAC,CAAC,GAAI,CAACP,OAAO,GAAGX,KAAK,GAAG,CAAC,IAAI,CAAE,CAAC;IACzEgB,QAAQ,CAACG,WAAW,CAACb,MAAM,CAACQ,QAAQ,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClDJ,QAAQ,CAACK,aAAa,CAACf,MAAM,CAACQ,QAAQ,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpDJ,QAAQ,CAACM,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAMC,SAAS,GAAG,IAAI1B,IAAI,CAACC,SAAS,CAAC;IACrCyB,SAAS,CAACN,UAAU,CAACnB,SAAS,CAACoB,UAAU,CAAC,CAAC,GAAI,CAACN,QAAQ,GAAGZ,KAAK,GAAG,CAAC,IAAI,CAAE,CAAC;IAC3EuB,SAAS,CAACJ,WAAW,CAACb,MAAM,CAACS,SAAS,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpDG,SAAS,CAACF,aAAa,CAACf,MAAM,CAACS,SAAS,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtDG,SAAS,CAACD,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAE7B;IACA,IAAIE,eAAe,GAAGD,SAAS;IAC/B,IAAIC,eAAe,IAAIR,QAAQ,EAAE;MAC/BQ,eAAe,GAAG,IAAI3B,IAAI,CAAC0B,SAAS,CAACxB,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACvE;;IAEA;IACA,MAAM0B,SAAS,GAAG3B,SAAS,IAAIkB,QAAQ,IAAIlB,SAAS,GAAG0B,eAAe;IACtE,IAAIC,SAAS,EAAE;MACb,MAAMC,cAAc,GAAGC,IAAI,CAACC,KAAK,CAC/B,CAACJ,eAAe,CAACzB,OAAO,CAAC,CAAC,GAAGD,SAAS,CAACC,OAAO,CAAC,CAAC,IAAI,MACtD,CAAC;MACD,MAAM8B,aAAa,GAAGH,cAAc,GAAG,EAAE;MAEzC,OAAO;QACLjC,IAAI,EAAEoC,aAAa,GACftD,CAAC,CAAC,uBAAuB,CAAC,GAC1BA,CAAC,CAAC,oBAAoB,CAAC;QAC3BuD,UAAU,EAAG,GAAEvD,CAAC,CAAC,qBAAqB,CAAE,IAAGI,gBAAgB,CACzDoC,SACF,CAAE,EAAC;QACHrB,MAAM,EAAE,IAAI;QACZC,UAAU,EAAEkC,aAAa,GAAG,aAAa,GAAG;MAC9C,CAAC;IACH;;IAEA;IACA,MAAME,aAAa,GAAGJ,IAAI,CAACC,KAAK,CAC9B,CAACZ,QAAQ,CAACjB,OAAO,CAAC,CAAC,GAAGD,SAAS,CAACC,OAAO,CAAC,CAAC,IAAI,MAC/C,CAAC;IACD,IAAIgC,aAAa,GAAG,CAAC,IAAIA,aAAa,IAAI,EAAE,EAAE;MAC5C,OAAO;QACLtC,IAAI,EAAElB,CAAC,CAAC,wBAAwB,CAAC;QACjCuD,UAAU,EAAG,GAAEvD,CAAC,CAAC,oBAAoB,CAAE,IAAGI,gBAAgB,CAACmC,QAAQ,CAAE,EAAC;QACtEpB,MAAM,EAAE,KAAK;QACbC,UAAU,EAAE;MACd,CAAC;IACH;;IAEA;IACA,IAAIqB,QAAQ,GAAGlB,SAAS,EAAE;MACxB,IAAI,CAACU,YAAY,IAAIQ,QAAQ,GAAGR,YAAY,EAAE;QAC5CA,YAAY,GAAGQ,QAAQ;QACvBP,eAAe,GAAGK,QAAQ;MAC5B;IACF;EACF;;EAEA;EACA;EACA,IAAI,CAACN,YAAY,EAAE;IACjB,IAAIwB,gBAA6B,GAAG,IAAI;IACxC,IAAIC,mBAAkC,GAAG,IAAI;IAC7C,KAAK,MAAMvB,CAAC,IAAIR,MAAM,EAAE;MACtB,MAAMS,OAAO,GAAGL,MAAM,CAACI,CAAC,CAACH,IAAI,CAAC9B,GAAG,CAAC;MAClC,MAAMqC,QAAQ,GAAGJ,CAAC,CAACH,IAAI,CAAC3B,IAAI;MAE5B,MAAMoC,QAAQ,GAAG,IAAInB,IAAI,CAACC,SAAS,CAAC;MACpCkB,QAAQ,CAACC,UAAU,CAACnB,SAAS,CAACoB,UAAU,CAAC,CAAC,GAAI,CAACP,OAAO,GAAGX,KAAK,GAAG,CAAC,IAAI,CAAE,CAAC;MACzEgB,QAAQ,CAACG,WAAW,CAACb,MAAM,CAACQ,QAAQ,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MAClDJ,QAAQ,CAACK,aAAa,CAACf,MAAM,CAACQ,QAAQ,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACpDJ,QAAQ,CAACM,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;MAE5B;MACA,MAAMY,MAAM,GACVlB,QAAQ,IAAIlB,SAAS,GACjB,IAAID,IAAI,CAACmB,QAAQ,CAACjB,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GACtDiB,QAAQ;MAEd,IAAI,CAACgB,gBAAgB,IAAIE,MAAM,GAAGF,gBAAgB,EAAE;QAClDA,gBAAgB,GAAGE,MAAM;QACzBD,mBAAmB,GAAGnB,QAAQ;MAChC;IACF;IACAN,YAAY,GAAGwB,gBAAgB;IAC/BvB,eAAe,GAAGwB,mBAAmB;EACvC;EAEA,MAAME,eAAe,GAAIC,CAAO,IAAK5D,gBAAgB,CAAC4D,CAAC,CAACnC,SAAS,CAAC,CAAC,CAAC;EAEpE,OAAO;IACLR,IAAI,EAAElB,CAAC,CAAC,sBAAsB,CAAC;IAC/BuD,UAAU,EACRtB,YAAY,IAAIC,eAAe,GAC1B,GAAElC,CAAC,CAAC,oBAAoB,CAAE,IAAG4D,eAAe,CAC3C3B,YACF,CAAE,IAAG7B,gBAAgB,CAAC8B,eAAe,CAAE,EAAC,GACxC4B,SAAS;IACf3C,MAAM,EAAE,KAAK;IACbC,UAAU,EAAE;EACd,CAAC;AACH,CAAC;AAOD,MAAM2C,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;AAEzC,OAAO,MAAMC,mBAAmB,GAC9BjD,OAAwB,IACC;EACzB,IAAI,CAACA,OAAO,IAAIA,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;IACpC,OAAO8C,SAAS,CAACE,GAAG,CAAEC,MAAM,KAAM;MAChChE,GAAG,EAAED,gBAAgB,CAACiE,MAAM,CAAC;MAC7B7D,IAAI,EAAE;IACR,CAAC,CAAC,CAAC;EACL;;EAEA;EACA,MAAM8D,MAA8B,GAAG,CAAC,CAAC;EACzCpD,OAAO,CAACqD,OAAO,CAAC,CAAC;IAAEpC,IAAI;IAAEM;EAAM,CAAC,KAAK;IACnC,MAAMC,QAAQ,GAAGnC,gBAAgB,CAAC4B,IAAI,CAAC3B,IAAI,CAAC;IAC5C,MAAMmC,SAAS,GAAGpC,gBAAgB,CAACkC,KAAK,CAACjC,IAAI,CAAC;IAC9C8D,MAAM,CAACnC,IAAI,CAAC9B,GAAG,CAAC,GAAI,GAAEqC,QAAS,MAAKC,SAAU,EAAC;EACjD,CAAC,CAAC;;EAEF;EACA,OAAOuB,SAAS,CAACE,GAAG,CAAEC,MAAM,KAAM;IAChChE,GAAG,EAAED,gBAAgB,CAACiE,MAAM,CAAC;IAC7B7D,IAAI,EAAE8D,MAAM,CAACD,MAAM,CAAC,IAAI;EAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"payByCard": "Pay by card",
|
|
75
75
|
"confirmCardDelete": "Confirm Delete Card",
|
|
76
76
|
"cardDeleteDesc": "Are you sure you want to delete card ending in {{card}}?",
|
|
77
|
-
"total": "
|
|
77
|
+
"total": "Total",
|
|
78
78
|
"createBusiness": "Create Business",
|
|
79
79
|
"selectBusiness": "Select Business",
|
|
80
80
|
"searchBusiness": "Search Business",
|
|
@@ -2,4 +2,6 @@ export { SavedCards } from './SavedCards/SavedCards';
|
|
|
2
2
|
export { SelectBusiness } from './SelectBusiness/SelectBusiness';
|
|
3
3
|
export { TermsOfService } from './TermsOfService/TermsOfService';
|
|
4
4
|
export { renderAuthNavigator, renderAppNavigator } from './Auth/navigators';
|
|
5
|
+
export { loginValidationSchema, loginWithPhoneNumberValidationSchema, passwordVerificationSchema, changePasswordSchema, resetPasswordValidationSchema, verificationValidationSchema } from './Auth/validators';
|
|
6
|
+
export { checkIsRegisteredAPI } from '../api/authentication';
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SavedCards","SelectBusiness","TermsOfService","renderAuthNavigator","renderAppNavigator"],"sourceRoot":"../../../src","sources":["screens/index.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,yBAAyB;AACpD,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,mBAAmB"}
|
|
1
|
+
{"version":3,"names":["SavedCards","SelectBusiness","TermsOfService","renderAuthNavigator","renderAppNavigator","loginValidationSchema","loginWithPhoneNumberValidationSchema","passwordVerificationSchema","changePasswordSchema","resetPasswordValidationSchema","verificationValidationSchema","checkIsRegisteredAPI"],"sourceRoot":"../../../src","sources":["screens/index.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,yBAAyB;AACpD,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,mBAAmB;AAC3E,SACEC,qBAAqB,EACrBC,oCAAoC,EACpCC,0BAA0B,EAC1BC,oBAAoB,EACpBC,6BAA6B,EAC7BC,4BAA4B,QACvB,mBAAmB;AAE1B,SAASC,oBAAoB,QAAQ,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"businessHours.d.ts","sourceRoot":"","sources":["../../../../src/helpers/businessHours.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAW9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,MAY/C,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,GAAG,IAAI,cACZ,MAAM,KACjB,
|
|
1
|
+
{"version":3,"file":"businessHours.d.ts","sourceRoot":"","sources":["../../../../src/helpers/businessHours.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAW9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,MAY/C,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,GAAG,IAAI,cACZ,MAAM,KACjB,WAqIF,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,eAAO,MAAM,mBAAmB,YACrB,MAAM,EAAE,GAAG,IAAI,KACvB,kBAAkB,EAqBpB,CAAC"}
|
|
@@ -2,4 +2,6 @@ export { SavedCards } from './SavedCards/SavedCards';
|
|
|
2
2
|
export { SelectBusiness } from './SelectBusiness/SelectBusiness';
|
|
3
3
|
export { TermsOfService } from './TermsOfService/TermsOfService';
|
|
4
4
|
export { renderAuthNavigator, renderAppNavigator } from './Auth/navigators';
|
|
5
|
+
export { loginValidationSchema, loginWithPhoneNumberValidationSchema, passwordVerificationSchema, changePasswordSchema, resetPasswordValidationSchema, verificationValidationSchema, } from './Auth/validators';
|
|
6
|
+
export { checkIsRegisteredAPI } from '../api/authentication';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,oCAAoC,EACpC,0BAA0B,EAC1B,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -47,45 +47,51 @@ export const getTodayStatus = (
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
// "Local" time for the business using utcOffset in minutes (e.g., PT = -420)
|
|
50
51
|
const now = new Date();
|
|
51
|
-
const localTime = new Date(now.getTime() + (utcOffset ?? 0) *
|
|
52
|
+
const localTime = new Date(now.getTime() + (utcOffset ?? 0) * 60_000);
|
|
52
53
|
|
|
53
|
-
const today = localTime.getUTCDay(); // 0-6
|
|
54
|
+
const today = localTime.getUTCDay(); // 0-6, Sunday=0
|
|
54
55
|
|
|
55
|
-
//
|
|
56
|
-
const
|
|
56
|
+
// Ensure a stable order
|
|
57
|
+
const sorted = [...periods].sort(
|
|
57
58
|
(a, b) => Number(a.open.day) - Number(b.open.day)
|
|
58
59
|
);
|
|
59
60
|
|
|
60
|
-
let
|
|
61
|
+
let nextOpenDate: Date | null = null;
|
|
62
|
+
let nextOpenTimeStr: string | null = null;
|
|
61
63
|
|
|
62
|
-
for (const
|
|
63
|
-
const openDay = Number(
|
|
64
|
-
const closeDay = Number(
|
|
65
|
-
const openTime =
|
|
66
|
-
const closeTime =
|
|
64
|
+
for (const p of sorted) {
|
|
65
|
+
const openDay = Number(p.open.day);
|
|
66
|
+
const closeDay = Number(p.close.day);
|
|
67
|
+
const openTime = p.open.time; // "HHmm"
|
|
68
|
+
const closeTime = p.close.time; // "HHmm"
|
|
67
69
|
|
|
68
|
-
//
|
|
70
|
+
// Build open & close dates relative to localTime's week
|
|
69
71
|
const openDate = new Date(localTime);
|
|
70
|
-
const closeDate = new Date(localTime);
|
|
71
|
-
|
|
72
|
-
// Set open time
|
|
73
72
|
openDate.setUTCDate(localTime.getUTCDate() + ((openDay - today + 7) % 7));
|
|
74
73
|
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
75
74
|
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
75
|
+
openDate.setUTCSeconds(0, 0);
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
const closeDate = new Date(localTime);
|
|
78
78
|
closeDate.setUTCDate(localTime.getUTCDate() + ((closeDay - today + 7) % 7));
|
|
79
79
|
closeDate.setUTCHours(Number(closeTime.slice(0, 2)));
|
|
80
80
|
closeDate.setUTCMinutes(Number(closeTime.slice(2, 4)));
|
|
81
|
+
closeDate.setUTCSeconds(0, 0);
|
|
81
82
|
|
|
82
|
-
|
|
83
|
+
// Handle overnight windows (close after midnight/next day)
|
|
84
|
+
let normalizedClose = closeDate;
|
|
85
|
+
if (normalizedClose <= openDate) {
|
|
86
|
+
normalizedClose = new Date(closeDate.getTime() + 24 * 60 * 60 * 1000);
|
|
87
|
+
}
|
|
83
88
|
|
|
89
|
+
// Is open now?
|
|
90
|
+
const isOpenNow = localTime >= openDate && localTime < normalizedClose;
|
|
84
91
|
if (isOpenNow) {
|
|
85
92
|
const minutesToClose = Math.floor(
|
|
86
|
-
(
|
|
93
|
+
(normalizedClose.getTime() - localTime.getTime()) / 60_000
|
|
87
94
|
);
|
|
88
|
-
|
|
89
95
|
const isClosingSoon = minutesToClose < 60;
|
|
90
96
|
|
|
91
97
|
return {
|
|
@@ -100,10 +106,10 @@ export const getTodayStatus = (
|
|
|
100
106
|
};
|
|
101
107
|
}
|
|
102
108
|
|
|
109
|
+
// Opening soon (within 60 minutes)
|
|
103
110
|
const minutesToOpen = Math.floor(
|
|
104
|
-
(openDate.getTime() - localTime.getTime()) /
|
|
111
|
+
(openDate.getTime() - localTime.getTime()) / 60_000
|
|
105
112
|
);
|
|
106
|
-
|
|
107
113
|
if (minutesToOpen > 0 && minutesToOpen <= 60) {
|
|
108
114
|
return {
|
|
109
115
|
main: t('restaurant.openingSoon'),
|
|
@@ -113,26 +119,55 @@ export const getTodayStatus = (
|
|
|
113
119
|
};
|
|
114
120
|
}
|
|
115
121
|
|
|
116
|
-
// Track next opening
|
|
117
|
-
if (
|
|
118
|
-
!
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
((Number(nextOpeningPeriod.open.day) - today + 7) % 7) * 86400000
|
|
123
|
-
)
|
|
124
|
-
) {
|
|
125
|
-
nextOpeningPeriod = period;
|
|
122
|
+
// Track the next future opening strictly after now
|
|
123
|
+
if (openDate > localTime) {
|
|
124
|
+
if (!nextOpenDate || openDate < nextOpenDate) {
|
|
125
|
+
nextOpenDate = openDate;
|
|
126
|
+
nextOpenTimeStr = openTime;
|
|
127
|
+
}
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
|
|
131
|
+
// If we didn’t find a future opening in the current week window,
|
|
132
|
+
// the next opening is the earliest weekly opening + 7 days.
|
|
133
|
+
if (!nextOpenDate) {
|
|
134
|
+
let earliestOpenDate: Date | null = null;
|
|
135
|
+
let earliestOpenTimeStr: string | null = null;
|
|
136
|
+
for (const p of sorted) {
|
|
137
|
+
const openDay = Number(p.open.day);
|
|
138
|
+
const openTime = p.open.time;
|
|
139
|
+
|
|
140
|
+
const openDate = new Date(localTime);
|
|
141
|
+
openDate.setUTCDate(localTime.getUTCDate() + ((openDay - today + 7) % 7));
|
|
142
|
+
openDate.setUTCHours(Number(openTime.slice(0, 2)));
|
|
143
|
+
openDate.setUTCMinutes(Number(openTime.slice(2, 4)));
|
|
144
|
+
openDate.setUTCSeconds(0, 0);
|
|
145
|
+
|
|
146
|
+
// If it's not in the future relative to localTime, push to next week
|
|
147
|
+
const rolled =
|
|
148
|
+
openDate <= localTime
|
|
149
|
+
? new Date(openDate.getTime() + 7 * 24 * 60 * 60 * 1000)
|
|
150
|
+
: openDate;
|
|
151
|
+
|
|
152
|
+
if (!earliestOpenDate || rolled < earliestOpenDate) {
|
|
153
|
+
earliestOpenDate = rolled;
|
|
154
|
+
earliestOpenTimeStr = openTime;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
nextOpenDate = earliestOpenDate;
|
|
158
|
+
nextOpenTimeStr = earliestOpenTimeStr;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const weekdayFromDate = (d: Date) => getWeekDayString(d.getUTCDay());
|
|
162
|
+
|
|
129
163
|
return {
|
|
130
164
|
main: t('restaurant.closedNow'),
|
|
131
|
-
additional:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
165
|
+
additional:
|
|
166
|
+
nextOpenDate && nextOpenTimeStr
|
|
167
|
+
? `${t('restaurant.opensAt')} ${weekdayFromDate(
|
|
168
|
+
nextOpenDate
|
|
169
|
+
)} ${formatPeriodTime(nextOpenTimeStr)}`
|
|
170
|
+
: undefined,
|
|
136
171
|
isOpen: false,
|
|
137
172
|
statusFlag: null,
|
|
138
173
|
};
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"payByCard": "Pay by card",
|
|
75
75
|
"confirmCardDelete": "Confirm Delete Card",
|
|
76
76
|
"cardDeleteDesc": "Are you sure you want to delete card ending in {{card}}?",
|
|
77
|
-
"total": "
|
|
77
|
+
"total": "Total",
|
|
78
78
|
"createBusiness": "Create Business",
|
|
79
79
|
"selectBusiness": "Select Business",
|
|
80
80
|
"searchBusiness": "Search Business",
|
package/src/screens/index.ts
CHANGED
|
@@ -2,3 +2,13 @@ export { SavedCards } from './SavedCards/SavedCards';
|
|
|
2
2
|
export { SelectBusiness } from './SelectBusiness/SelectBusiness';
|
|
3
3
|
export { TermsOfService } from './TermsOfService/TermsOfService';
|
|
4
4
|
export { renderAuthNavigator, renderAppNavigator } from './Auth/navigators';
|
|
5
|
+
export {
|
|
6
|
+
loginValidationSchema,
|
|
7
|
+
loginWithPhoneNumberValidationSchema,
|
|
8
|
+
passwordVerificationSchema,
|
|
9
|
+
changePasswordSchema,
|
|
10
|
+
resetPasswordValidationSchema,
|
|
11
|
+
verificationValidationSchema,
|
|
12
|
+
} from './Auth/validators';
|
|
13
|
+
|
|
14
|
+
export { checkIsRegisteredAPI } from '../api/authentication';
|