@kiosinc/commons-rn 0.7.1 → 0.8.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/hooks/queryKeys.js +2 -1
- package/lib/commonjs/hooks/queryKeys.js.map +1 -1
- package/lib/commonjs/hooks/useAuthenticateRequests.js +12 -0
- package/lib/commonjs/hooks/useAuthenticateRequests.js.map +1 -1
- package/lib/commonjs/hooks/useCreateBusiness.js +1 -0
- package/lib/commonjs/hooks/useCreateBusiness.js.map +1 -1
- package/lib/commonjs/screens/SelectBusiness/CreateBusinessBottomSheet.js +35 -5
- package/lib/commonjs/screens/SelectBusiness/CreateBusinessBottomSheet.js.map +1 -1
- package/lib/module/hooks/queryKeys.js +2 -1
- package/lib/module/hooks/queryKeys.js.map +1 -1
- package/lib/module/hooks/useAuthenticateRequests.js +12 -0
- package/lib/module/hooks/useAuthenticateRequests.js.map +1 -1
- package/lib/module/hooks/useCreateBusiness.js +1 -0
- package/lib/module/hooks/useCreateBusiness.js.map +1 -1
- package/lib/module/screens/SelectBusiness/CreateBusinessBottomSheet.js +35 -5
- package/lib/module/screens/SelectBusiness/CreateBusinessBottomSheet.js.map +1 -1
- package/lib/typescript/src/hooks/queryKeys.d.ts +1 -0
- package/lib/typescript/src/hooks/queryKeys.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useAuthenticateRequests.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useCreateBusiness.d.ts.map +1 -1
- package/lib/typescript/src/screens/SelectBusiness/CreateBusinessBottomSheet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/queryKeys.ts +1 -0
- package/src/hooks/useAuthenticateRequests.ts +20 -0
- package/src/hooks/useCreateBusiness.ts +1 -0
- package/src/screens/SelectBusiness/CreateBusinessBottomSheet.tsx +47 -6
|
@@ -12,7 +12,8 @@ const queryKeys = exports.queryKeys = {
|
|
|
12
12
|
CUSTOMER: 'CUSTOMER',
|
|
13
13
|
PROGRAM: 'PROGRAM',
|
|
14
14
|
LOYALTY: 'LOYALTY',
|
|
15
|
-
REWARDS: 'REWARDS'
|
|
15
|
+
REWARDS: 'REWARDS',
|
|
16
|
+
CREATE_BUSINESS: 'CREATE_BUSINESS'
|
|
16
17
|
};
|
|
17
18
|
const DEFAULT_STALE_TIME = exports.DEFAULT_STALE_TIME = 60 * (60 * 1000); // 60 mins
|
|
18
19
|
//# sourceMappingURL=queryKeys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryKeys","exports","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","CARDS","CUSTOMER","PROGRAM","LOYALTY","REWARDS","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["hooks/queryKeys.ts"],"mappings":";;;;;;AAAO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvBE,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE,0BAA0B;EACpDC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"names":["queryKeys","exports","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","CARDS","CUSTOMER","PROGRAM","LOYALTY","REWARDS","CREATE_BUSINESS","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["hooks/queryKeys.ts"],"mappings":";;;;;;AAAO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvBE,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE,0BAA0B;EACpDC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,eAAe,EAAE;AACnB,CAAC;AAEM,MAAMC,kBAAkB,GAAAV,OAAA,CAAAU,kBAAA,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -10,6 +10,13 @@ var _reactNative = require("react-native");
|
|
|
10
10
|
var _reactNativeConfig = _interopRequireDefault(require("react-native-config"));
|
|
11
11
|
var _components = require("../components");
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
const logApiCall = ({
|
|
14
|
+
url
|
|
15
|
+
}) => {
|
|
16
|
+
if (__DEV__) {
|
|
17
|
+
console.log('🚗API:', url);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
13
20
|
const useAuthenticateRequests = getToken => {
|
|
14
21
|
(0, _react.useEffect)(() => {
|
|
15
22
|
const requestInterceptor = _axios.default.interceptors.request.use(async config => {
|
|
@@ -21,6 +28,11 @@ const useAuthenticateRequests = getToken => {
|
|
|
21
28
|
}
|
|
22
29
|
config.headers.Authorization = `Bearer ${token}`;
|
|
23
30
|
}
|
|
31
|
+
logApiCall({
|
|
32
|
+
method: config.method?.toUpperCase() || 'GET',
|
|
33
|
+
url: config?.baseURL + (config?.url ?? ''),
|
|
34
|
+
data: config.data
|
|
35
|
+
});
|
|
24
36
|
return config;
|
|
25
37
|
});
|
|
26
38
|
_axios.default.defaults.baseURL = _reactNativeConfig.default.BASE_URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_react","_reactNative","_reactNativeConfig","_components","obj","__esModule","default","useAuthenticateRequests","getToken","useEffect","requestInterceptor","axios","interceptors","request","use","config","token","headers","Authorization","
|
|
1
|
+
{"version":3,"names":["_axios","_interopRequireDefault","require","_react","_reactNative","_reactNativeConfig","_components","obj","__esModule","default","logApiCall","url","__DEV__","console","log","useAuthenticateRequests","getToken","useEffect","requestInterceptor","axios","interceptors","request","use","config","token","headers","Authorization","method","toUpperCase","baseURL","data","defaults","Config","BASE_URL","Platform","OS","DEBUG","replace","common","accept","responseInterceptor","response","error","message","Alert","show","title","Promise","reject","eject","exports"],"sourceRoot":"../../../src","sources":["hooks/useAuthenticateRequests.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAAsC,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtC,MAAMG,UAAU,GAAGA,CAAC;EAClBC;AAOF,CAAC,KAAK;EACJ,IAAIC,OAAO,EAAE;IACXC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEH,GAAG,CAAC;EAC5B;AACF,CAAC;AAEM,MAAMI,uBAAuB,GAClCC,QAAsC,IACnC;EACH,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,kBAAkB,GAAGC,cAAK,CAACC,YAAY,CAACC,OAAO,CAACC,GAAG,CACvD,MAAOC,MAAM,IAAK;MAChB,MAAMC,KAAK,GAAG,MAAMR,QAAQ,CAAC,CAAC;MAC9B,IAAIQ,KAAK,EAAE;QACT,IAAI,CAACD,MAAM,CAACE,OAAO,EAAE;UACnB;UACAF,MAAM,CAACE,OAAO,GAAG,CAAC,CAAC;QACrB;QACAF,MAAM,CAACE,OAAO,CAACC,aAAa,GAAI,UAASF,KAAM,EAAC;MAClD;MAEAd,UAAU,CAAC;QACTiB,MAAM,EAAEJ,MAAM,CAACI,MAAM,EAAEC,WAAW,CAAC,CAAC,IAAI,KAAK;QAC7CjB,GAAG,EAAEY,MAAM,EAAEM,OAAO,IAAIN,MAAM,EAAEZ,GAAG,IAAI,EAAE,CAAC;QAC1CmB,IAAI,EAAEP,MAAM,CAACO;MACf,CAAC,CAAC;MACF,OAAOP,MAAM;IACf,CACF,CAAC;IACDJ,cAAK,CAACY,QAAQ,CAACF,OAAO,GAAGG,0BAAM,CAACC,QAAQ;;IAExC;IACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIH,0BAAM,CAACI,KAAK,KAAK,IAAI,EAAE;MACtDjB,cAAK,CAACY,QAAQ,CAACF,OAAO,GAAGV,cAAK,CAACY,QAAQ,CAACF,OAAO,EAAEQ,OAAO,CACtD,WAAW,EACX,UACF,CAAC;IACH;IACAlB,cAAK,CAACY,QAAQ,CAACN,OAAO,CAACa,MAAM,GAAG;MAC9BC,MAAM,EAAE;IACV,CAAC;IAED,MAAMC,mBAAmB,GAAGrB,cAAK,CAACC,YAAY,CAACqB,QAAQ,CAACnB,GAAG,CACxDmB,QAAQ,IAAK;MACZ,OAAOA,QAAQ;IACjB,CAAC,EACAC,KAAK,IAAK;MACT,IAAIA,KAAK,CAACD,QAAQ,CAACX,IAAI,CAACa,OAAO,EAAE;QAC/BC,iBAAK,CAACC,IAAI,CAAC;UACTC,KAAK,EAAEJ,KAAK,CAACD,QAAQ,CAACX,IAAI,CAACa;QAC7B,CAAC,CAAC;MACJ,CAAC,MAAM;QACLC,iBAAK,CAACC,IAAI,CAAC;UACTC,KAAK,EAAE;QACT,CAAC,CAAC;MACJ;MACA,OAAOC,OAAO,CAACC,MAAM,CAACN,KAAK,CAAC;IAC9B,CACF,CAAC;IAED,OAAO,MAAM;MACXvB,cAAK,CAACC,YAAY,CAACC,OAAO,CAAC4B,KAAK,CAAC/B,kBAAkB,CAAC;MACpDC,cAAK,CAACC,YAAY,CAACqB,QAAQ,CAACQ,KAAK,CAACT,mBAAmB,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACxB,QAAQ,CAAC,CAAC;AAChB,CAAC;AAACkC,OAAA,CAAAnC,uBAAA,GAAAA,uBAAA"}
|
|
@@ -14,6 +14,7 @@ const useCreateBusiness = ({
|
|
|
14
14
|
return (0, _reactQuery.useMutation)(async params => {
|
|
15
15
|
await (0, _authentication.signUpAPI)(params);
|
|
16
16
|
}, {
|
|
17
|
+
mutationKey: [_queryKeys.queryKeys.CREATE_BUSINESS],
|
|
17
18
|
onSuccess: () => {
|
|
18
19
|
queryClient.invalidateQueries([_queryKeys.queryKeys.BUSINESSES]);
|
|
19
20
|
onSuccess();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_queryKeys","_authentication","useCreateBusiness","onSuccess","queryClient","useQueryClient","useMutation","params","signUpAPI","
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_queryKeys","_authentication","useCreateBusiness","onSuccess","queryClient","useQueryClient","useMutation","params","signUpAPI","mutationKey","queryKeys","CREATE_BUSINESS","invalidateQueries","BUSINESSES","exports"],"sourceRoot":"../../../src","sources":["hooks/useCreateBusiness.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAEO,MAAMG,iBAAiB,GAAGA,CAAC;EAAEC;AAAqC,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAG,IAAAC,0BAAc,EAAC,CAAC;EACpC,OAAO,IAAAC,uBAAW,EAChB,MAAOC,MAAW,IAAK;IACrB,MAAM,IAAAC,yBAAS,EAACD,MAAM,CAAC;EACzB,CAAC,EACD;IACEE,WAAW,EAAE,CAACC,oBAAS,CAACC,eAAe,CAAC;IACxCR,SAAS,EAAEA,CAAA,KAAM;MACfC,WAAW,CAACQ,iBAAiB,CAAC,CAACF,oBAAS,CAACG,UAAU,CAAC,CAAC;MACrDV,SAAS,CAAC,CAAC;IACb;EACF,CACF,CAAC;AACH,CAAC;AAACW,OAAA,CAAAZ,iBAAA,GAAAA,iBAAA"}
|
|
@@ -17,11 +17,16 @@ const CreateBusinessBottomSheet = exports.CreateBusinessBottomSheet = /*#__PURE_
|
|
|
17
17
|
close
|
|
18
18
|
}, ref) => {
|
|
19
19
|
const [name, setName] = (0, _react.useState)('');
|
|
20
|
+
const [isSubmitting, setIsSubmitting] = (0, _react.useState)(false);
|
|
21
|
+
const [lastSubmittedName, setLastSubmittedName] = (0, _react.useState)('');
|
|
20
22
|
const {
|
|
21
23
|
mutate: createNewMenuGroup,
|
|
22
|
-
isLoading
|
|
24
|
+
isLoading,
|
|
25
|
+
error
|
|
23
26
|
} = (0, _hooks.useCreateBusiness)({
|
|
24
27
|
onSuccess: () => {
|
|
28
|
+
setIsSubmitting(false);
|
|
29
|
+
setLastSubmittedName('');
|
|
25
30
|
close();
|
|
26
31
|
}
|
|
27
32
|
});
|
|
@@ -29,9 +34,33 @@ const CreateBusinessBottomSheet = exports.CreateBusinessBottomSheet = /*#__PURE_
|
|
|
29
34
|
t
|
|
30
35
|
} = (0, _reactI18next.useTranslation)();
|
|
31
36
|
const textInputRef = (0, _react.useRef)();
|
|
37
|
+
(0, _react.useEffect)(() => {
|
|
38
|
+
if (error) {
|
|
39
|
+
setIsSubmitting(false);
|
|
40
|
+
}
|
|
41
|
+
}, [error]);
|
|
42
|
+
(0, _react.useEffect)(() => {
|
|
43
|
+
if (!isVisible) {
|
|
44
|
+
setIsSubmitting(false);
|
|
45
|
+
setLastSubmittedName('');
|
|
46
|
+
}
|
|
47
|
+
}, [isVisible]);
|
|
32
48
|
const onCreate = () => {
|
|
49
|
+
const trimmedName = name.trim();
|
|
50
|
+
|
|
51
|
+
// Guard against multiple submissions
|
|
52
|
+
if (isSubmitting || isLoading || trimmedName.length === 0) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Guard against duplicate submissions of the same name
|
|
57
|
+
if (trimmedName === lastSubmittedName) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
setIsSubmitting(true);
|
|
61
|
+
setLastSubmittedName(trimmedName);
|
|
33
62
|
createNewMenuGroup({
|
|
34
|
-
name:
|
|
63
|
+
name: trimmedName
|
|
35
64
|
});
|
|
36
65
|
setName('');
|
|
37
66
|
};
|
|
@@ -67,10 +96,11 @@ const CreateBusinessBottomSheet = exports.CreateBusinessBottomSheet = /*#__PURE_
|
|
|
67
96
|
justifyContent: "flex-end"
|
|
68
97
|
}, /*#__PURE__*/_react.default.createElement(_components.Button, {
|
|
69
98
|
mode: "text",
|
|
70
|
-
onPress: close
|
|
99
|
+
onPress: close,
|
|
100
|
+
disabled: isSubmitting || isLoading
|
|
71
101
|
}, t('commons.cancel')), /*#__PURE__*/_react.default.createElement(_components.Button, {
|
|
72
|
-
loading: isLoading,
|
|
73
|
-
disabled: isLoading || name.trim().length === 0,
|
|
102
|
+
loading: isLoading || isSubmitting,
|
|
103
|
+
disabled: isLoading || isSubmitting || name.trim().length === 0,
|
|
74
104
|
mode: "text",
|
|
75
105
|
onPress: onCreate
|
|
76
106
|
}, t('commons.create'))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_components","_bottomSheet","_reactI18next","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","CreateBusinessBottomSheet","exports","forwardRef","isVisible","close","ref","name","setName","useState","mutate","createNewMenuGroup","isLoading","useCreateBusiness","onSuccess","useTranslation","textInputRef","useRef","onCreate","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_components","_bottomSheet","_reactI18next","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","CreateBusinessBottomSheet","exports","forwardRef","isVisible","close","ref","name","setName","useState","isSubmitting","setIsSubmitting","lastSubmittedName","setLastSubmittedName","mutate","createNewMenuGroup","isLoading","error","useCreateBusiness","onSuccess","useTranslation","textInputRef","useRef","useEffect","onCreate","trimmedName","trim","current","focus","createElement","BottomSheet","pressBehavior","View","px","bg","flex","Text","pt","variant","KeyboardAvoidingView","TextInput","render","props","BottomSheetTextInput","mt","mode","onChangeText","value","label","flexDirection","justifyContent","Button","onPress","disabled","loading"],"sourceRoot":"../../../../src","sources":["screens/SelectBusiness/CreateBusinessBottomSheet.tsx"],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ export const queryKeys = {
|
|
|
6
6
|
CUSTOMER: 'CUSTOMER',
|
|
7
7
|
PROGRAM: 'PROGRAM',
|
|
8
8
|
LOYALTY: 'LOYALTY',
|
|
9
|
-
REWARDS: 'REWARDS'
|
|
9
|
+
REWARDS: 'REWARDS',
|
|
10
|
+
CREATE_BUSINESS: 'CREATE_BUSINESS'
|
|
10
11
|
};
|
|
11
12
|
export const DEFAULT_STALE_TIME = 60 * (60 * 1000); // 60 mins
|
|
12
13
|
//# sourceMappingURL=queryKeys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryKeys","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","CARDS","CUSTOMER","PROGRAM","LOYALTY","REWARDS","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["hooks/queryKeys.ts"],"mappings":"AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE,0BAA0B;EACpDC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"names":["queryKeys","BUSINESSES","TERMS_AND_CONDITIONS","TERMS_AND_CONDITIONS_URL","CARDS","CUSTOMER","PROGRAM","LOYALTY","REWARDS","CREATE_BUSINESS","DEFAULT_STALE_TIME"],"sourceRoot":"../../../src","sources":["hooks/queryKeys.ts"],"mappings":"AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,wBAAwB,EAAE,0BAA0B;EACpDC,KAAK,EAAE,OAAO;EACdC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,eAAe,EAAE;AACnB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -3,6 +3,13 @@ import { useEffect } from 'react';
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import Config from 'react-native-config';
|
|
5
5
|
import { Alert } from '../components';
|
|
6
|
+
const logApiCall = ({
|
|
7
|
+
url
|
|
8
|
+
}) => {
|
|
9
|
+
if (__DEV__) {
|
|
10
|
+
console.log('🚗API:', url);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
6
13
|
export const useAuthenticateRequests = getToken => {
|
|
7
14
|
useEffect(() => {
|
|
8
15
|
const requestInterceptor = axios.interceptors.request.use(async config => {
|
|
@@ -14,6 +21,11 @@ export const useAuthenticateRequests = getToken => {
|
|
|
14
21
|
}
|
|
15
22
|
config.headers.Authorization = `Bearer ${token}`;
|
|
16
23
|
}
|
|
24
|
+
logApiCall({
|
|
25
|
+
method: config.method?.toUpperCase() || 'GET',
|
|
26
|
+
url: config?.baseURL + (config?.url ?? ''),
|
|
27
|
+
data: config.data
|
|
28
|
+
});
|
|
17
29
|
return config;
|
|
18
30
|
});
|
|
19
31
|
axios.defaults.baseURL = Config.BASE_URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","useEffect","Platform","Config","Alert","useAuthenticateRequests","getToken","requestInterceptor","interceptors","request","use","config","token","headers","Authorization","
|
|
1
|
+
{"version":3,"names":["axios","useEffect","Platform","Config","Alert","logApiCall","url","__DEV__","console","log","useAuthenticateRequests","getToken","requestInterceptor","interceptors","request","use","config","token","headers","Authorization","method","toUpperCase","baseURL","data","defaults","BASE_URL","OS","DEBUG","replace","common","accept","responseInterceptor","response","error","message","show","title","Promise","reject","eject"],"sourceRoot":"../../../src","sources":["hooks/useAuthenticateRequests.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,KAAK,QAAQ,eAAe;AAErC,MAAMC,UAAU,GAAGA,CAAC;EAClBC;AAOF,CAAC,KAAK;EACJ,IAAIC,OAAO,EAAE;IACXC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEH,GAAG,CAAC;EAC5B;AACF,CAAC;AAED,OAAO,MAAMI,uBAAuB,GAClCC,QAAsC,IACnC;EACHV,SAAS,CAAC,MAAM;IACd,MAAMW,kBAAkB,GAAGZ,KAAK,CAACa,YAAY,CAACC,OAAO,CAACC,GAAG,CACvD,MAAOC,MAAM,IAAK;MAChB,MAAMC,KAAK,GAAG,MAAMN,QAAQ,CAAC,CAAC;MAC9B,IAAIM,KAAK,EAAE;QACT,IAAI,CAACD,MAAM,CAACE,OAAO,EAAE;UACnB;UACAF,MAAM,CAACE,OAAO,GAAG,CAAC,CAAC;QACrB;QACAF,MAAM,CAACE,OAAO,CAACC,aAAa,GAAI,UAASF,KAAM,EAAC;MAClD;MAEAZ,UAAU,CAAC;QACTe,MAAM,EAAEJ,MAAM,CAACI,MAAM,EAAEC,WAAW,CAAC,CAAC,IAAI,KAAK;QAC7Cf,GAAG,EAAEU,MAAM,EAAEM,OAAO,IAAIN,MAAM,EAAEV,GAAG,IAAI,EAAE,CAAC;QAC1CiB,IAAI,EAAEP,MAAM,CAACO;MACf,CAAC,CAAC;MACF,OAAOP,MAAM;IACf,CACF,CAAC;IACDhB,KAAK,CAACwB,QAAQ,CAACF,OAAO,GAAGnB,MAAM,CAACsB,QAAQ;;IAExC;IACA,IAAIvB,QAAQ,CAACwB,EAAE,KAAK,SAAS,IAAIvB,MAAM,CAACwB,KAAK,KAAK,IAAI,EAAE;MACtD3B,KAAK,CAACwB,QAAQ,CAACF,OAAO,GAAGtB,KAAK,CAACwB,QAAQ,CAACF,OAAO,EAAEM,OAAO,CACtD,WAAW,EACX,UACF,CAAC;IACH;IACA5B,KAAK,CAACwB,QAAQ,CAACN,OAAO,CAACW,MAAM,GAAG;MAC9BC,MAAM,EAAE;IACV,CAAC;IAED,MAAMC,mBAAmB,GAAG/B,KAAK,CAACa,YAAY,CAACmB,QAAQ,CAACjB,GAAG,CACxDiB,QAAQ,IAAK;MACZ,OAAOA,QAAQ;IACjB,CAAC,EACAC,KAAK,IAAK;MACT,IAAIA,KAAK,CAACD,QAAQ,CAACT,IAAI,CAACW,OAAO,EAAE;QAC/B9B,KAAK,CAAC+B,IAAI,CAAC;UACTC,KAAK,EAAEH,KAAK,CAACD,QAAQ,CAACT,IAAI,CAACW;QAC7B,CAAC,CAAC;MACJ,CAAC,MAAM;QACL9B,KAAK,CAAC+B,IAAI,CAAC;UACTC,KAAK,EAAE;QACT,CAAC,CAAC;MACJ;MACA,OAAOC,OAAO,CAACC,MAAM,CAACL,KAAK,CAAC;IAC9B,CACF,CAAC;IAED,OAAO,MAAM;MACXjC,KAAK,CAACa,YAAY,CAACC,OAAO,CAACyB,KAAK,CAAC3B,kBAAkB,CAAC;MACpDZ,KAAK,CAACa,YAAY,CAACmB,QAAQ,CAACO,KAAK,CAACR,mBAAmB,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACpB,QAAQ,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMutation","useQueryClient","queryKeys","signUpAPI","useCreateBusiness","onSuccess","queryClient","params","invalidateQueries","BUSINESSES"],"sourceRoot":"../../../src","sources":["hooks/useCreateBusiness.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,cAAc,QAAQ,uBAAuB;AACnE,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,SAAS,QAAQ,uBAAuB;AAEjD,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC;AAAqC,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGL,cAAc,CAAC,CAAC;EACpC,OAAOD,WAAW,CAChB,MAAOO,MAAW,IAAK;IACrB,MAAMJ,SAAS,CAACI,MAAM,CAAC;EACzB,CAAC,EACD;
|
|
1
|
+
{"version":3,"names":["useMutation","useQueryClient","queryKeys","signUpAPI","useCreateBusiness","onSuccess","queryClient","params","mutationKey","CREATE_BUSINESS","invalidateQueries","BUSINESSES"],"sourceRoot":"../../../src","sources":["hooks/useCreateBusiness.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,cAAc,QAAQ,uBAAuB;AACnE,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,SAAS,QAAQ,uBAAuB;AAEjD,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC;AAAqC,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGL,cAAc,CAAC,CAAC;EACpC,OAAOD,WAAW,CAChB,MAAOO,MAAW,IAAK;IACrB,MAAMJ,SAAS,CAACI,MAAM,CAAC;EACzB,CAAC,EACD;IACEC,WAAW,EAAE,CAACN,SAAS,CAACO,eAAe,CAAC;IACxCJ,SAAS,EAAEA,CAAA,KAAM;MACfC,WAAW,CAACI,iBAAiB,CAAC,CAACR,SAAS,CAACS,UAAU,CAAC,CAAC;MACrDN,SAAS,CAAC,CAAC;IACb;EACF,CACF,CAAC;AACH,CAAC"}
|
|
@@ -9,11 +9,16 @@ export const CreateBusinessBottomSheet = /*#__PURE__*/forwardRef(({
|
|
|
9
9
|
close
|
|
10
10
|
}, ref) => {
|
|
11
11
|
const [name, setName] = useState('');
|
|
12
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
13
|
+
const [lastSubmittedName, setLastSubmittedName] = useState('');
|
|
12
14
|
const {
|
|
13
15
|
mutate: createNewMenuGroup,
|
|
14
|
-
isLoading
|
|
16
|
+
isLoading,
|
|
17
|
+
error
|
|
15
18
|
} = useCreateBusiness({
|
|
16
19
|
onSuccess: () => {
|
|
20
|
+
setIsSubmitting(false);
|
|
21
|
+
setLastSubmittedName('');
|
|
17
22
|
close();
|
|
18
23
|
}
|
|
19
24
|
});
|
|
@@ -21,9 +26,33 @@ export const CreateBusinessBottomSheet = /*#__PURE__*/forwardRef(({
|
|
|
21
26
|
t
|
|
22
27
|
} = useTranslation();
|
|
23
28
|
const textInputRef = useRef();
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (error) {
|
|
31
|
+
setIsSubmitting(false);
|
|
32
|
+
}
|
|
33
|
+
}, [error]);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!isVisible) {
|
|
36
|
+
setIsSubmitting(false);
|
|
37
|
+
setLastSubmittedName('');
|
|
38
|
+
}
|
|
39
|
+
}, [isVisible]);
|
|
24
40
|
const onCreate = () => {
|
|
41
|
+
const trimmedName = name.trim();
|
|
42
|
+
|
|
43
|
+
// Guard against multiple submissions
|
|
44
|
+
if (isSubmitting || isLoading || trimmedName.length === 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Guard against duplicate submissions of the same name
|
|
49
|
+
if (trimmedName === lastSubmittedName) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
setIsSubmitting(true);
|
|
53
|
+
setLastSubmittedName(trimmedName);
|
|
25
54
|
createNewMenuGroup({
|
|
26
|
-
name:
|
|
55
|
+
name: trimmedName
|
|
27
56
|
});
|
|
28
57
|
setName('');
|
|
29
58
|
};
|
|
@@ -59,10 +88,11 @@ export const CreateBusinessBottomSheet = /*#__PURE__*/forwardRef(({
|
|
|
59
88
|
justifyContent: "flex-end"
|
|
60
89
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
61
90
|
mode: "text",
|
|
62
|
-
onPress: close
|
|
91
|
+
onPress: close,
|
|
92
|
+
disabled: isSubmitting || isLoading
|
|
63
93
|
}, t('commons.cancel')), /*#__PURE__*/React.createElement(Button, {
|
|
64
|
-
loading: isLoading,
|
|
65
|
-
disabled: isLoading || name.trim().length === 0,
|
|
94
|
+
loading: isLoading || isSubmitting,
|
|
95
|
+
disabled: isLoading || isSubmitting || name.trim().length === 0,
|
|
66
96
|
mode: "text",
|
|
67
97
|
onPress: onCreate
|
|
68
98
|
}, t('commons.create'))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useEffect","useRef","useState","Text","Button","KeyboardAvoidingView","TextInput","View","BottomSheet","BottomSheetTextInput","useTranslation","useCreateBusiness","CreateBusinessBottomSheet","isVisible","close","ref","name","setName","mutate","createNewMenuGroup","isLoading","onSuccess","t","textInputRef","onCreate","trim","current","focus","createElement","pressBehavior","px","bg","flex","pt","variant","render","props","_extends","mt","mode","onChangeText","value","label","flexDirection","justifyContent","onPress","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useEffect","useRef","useState","Text","Button","KeyboardAvoidingView","TextInput","View","BottomSheet","BottomSheetTextInput","useTranslation","useCreateBusiness","CreateBusinessBottomSheet","isVisible","close","ref","name","setName","isSubmitting","setIsSubmitting","lastSubmittedName","setLastSubmittedName","mutate","createNewMenuGroup","isLoading","error","onSuccess","t","textInputRef","onCreate","trimmedName","trim","length","current","focus","createElement","pressBehavior","px","bg","flex","pt","variant","render","props","_extends","mt","mode","onChangeText","value","label","flexDirection","justifyContent","onPress","disabled","loading"],"sourceRoot":"../../../../src","sources":["screens/SelectBusiness/CreateBusinessBottomSheet.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/queryKeys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/queryKeys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;CAUrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthenticateRequests.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAuthenticateRequests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAuthenticateRequests.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useAuthenticateRequests.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,uBAAuB,aACxB,MAAM,QAAQ,MAAM,GAAG,IAAI,CAAC,SA0DvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateBusiness.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCreateBusiness.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;eAAgC,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"useCreateBusiness.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCreateBusiness.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;eAAgC,MAAM,IAAI;oFAcvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateBusinessBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SelectBusiness/CreateBusinessBottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAavE,KAAK,8BAA8B,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"CreateBusinessBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SelectBusiness/CreateBusinessBottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAavE,KAAK,8BAA8B,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,gGAoGrC,CAAC"}
|
package/package.json
CHANGED
package/src/hooks/queryKeys.ts
CHANGED
|
@@ -4,6 +4,20 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
import Config from 'react-native-config';
|
|
5
5
|
import { Alert } from '../components';
|
|
6
6
|
|
|
7
|
+
const logApiCall = ({
|
|
8
|
+
url,
|
|
9
|
+
}: {
|
|
10
|
+
method: string;
|
|
11
|
+
url: string;
|
|
12
|
+
data?: any;
|
|
13
|
+
status?: number;
|
|
14
|
+
error?: string;
|
|
15
|
+
}) => {
|
|
16
|
+
if (__DEV__) {
|
|
17
|
+
console.log('🚗API:', url);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
7
21
|
export const useAuthenticateRequests = (
|
|
8
22
|
getToken: () => Promise<string | null>
|
|
9
23
|
) => {
|
|
@@ -18,6 +32,12 @@ export const useAuthenticateRequests = (
|
|
|
18
32
|
}
|
|
19
33
|
config.headers.Authorization = `Bearer ${token}`;
|
|
20
34
|
}
|
|
35
|
+
|
|
36
|
+
logApiCall({
|
|
37
|
+
method: config.method?.toUpperCase() || 'GET',
|
|
38
|
+
url: config?.baseURL + (config?.url ?? ''),
|
|
39
|
+
data: config.data,
|
|
40
|
+
});
|
|
21
41
|
return config;
|
|
22
42
|
}
|
|
23
43
|
);
|
|
@@ -19,17 +19,54 @@ type CreateBusinessBottomSheetProps = {
|
|
|
19
19
|
export const CreateBusinessBottomSheet = forwardRef(
|
|
20
20
|
({ isVisible, close }: CreateBusinessBottomSheetProps, ref) => {
|
|
21
21
|
const [name, setName] = useState('');
|
|
22
|
-
const
|
|
22
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
23
|
+
const [lastSubmittedName, setLastSubmittedName] = useState('');
|
|
24
|
+
|
|
25
|
+
const {
|
|
26
|
+
mutate: createNewMenuGroup,
|
|
27
|
+
isLoading,
|
|
28
|
+
error,
|
|
29
|
+
} = useCreateBusiness({
|
|
23
30
|
onSuccess: () => {
|
|
31
|
+
setIsSubmitting(false);
|
|
32
|
+
setLastSubmittedName('');
|
|
24
33
|
close();
|
|
25
34
|
},
|
|
26
35
|
});
|
|
27
36
|
const { t } = useTranslation();
|
|
28
|
-
const textInputRef = useRef<
|
|
37
|
+
const textInputRef = useRef<any>();
|
|
38
|
+
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (error) {
|
|
41
|
+
setIsSubmitting(false);
|
|
42
|
+
}
|
|
43
|
+
}, [error]);
|
|
44
|
+
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (!isVisible) {
|
|
47
|
+
setIsSubmitting(false);
|
|
48
|
+
setLastSubmittedName('');
|
|
49
|
+
}
|
|
50
|
+
}, [isVisible]);
|
|
29
51
|
|
|
30
52
|
const onCreate = () => {
|
|
53
|
+
const trimmedName = name.trim();
|
|
54
|
+
|
|
55
|
+
// Guard against multiple submissions
|
|
56
|
+
if (isSubmitting || isLoading || trimmedName.length === 0) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Guard against duplicate submissions of the same name
|
|
61
|
+
if (trimmedName === lastSubmittedName) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
setIsSubmitting(true);
|
|
66
|
+
setLastSubmittedName(trimmedName);
|
|
67
|
+
|
|
31
68
|
createNewMenuGroup({
|
|
32
|
-
name:
|
|
69
|
+
name: trimmedName,
|
|
33
70
|
});
|
|
34
71
|
setName('');
|
|
35
72
|
};
|
|
@@ -58,12 +95,16 @@ export const CreateBusinessBottomSheet = forwardRef(
|
|
|
58
95
|
label={t('commons.businessName')}
|
|
59
96
|
/>
|
|
60
97
|
<View mt="16" flexDirection="row" justifyContent="flex-end">
|
|
61
|
-
<Button
|
|
98
|
+
<Button
|
|
99
|
+
mode="text"
|
|
100
|
+
onPress={close}
|
|
101
|
+
disabled={isSubmitting || isLoading}
|
|
102
|
+
>
|
|
62
103
|
{t('commons.cancel')}
|
|
63
104
|
</Button>
|
|
64
105
|
<Button
|
|
65
|
-
loading={isLoading}
|
|
66
|
-
disabled={isLoading || name.trim().length === 0}
|
|
106
|
+
loading={isLoading || isSubmitting}
|
|
107
|
+
disabled={isLoading || isSubmitting || name.trim().length === 0}
|
|
67
108
|
mode="text"
|
|
68
109
|
onPress={onCreate}
|
|
69
110
|
>
|