@os1-platform/dispatch-mobile 2.1.24 → 2.1.26

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.
Files changed (51) hide show
  1. package/lib/commonjs/components/executiontasks/collectPayment/CollectPaymentSchema.js +1 -0
  2. package/lib/commonjs/components/executiontasks/collectPayment/CollectPaymentSchema.js.map +1 -1
  3. package/lib/commonjs/components/executiontasks/collectPayment/PaymentStyles.js +21 -0
  4. package/lib/commonjs/components/executiontasks/collectPayment/PaymentStyles.js.map +1 -1
  5. package/lib/commonjs/components/executiontasks/collectPayment/PaymentUtils.js +17 -1
  6. package/lib/commonjs/components/executiontasks/collectPayment/PaymentUtils.js.map +1 -1
  7. package/lib/commonjs/components/executiontasks/collectPayment/components/CompletePayment.js +11 -14
  8. package/lib/commonjs/components/executiontasks/collectPayment/components/CompletePayment.js.map +1 -1
  9. package/lib/commonjs/components/executiontasks/collectPayment/components/InitPayment.js.map +1 -1
  10. package/lib/commonjs/components/executiontasks/collectPayment/components/ProcessPayment.js +183 -36
  11. package/lib/commonjs/components/executiontasks/collectPayment/components/ProcessPayment.js.map +1 -1
  12. package/lib/commonjs/components/widgets/ProgressDialog.js +1 -1
  13. package/lib/commonjs/components/widgets/ProgressDialog.js.map +1 -1
  14. package/lib/commonjs/components/widgets/SnackBarCustom.js +44 -21
  15. package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
  16. package/lib/commonjs/icons/blurQRCode.png +0 -0
  17. package/lib/commonjs/ui/screens/CollectPaymentScreen.js +6 -2
  18. package/lib/commonjs/ui/screens/CollectPaymentScreen.js.map +1 -1
  19. package/lib/module/components/executiontasks/collectPayment/CollectPaymentSchema.js +2 -0
  20. package/lib/module/components/executiontasks/collectPayment/CollectPaymentSchema.js.map +1 -1
  21. package/lib/module/components/executiontasks/collectPayment/PaymentStyles.js +21 -0
  22. package/lib/module/components/executiontasks/collectPayment/PaymentStyles.js.map +1 -1
  23. package/lib/module/components/executiontasks/collectPayment/PaymentUtils.js +14 -0
  24. package/lib/module/components/executiontasks/collectPayment/PaymentUtils.js.map +1 -1
  25. package/lib/module/components/executiontasks/collectPayment/components/CompletePayment.js +11 -14
  26. package/lib/module/components/executiontasks/collectPayment/components/CompletePayment.js.map +1 -1
  27. package/lib/module/components/executiontasks/collectPayment/components/InitPayment.js.map +1 -1
  28. package/lib/module/components/executiontasks/collectPayment/components/ProcessPayment.js +187 -38
  29. package/lib/module/components/executiontasks/collectPayment/components/ProcessPayment.js.map +1 -1
  30. package/lib/module/components/widgets/ProgressDialog.js +1 -1
  31. package/lib/module/components/widgets/ProgressDialog.js.map +1 -1
  32. package/lib/module/components/widgets/SnackBarCustom.js +43 -21
  33. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  34. package/lib/module/icons/blurQRCode.png +0 -0
  35. package/lib/module/ui/screens/CollectPaymentScreen.js +6 -2
  36. package/lib/module/ui/screens/CollectPaymentScreen.js.map +1 -1
  37. package/lib/typescript/components/executiontasks/collectPayment/CollectPaymentSchema.d.ts +1 -0
  38. package/lib/typescript/components/executiontasks/collectPayment/PaymentStyles.d.ts +20 -0
  39. package/lib/typescript/components/executiontasks/collectPayment/PaymentUtils.d.ts +1 -0
  40. package/lib/typescript/components/widgets/SnackBarCustom.d.ts +2 -1
  41. package/package.json +4 -4
  42. package/src/components/executiontasks/collectPayment/CollectPaymentSchema.ts +2 -0
  43. package/src/components/executiontasks/collectPayment/PaymentStyles.ts +37 -12
  44. package/src/components/executiontasks/collectPayment/PaymentUtils.ts +17 -0
  45. package/src/components/executiontasks/collectPayment/components/CompletePayment.tsx +19 -18
  46. package/src/components/executiontasks/collectPayment/components/InitPayment.tsx +5 -4
  47. package/src/components/executiontasks/collectPayment/components/ProcessPayment.tsx +268 -91
  48. package/src/components/widgets/ProgressDialog.tsx +2 -0
  49. package/src/components/widgets/SnackBarCustom.tsx +59 -19
  50. package/src/icons/blurQRCode.png +0 -0
  51. package/src/ui/screens/CollectPaymentScreen.tsx +6 -3
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  import React from 'react';
2
3
  import { Animated, Platform, SafeAreaView, StyleSheet, Text, View } from 'react-native';
3
4
  import { Surface, withTheme } from 'react-native-paper';
@@ -10,6 +11,7 @@ export let SnackBarType = /*#__PURE__*/function (SnackBarType) {
10
11
  SnackBarType[SnackBarType["SUCCESS"] = 0] = "SUCCESS";
11
12
  SnackBarType[SnackBarType["FAILURE"] = 1] = "FAILURE";
12
13
  SnackBarType[SnackBarType["WARNING"] = 2] = "WARNING";
14
+ SnackBarType[SnackBarType["PAYMENT_WARNING"] = 3] = "PAYMENT_WARNING";
13
15
  return SnackBarType;
14
16
  }({});
15
17
  const SnackbarCustom = ({
@@ -25,7 +27,7 @@ const SnackbarCustom = ({
25
27
  const {
26
28
  current: opacity
27
29
  } = React.useRef(new Animated.Value(0.0));
28
- const [hidden, setHidden] = React.useState(!visible);
30
+ const [hidden, setHidden] = React.useState(true);
29
31
  const hideTimeout = React.useRef(undefined);
30
32
  const {
31
33
  scale
@@ -93,28 +95,35 @@ const SnackbarCustom = ({
93
95
  outputRange: [0.9, 1]
94
96
  }) : 1
95
97
  }]
96
- }, {
97
- backgroundColor: colors.onSurface
98
- }]
98
+ }
99
+ // { backgroundColor: colors.onSurface },
100
+ ]
99
101
  }, /*#__PURE__*/React.createElement(View, {
100
- style: type && type === SnackBarType.FAILURE ? styles.fail : type && type === SnackBarType.WARNING ? styles.warn : styles.main
102
+ style: type && type === SnackBarType.FAILURE ? styles.fail : type && type === SnackBarType.WARNING ? styles.warn : type && type === SnackBarType.PAYMENT_WARNING ? styles.paymentWarn : styles.main
101
103
  }, type && type === SnackBarType.FAILURE ? /*#__PURE__*/React.createElement(AntDesign, {
102
104
  name: "exclamationcircleo",
103
105
  size: 20,
104
106
  color: "white"
107
+ }) : type && type === SnackBarType.PAYMENT_WARNING ? /*#__PURE__*/React.createElement(AntDesign, {
108
+ name: "infocirlceo",
109
+ size: 20,
110
+ color: "#D97706"
105
111
  }) : /*#__PURE__*/React.createElement(AntDesign, {
106
112
  name: "checkcircleo",
107
113
  size: 20,
108
114
  color: "white"
109
115
  }), /*#__PURE__*/React.createElement(Text, {
110
- style: styles.messageStyle
116
+ style: [styles.messageStyle, type === SnackBarType.PAYMENT_WARNING && {
117
+ color: '#B45309'
118
+ }]
111
119
  }, message), /*#__PURE__*/React.createElement(AntDesign, {
112
120
  name: "close",
113
- size: 16,
114
- color: "white",
121
+ size: 20,
122
+ color: type && type === SnackBarType.PAYMENT_WARNING ? '#3D445C' : 'white',
115
123
  onPress: () => {
116
124
  setHidden(true);
117
- const cta = "Close";
125
+ onDismiss();
126
+ const cta = 'Close';
118
127
  fireEventWithScreenName({
119
128
  severityLevel: SeverityLevelValue.LOG,
120
129
  eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,
@@ -137,37 +146,50 @@ const styles = StyleSheet.create({
137
146
  justifyContent: 'space-between',
138
147
  alignItems: 'center',
139
148
  margin: 8,
140
- borderRadius: 4
149
+ borderRadius: 8
141
150
  },
142
151
  main: {
143
- padding: 16,
152
+ padding: 12,
144
153
  flexDirection: 'row',
145
154
  alignItems: 'center',
146
155
  backgroundColor: '#059669',
147
156
  flex: 1,
148
- borderRadius: 4
157
+ borderRadius: 8
149
158
  },
150
159
  fail: {
151
- padding: 16,
160
+ padding: 12,
152
161
  flexDirection: 'row',
153
162
  alignItems: 'center',
154
163
  backgroundColor: '#DC2626',
155
- flex: 1
164
+ flex: 1,
165
+ borderRadius: 8
156
166
  },
157
167
  warn: {
158
- padding: 16,
168
+ padding: 12,
159
169
  flexDirection: 'row',
160
170
  alignItems: 'center',
161
171
  backgroundColor: '#D97706',
162
- flex: 1
172
+ flex: 1,
173
+ borderRadius: 8
163
174
  },
164
- messageStyle: {
175
+ paymentWarn: {
176
+ padding: 16,
177
+ flexDirection: 'row',
178
+ alignItems: 'center',
179
+ backgroundColor: '#FFFBEB',
165
180
  flex: 1,
166
- marginStart: 20,
167
- marginEnd: 20,
181
+ borderRadius: 8
182
+ },
183
+ messageStyle: {
184
+ fontSize: 14,
185
+ marginStart: 8,
186
+ marginEnd: 8,
187
+ width: '80%',
168
188
  color: '#ffffff',
169
- fontWeight: '600',
170
- fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_600SemiBold : 'IBMPlexSans-SemiBold'
189
+ flex: 1,
190
+ fontWeight: '400',
191
+ lineHeight: 20,
192
+ fontFamily: Platform.OS === 'android' ? Fonts.IBMPlexSans_400Regular : 'IBMPlexSans_400Regular'
171
193
  }
172
194
  });
173
195
  export default withTheme(SnackbarCustom);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Platform","SafeAreaView","StyleSheet","Text","View","Surface","withTheme","AntDesign","Fonts","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","DURATION_MEDIUM","SnackBarType","SnackbarCustom","visible","duration","onDismiss","message","theme","type","customBottom","customTop","current","opacity","useRef","Value","hidden","setHidden","useState","hideTimeout","undefined","scale","animation","useEffect","clearTimeout","useLayoutEffect","timing","toValue","useNativeDriver","start","finished","isInfinity","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","setTimeout","colors","roundness","createElement","pointerEvents","style","styles","wrapper","bottom","top","accessibilityLiveRegion","container","borderRadius","transform","interpolate","inputRange","outputRange","backgroundColor","onSurface","FAILURE","fail","WARNING","warn","main","name","size","color","messageStyle","onPress","cta","severityLevel","LOG","eventName","BUTTON_CLICKED","screenName","SCAN_BAR_CUSTOM_SCREEN","create","position","width","zIndex","elevation","flexDirection","justifyContent","alignItems","margin","padding","flex","marginStart","marginEnd","fontWeight","fontFamily","OS","IBMPlexSans_600SemiBold"],"sources":["SnackBarCustom.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Animated,\n Platform,\n SafeAreaView,\n StyleProp,\n StyleSheet,\n Text,\n View,\n ViewStyle,\n} from 'react-native';\nimport { Surface, withTheme } from 'react-native-paper';\nimport { AntDesign } from '@expo/vector-icons';\nimport { Fonts } from '../../styles/executionTasks/CommonStyles';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';\n\nexport interface SnackbarProps {\n visible: boolean;\n duration?: number;\n /**\n * Callback called when Snackbar is dismissed. The `visible` prop needs to be updated when this is called.\n */\n onDismiss: () => void;\n /**\n * Text content of the Snackbar.\n */\n message: string;\n type?: SnackBarType;\n theme: ReactNativePaper.Theme;\n customBottom?: number;\n customTop?: number;\n}\nconst DURATION_MEDIUM = 3000;\n\nexport enum SnackBarType {\n SUCCESS,\n FAILURE,\n WARNING,\n}\n\nconst SnackbarCustom = ({\n visible,\n duration = DURATION_MEDIUM,\n onDismiss,\n message,\n theme,\n type,\n customBottom = 110,\n customTop,\n}: SnackbarProps) => {\n const { current: opacity } = React.useRef<Animated.Value>(\n new Animated.Value(0.0)\n );\n const [hidden, setHidden] = React.useState<boolean>(!visible);\n\n const hideTimeout = React.useRef<NodeJS.Timeout | undefined>(undefined);\n const { scale } = theme.animation;\n\n React.useEffect(() => {\n return () => {\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n };\n }, []);\n\n React.useLayoutEffect(() => {\n if (visible) {\n // show\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n setHidden(false);\n Animated.timing(opacity, {\n toValue: 1,\n duration: 200 * scale,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n const isInfinity =\n duration === Number.POSITIVE_INFINITY ||\n duration === Number.NEGATIVE_INFINITY;\n\n if (finished && !isInfinity) {\n hideTimeout.current = setTimeout(\n onDismiss,\n duration\n ) as unknown as NodeJS.Timeout;\n }\n }\n });\n } else {\n // hide\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n\n Animated.timing(opacity, {\n toValue: 0,\n duration: 100 * scale,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) setHidden(true);\n });\n }\n }, [visible, duration, opacity, scale, onDismiss]);\n\n const { colors, roundness } = theme;\n\n if (hidden) return null;\n\n if (!message) return null;\n\n return (\n <SafeAreaView\n pointerEvents=\"box-none\"\n style={[\n styles.wrapper,\n { bottom: customBottom },\n customTop !== undefined ? { top: customTop } : {},\n ]}\n >\n <Surface\n pointerEvents=\"box-none\"\n accessibilityLiveRegion=\"polite\"\n style={\n [\n styles.container,\n {\n borderRadius: roundness,\n opacity: opacity,\n transform: [\n {\n scale: visible\n ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [0.9, 1],\n })\n : 1,\n },\n ],\n },\n { backgroundColor: colors.onSurface },\n ] as StyleProp<ViewStyle>\n }\n >\n <View\n style={\n type && type === SnackBarType.FAILURE\n ? styles.fail\n : type && type === SnackBarType.WARNING\n ? styles.warn\n : styles.main\n }\n >\n {type && type === SnackBarType.FAILURE ? (\n <AntDesign name=\"exclamationcircleo\" size={20} color=\"white\" />\n ) : (\n <AntDesign name=\"checkcircleo\" size={20} color=\"white\" />\n )}\n <Text style={styles.messageStyle}>{message}</Text>\n <AntDesign\n name=\"close\"\n size={16}\n color=\"white\"\n onPress={() => {\n setHidden(true);\n const cta = \"Close\";\n fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.BUTTON_CLICKED, screenName: ScreenNameSdkConstants.SCAN_BAR_CUSTOM_SCREEN, cta: cta });\n }}\n />\n </View>\n </Surface>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n wrapper: {\n position: 'absolute',\n bottom: 110,\n width: '100%',\n zIndex: 1000,\n },\n container: {\n elevation: 6,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: 8,\n borderRadius: 4,\n },\n main: {\n padding: 16,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#059669',\n flex: 1,\n borderRadius: 4,\n },\n fail: {\n padding: 16,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#DC2626',\n flex: 1,\n },\n warn: {\n padding: 16,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#D97706',\n flex: 1,\n },\n messageStyle: {\n flex: 1,\n marginStart: 20,\n marginEnd: 20,\n color: '#ffffff',\n fontWeight: '600',\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_600SemiBold\n : 'IBMPlexSans-SemiBold',\n },\n});\n\nexport default withTheme(SnackbarCustom);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,QAAQ,EACRC,QAAQ,EACRC,YAAY,EAEZC,UAAU,EACVC,IAAI,EACJC,IAAI,QAEC,cAAc;AACrB,SAASC,OAAO,EAAEC,SAAS,QAAQ,oBAAoB;AACvD,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,KAAK,QAAQ,0CAA0C;AAChE,SAASC,sBAAsB,EAAEC,2BAA2B,EAAEC,kBAAkB,QAAQ,2CAA2C;AACnI,SAASC,uBAAuB,QAAQ,6CAA6C;AAkBrF,MAAMC,eAAe,GAAG,IAAI;AAE5B,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAMxB,MAAMC,cAAc,GAAGA,CAAC;EACtBC,OAAO;EACPC,QAAQ,GAAGJ,eAAe;EAC1BK,SAAS;EACTC,OAAO;EACPC,KAAK;EACLC,IAAI;EACJC,YAAY,GAAG,GAAG;EAClBC;AACa,CAAC,KAAK;EACnB,MAAM;IAAEC,OAAO,EAAEC;EAAQ,CAAC,GAAG3B,KAAK,CAAC4B,MAAM,CACvC,IAAI3B,QAAQ,CAAC4B,KAAK,CAAC,GAAG,CACxB,CAAC;EACD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG/B,KAAK,CAACgC,QAAQ,CAAU,CAACd,OAAO,CAAC;EAE7D,MAAMe,WAAW,GAAGjC,KAAK,CAAC4B,MAAM,CAA6BM,SAAS,CAAC;EACvE,MAAM;IAAEC;EAAM,CAAC,GAAGb,KAAK,CAACc,SAAS;EAEjCpC,KAAK,CAACqC,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,IAAIJ,WAAW,CAACP,OAAO,EAAEY,YAAY,CAACL,WAAW,CAACP,OAAO,CAAC;IAC5D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN1B,KAAK,CAACuC,eAAe,CAAC,MAAM;IAC1B,IAAIrB,OAAO,EAAE;MACX;MACA,IAAIe,WAAW,CAACP,OAAO,EAAEY,YAAY,CAACL,WAAW,CAACP,OAAO,CAAC;MAC1DK,SAAS,CAAC,KAAK,CAAC;MAChB9B,QAAQ,CAACuC,MAAM,CAACb,OAAO,EAAE;QACvBc,OAAO,EAAE,CAAC;QACVtB,QAAQ,EAAE,GAAG,GAAGgB,KAAK;QACrBO,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;QAAEC;MAAS,CAAC,KAAK;QACzB,IAAIA,QAAQ,EAAE;UACZ,MAAMC,UAAU,GACd1B,QAAQ,KAAK2B,MAAM,CAACC,iBAAiB,IACrC5B,QAAQ,KAAK2B,MAAM,CAACE,iBAAiB;UAEvC,IAAIJ,QAAQ,IAAI,CAACC,UAAU,EAAE;YAC3BZ,WAAW,CAACP,OAAO,GAAGuB,UAAU,CAC9B7B,SAAS,EACTD,QACF,CAA8B;UAChC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,IAAIc,WAAW,CAACP,OAAO,EAAEY,YAAY,CAACL,WAAW,CAACP,OAAO,CAAC;MAE1DzB,QAAQ,CAACuC,MAAM,CAACb,OAAO,EAAE;QACvBc,OAAO,EAAE,CAAC;QACVtB,QAAQ,EAAE,GAAG,GAAGgB,KAAK;QACrBO,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;QAAEC;MAAS,CAAC,KAAK;QACzB,IAAIA,QAAQ,EAAEb,SAAS,CAAC,IAAI,CAAC;MAC/B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACb,OAAO,EAAEC,QAAQ,EAAEQ,OAAO,EAAEQ,KAAK,EAAEf,SAAS,CAAC,CAAC;EAElD,MAAM;IAAE8B,MAAM;IAAEC;EAAU,CAAC,GAAG7B,KAAK;EAEnC,IAAIQ,MAAM,EAAE,OAAO,IAAI;EAEvB,IAAI,CAACT,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACErB,KAAA,CAAAoD,aAAA,CAACjD,YAAY;IACXkD,aAAa,EAAC,UAAU;IACxBC,KAAK,EAAE,CACLC,MAAM,CAACC,OAAO,EACd;MAAEC,MAAM,EAAEjC;IAAa,CAAC,EACxBC,SAAS,KAAKS,SAAS,GAAG;MAAEwB,GAAG,EAAEjC;IAAU,CAAC,GAAG,CAAC,CAAC;EACjD,gBAEFzB,KAAA,CAAAoD,aAAA,CAAC7C,OAAO;IACN8C,aAAa,EAAC,UAAU;IACxBM,uBAAuB,EAAC,QAAQ;IAChCL,KAAK,EACH,CACEC,MAAM,CAACK,SAAS,EAChB;MACEC,YAAY,EAAEV,SAAS;MACvBxB,OAAO,EAAEA,OAAO;MAChBmC,SAAS,EAAE,CACT;QACE3B,KAAK,EAAEjB,OAAO,GACVS,OAAO,CAACoC,WAAW,CAAC;UAClBC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UAClBC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC,CAAC,GACF;MACN,CAAC;IAEL,CAAC,EACD;MAAEC,eAAe,EAAEhB,MAAM,CAACiB;IAAU,CAAC;EAExC,gBAEDnE,KAAA,CAAAoD,aAAA,CAAC9C,IAAI;IACHgD,KAAK,EACH/B,IAAI,IAAIA,IAAI,KAAKP,YAAY,CAACoD,OAAO,GACjCb,MAAM,CAACc,IAAI,GACX9C,IAAI,IAAIA,IAAI,KAAKP,YAAY,CAACsD,OAAO,GACrCf,MAAM,CAACgB,IAAI,GACXhB,MAAM,CAACiB;EACZ,GAEAjD,IAAI,IAAIA,IAAI,KAAKP,YAAY,CAACoD,OAAO,gBACpCpE,KAAA,CAAAoD,aAAA,CAAC3C,SAAS;IAACgE,IAAI,EAAC,oBAAoB;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAO,CAAE,CAAC,gBAE/D3E,KAAA,CAAAoD,aAAA,CAAC3C,SAAS;IAACgE,IAAI,EAAC,cAAc;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAO,CAAE,CACzD,eACD3E,KAAA,CAAAoD,aAAA,CAAC/C,IAAI;IAACiD,KAAK,EAAEC,MAAM,CAACqB;EAAa,GAAEvD,OAAc,CAAC,eAClDrB,KAAA,CAAAoD,aAAA,CAAC3C,SAAS;IACRgE,IAAI,EAAC,OAAO;IACZC,IAAI,EAAE,EAAG;IACTC,KAAK,EAAC,OAAO;IACbE,OAAO,EAAEA,CAAA,KAAM;MACb9C,SAAS,CAAC,IAAI,CAAC;MACf,MAAM+C,GAAG,GAAG,OAAO;MACnBhE,uBAAuB,CAAC;QAAEiE,aAAa,EAAElE,kBAAkB,CAACmE,GAAG;QAAEC,SAAS,EAAErE,2BAA2B,CAACsE,cAAc;QAAEC,UAAU,EAAExE,sBAAsB,CAACyE,sBAAsB;QAAEN,GAAG,EAAEA;MAAI,CAAC,CAAC;IAChM;EAAE,CACH,CACG,CACC,CACG,CAAC;AAEnB,CAAC;AAED,MAAMvB,MAAM,GAAGnD,UAAU,CAACiF,MAAM,CAAC;EAC/B7B,OAAO,EAAE;IACP8B,QAAQ,EAAE,UAAU;IACpB7B,MAAM,EAAE,GAAG;IACX8B,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACD5B,SAAS,EAAE;IACT6B,SAAS,EAAE,CAAC;IACZC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,CAAC;IACThC,YAAY,EAAE;EAChB,CAAC;EACDW,IAAI,EAAE;IACJsB,OAAO,EAAE,EAAE;IACXJ,aAAa,EAAE,KAAK;IACpBE,UAAU,EAAE,QAAQ;IACpB1B,eAAe,EAAE,SAAS;IAC1B6B,IAAI,EAAE,CAAC;IACPlC,YAAY,EAAE;EAChB,CAAC;EACDQ,IAAI,EAAE;IACJyB,OAAO,EAAE,EAAE;IACXJ,aAAa,EAAE,KAAK;IACpBE,UAAU,EAAE,QAAQ;IACpB1B,eAAe,EAAE,SAAS;IAC1B6B,IAAI,EAAE;EACR,CAAC;EACDxB,IAAI,EAAE;IACJuB,OAAO,EAAE,EAAE;IACXJ,aAAa,EAAE,KAAK;IACpBE,UAAU,EAAE,QAAQ;IACpB1B,eAAe,EAAE,SAAS;IAC1B6B,IAAI,EAAE;EACR,CAAC;EACDnB,YAAY,EAAE;IACZmB,IAAI,EAAE,CAAC;IACPC,WAAW,EAAE,EAAE;IACfC,SAAS,EAAE,EAAE;IACbtB,KAAK,EAAE,SAAS;IAChBuB,UAAU,EAAE,KAAK;IACjBC,UAAU,EACRjG,QAAQ,CAACkG,EAAE,KAAK,SAAS,GACrB1F,KAAK,CAAC2F,uBAAuB,GAC7B;EACR;AACF,CAAC,CAAC;AAEF,eAAe7F,SAAS,CAACS,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Animated","Platform","SafeAreaView","StyleSheet","Text","View","Surface","withTheme","AntDesign","Fonts","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","DURATION_MEDIUM","SnackBarType","SnackbarCustom","visible","duration","onDismiss","message","theme","type","customBottom","customTop","current","opacity","useRef","Value","hidden","setHidden","useState","hideTimeout","undefined","scale","animation","useEffect","clearTimeout","useLayoutEffect","timing","toValue","useNativeDriver","start","finished","isInfinity","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","setTimeout","colors","roundness","createElement","pointerEvents","style","styles","wrapper","bottom","top","accessibilityLiveRegion","container","borderRadius","transform","interpolate","inputRange","outputRange","FAILURE","fail","WARNING","warn","PAYMENT_WARNING","paymentWarn","main","name","size","color","messageStyle","onPress","cta","severityLevel","LOG","eventName","BUTTON_CLICKED","screenName","SCAN_BAR_CUSTOM_SCREEN","create","position","width","zIndex","elevation","flexDirection","justifyContent","alignItems","margin","padding","backgroundColor","flex","fontSize","marginStart","marginEnd","fontWeight","lineHeight","fontFamily","OS","IBMPlexSans_400Regular"],"sources":["SnackBarCustom.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport {\n Animated,\n Platform,\n SafeAreaView,\n StyleProp,\n StyleSheet,\n Text,\n View,\n ViewStyle,\n} from 'react-native';\nimport { Surface, withTheme } from 'react-native-paper';\nimport { AntDesign } from '@expo/vector-icons';\nimport { Fonts } from '../../styles/executionTasks/CommonStyles';\nimport {\n ScreenNameSdkConstants,\n SentryEventNameSdkConstants,\n SeverityLevelValue,\n} from '../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';\n\nexport interface SnackbarProps {\n visible: boolean;\n duration?: number;\n /**\n * Callback called when Snackbar is dismissed. The `visible` prop needs to be updated when this is called.\n */\n onDismiss: () => void;\n /**\n * Text content of the Snackbar.\n */\n message: string;\n type?: SnackBarType;\n theme: ReactNativePaper.Theme;\n customBottom?: number;\n customTop?: number;\n}\nconst DURATION_MEDIUM = 3000;\n\nexport enum SnackBarType {\n SUCCESS,\n FAILURE,\n WARNING,\n PAYMENT_WARNING,\n}\n\nconst SnackbarCustom = ({\n visible,\n duration = DURATION_MEDIUM,\n onDismiss,\n message,\n theme,\n type,\n customBottom = 110,\n customTop,\n}: SnackbarProps) => {\n const { current: opacity } = React.useRef<Animated.Value>(\n new Animated.Value(0.0)\n );\n const [hidden, setHidden] = React.useState<boolean>(true);\n\n const hideTimeout = React.useRef<NodeJS.Timeout | undefined>(undefined);\n const { scale } = theme.animation;\n\n React.useEffect(() => {\n return () => {\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n };\n }, []);\n\n React.useLayoutEffect(() => {\n if (visible) {\n // show\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n setHidden(false);\n Animated.timing(opacity, {\n toValue: 1,\n duration: 200 * scale,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) {\n const isInfinity =\n duration === Number.POSITIVE_INFINITY ||\n duration === Number.NEGATIVE_INFINITY;\n\n if (finished && !isInfinity) {\n hideTimeout.current = setTimeout(\n onDismiss,\n duration\n ) as unknown as NodeJS.Timeout;\n }\n }\n });\n } else {\n // hide\n if (hideTimeout.current) clearTimeout(hideTimeout.current);\n\n Animated.timing(opacity, {\n toValue: 0,\n duration: 100 * scale,\n useNativeDriver: true,\n }).start(({ finished }) => {\n if (finished) setHidden(true);\n });\n }\n }, [visible, duration, opacity, scale, onDismiss]);\n\n const { colors, roundness } = theme;\n\n if (hidden) return null;\n\n if (!message) return null;\n\n return (\n <SafeAreaView\n pointerEvents=\"box-none\"\n style={[\n styles.wrapper,\n { bottom: customBottom },\n customTop !== undefined ? { top: customTop } : {},\n ]}\n >\n <Surface\n pointerEvents=\"box-none\"\n accessibilityLiveRegion=\"polite\"\n style={\n [\n styles.container,\n {\n borderRadius: roundness,\n opacity: opacity,\n transform: [\n {\n scale: visible\n ? opacity.interpolate({\n inputRange: [0, 1],\n outputRange: [0.9, 1],\n })\n : 1,\n },\n ],\n },\n // { backgroundColor: colors.onSurface },\n ] as StyleProp<ViewStyle>\n }\n >\n <View\n style={\n type && type === SnackBarType.FAILURE\n ? styles.fail\n : type && type === SnackBarType.WARNING\n ? styles.warn\n : type && type === SnackBarType.PAYMENT_WARNING\n ? styles.paymentWarn\n : styles.main\n }\n >\n {type && type === SnackBarType.FAILURE ? (\n <AntDesign name=\"exclamationcircleo\" size={20} color=\"white\" />\n ) : type && type === SnackBarType.PAYMENT_WARNING ? (\n <AntDesign name=\"infocirlceo\" size={20} color=\"#D97706\" />\n ) : (\n <AntDesign name=\"checkcircleo\" size={20} color=\"white\" />\n )}\n <Text\n style={[\n styles.messageStyle,\n type === SnackBarType.PAYMENT_WARNING && { color: '#B45309' },\n ]}\n >\n {message}\n </Text>\n <AntDesign\n name=\"close\"\n size={20}\n color={\n type && type === SnackBarType.PAYMENT_WARNING\n ? '#3D445C'\n : 'white'\n }\n onPress={() => {\n setHidden(true);\n onDismiss();\n const cta = 'Close';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.BUTTON_CLICKED,\n screenName: ScreenNameSdkConstants.SCAN_BAR_CUSTOM_SCREEN,\n cta: cta,\n });\n }}\n />\n </View>\n </Surface>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n wrapper: {\n position: 'absolute',\n bottom: 110,\n width: '100%',\n zIndex: 1000,\n },\n container: {\n elevation: 6,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: 8,\n borderRadius: 8,\n },\n main: {\n padding: 12,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#059669',\n flex: 1,\n borderRadius: 8,\n },\n fail: {\n padding: 12,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#DC2626',\n flex: 1,\n borderRadius: 8,\n },\n warn: {\n padding: 12,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#D97706',\n flex: 1,\n borderRadius: 8,\n },\n paymentWarn: {\n padding: 16,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#FFFBEB',\n flex: 1,\n borderRadius: 8,\n },\n messageStyle: {\n fontSize: 14,\n marginStart: 8,\n marginEnd: 8,\n width: '80%',\n color: '#ffffff',\n flex: 1,\n fontWeight: '400',\n lineHeight: 20,\n fontFamily:\n Platform.OS === 'android'\n ? Fonts.IBMPlexSans_400Regular\n : 'IBMPlexSans_400Regular',\n },\n});\n\nexport default withTheme(SnackbarCustom);\n"],"mappings":"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","ignoreList":[]}
Binary file
@@ -122,6 +122,10 @@ const CollectPaymentScreen = ({
122
122
  }
123
123
  if ((_modifiedInput$allowe = modifiedInput.allowedModes) !== null && _modifiedInput$allowe !== void 0 && _modifiedInput$allowe.length) {
124
124
  updatedInput.allowedModes = [...modifiedInput.allowedModes, ...updatedInput.allowedModes];
125
+ const index = updatedInput.allowedModes.indexOf('ONLINE');
126
+ if (index > -1) {
127
+ updatedInput.allowedModes.splice(index, 1);
128
+ }
125
129
  }
126
130
  if (!((_updatedInput$allowed = updatedInput.allowedModes) !== null && _updatedInput$allowed !== void 0 && _updatedInput$allowed.length)) {
127
131
  navigateWithError(ErrorCodes.InvalidArgumentError, 'No payment modes available. Please contact your Admin.');
@@ -158,10 +162,10 @@ const CollectPaymentScreen = ({
158
162
  // };
159
163
 
160
164
  const configData = paymentResp === null || paymentResp === void 0 || (_paymentResp$data = paymentResp.data) === null || _paymentResp$data === void 0 || (_paymentResp$data = _paymentResp$data.data) === null || _paymentResp$data === void 0 ? void 0 : _paymentResp$data.configDetails[0];
161
- if (configData !== null && configData !== void 0 && (_configData$paymentMe = configData.paymentMethods) !== null && _configData$paymentMe !== void 0 && _configData$paymentMe.QR) {
165
+ if ((configData === null || configData === void 0 || (_configData$paymentMe = configData.paymentMethods) === null || _configData$paymentMe === void 0 ? void 0 : _configData$paymentMe.QR) === true) {
162
166
  response.methods.push('QR_CODE');
163
167
  }
164
- if (configData !== null && configData !== void 0 && (_configData$paymentMe2 = configData.paymentMethods) !== null && _configData$paymentMe2 !== void 0 && _configData$paymentMe2.paymentLink) {
168
+ if ((configData === null || configData === void 0 || (_configData$paymentMe2 = configData.paymentMethods) === null || _configData$paymentMe2 === void 0 ? void 0 : _configData$paymentMe2.paymentLink) === true) {
165
169
  response.methods.push('PAYMENT_LINK');
166
170
  }
167
171
  if (configData !== null && configData !== void 0 && configData.modesMapping) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useState","withBaseDispatchScreen","EntityCode","ExecutionTaskID","CollectPaymentET","DispatchStateContainer","RouteParams","getDataFromNextState","Alert","handleDynamicValues","onTaskStart","useEffect","DispatchExecutor","NetworkClient","DispatchSdkCache","PaymentContext","isMandatoryKeysPresent","ErrorCodes","ENDPOINTS","Logger","LOG_TYPE","ProgressDialog","GO_BACK_EVENT_CODE","CancelOrderDialog","CollectPaymentScreen","navigation","route","baseETProps","_route$params$RoutePa","nextState","params","NEXT_STATES","taskMeta","mergedObjectiveId","input","taskId","expectedAmount","setExpectedAmount","modifiedInput","setInputs","contextData","setContextData","showAlert","setShowAlert","sResponse","setResponse","showScreen","setShowScreen","paymentRefId","ROOT_META_DATA","paymentConfig","getSdkConfig","cache","getInstance","_sdkConfig","getObjectFromCache","KEYS","SDK_CONFIG","networkInstance","domain","showAlertMessage","errorMessage","title","alert","goBack","navigateWithError","errorCode","initRoute","navigate","name","sdkError","code","message","merge","COLLECT_PAYMENT_ET","InvalidArgumentError","customEventsData","_modifiedInput$allowe","_updatedInput$allowed","updatedInput","JSON","parse","stringify","getTotalExpected","allowedModes","includes","modes","getPaymentModes","methods","plModes","index","indexOf","splice","error","_error$response","logEvent","response","data","SDK_ERROR","length","_paymentResp$data","_configData$paymentMe","_configData$paymentMe2","paymentResp","requestGet","PAYMENT_MODES","requestId","configData","configDetails","paymentMethods","QR","push","paymentLink","modesMapping","Object","values","_error$response2","totalAmount","getTotalPaymentAmountMWI","submitOutput","etOutput","console","log","paymentMode","jobData","wQueryJobForMOId","result","wUpdateAmountToZero","jobId","navigateToNextTask","success","_modifiedInput$allowe2","createElement","Provider","value","sdkConfig","_extends","onSubmitET","eventCode","_prevState","visible","onSubmit","label"],"sources":["CollectPaymentScreen.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { useCallback, useState } from 'react';\nimport withBaseDispatchScreen from './WithBaseDispatchScreen';\nimport type { BaseETProps } from '../../models/DispatchModels';\nimport { EntityCode, ExecutionTaskID } from '../../models/execTasks/ETConfig';\nimport { CollectPaymentET } from '../../components/executiontasks/ExecutionTasksIndex';\nimport DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';\nimport { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';\nimport { Alert } from 'react-native';\nimport { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';\nimport { useEffect } from 'react';\nimport { DispatchExecutor } from '@os1-platform/platform-coreos-execution-engine-sdk';\nimport NetworkClient from '../../network/NetworkClient';\nimport DispatchSdkCache from '../../manager/sdk/DispatchSdkCache';\nimport { DispatchSDKConfig } from '../../models/sdk';\nimport { PaymentContext } from '../../utils/context/paymentContext';\nimport { isMandatoryKeysPresent } from '../../utils/utils';\nimport ErrorCodes from '../../errors/ErrorCodes';\nimport { ENDPOINTS } from '../../constants/apiConstants';\nimport { PaymentConfigResponse } from '../../components/executiontasks/collectPayment/CollectPaymentSchema';\nimport Logger, { LOG_TYPE } from '../../utils/Logger';\nimport ProgressDialog from '../../components/widgets/ProgressDialog';\nimport { GO_BACK_EVENT_CODE } from '../../constants/constants';\nimport CancelOrderDialog from '../../components/widgets/CancelOrderDialog';\n\nconst CollectPaymentScreen = ({\n navigation,\n route,\n baseETProps,\n}: {\n route: any;\n navigation: any;\n baseETProps: BaseETProps;\n}) => {\n const nextState = route.params[RouteParams.NEXT_STATES];\n const { taskMeta, mergedObjectiveId, input, taskId } =\n getDataFromNextState(nextState);\n const [expectedAmount, setExpectedAmount] = useState(0);\n const [modifiedInput, setInputs] = useState({ ...input });\n const [contextData, setContextData] = useState<any>();\n const [showAlert, setShowAlert] = useState(false);\n const [sResponse, setResponse] = useState<any>();\n const [showScreen, setShowScreen] = useState<boolean>(false);\n const paymentRefId =\n route.params[RouteParams.ROOT_META_DATA].paymentConfig?.paymentRefId;\n\n async function getSdkConfig() {\n const cache = DispatchSdkCache.getInstance();\n const _sdkConfig: DispatchSDKConfig = await cache.getObjectFromCache(\n DispatchSdkCache.KEYS.SDK_CONFIG\n );\n\n const networkInstance = new NetworkClient(_sdkConfig.domain);\n setContextData({ _sdkConfig, networkInstance });\n return { _sdkConfig, networkInstance };\n }\n\n const showAlertMessage = useCallback(\n (errorMessage: string, title: string) => {\n Alert.alert(title, errorMessage);\n navigation.goBack();\n },\n [navigation]\n );\n\n const navigateWithError = useCallback(\n (errorCode: string, errorMessage: string) => {\n if (route.params.initRoute) {\n navigation.navigate({\n name: route.params.initRoute,\n params: { sdkError: { code: errorCode, message: errorMessage } },\n merge: true,\n });\n } else {\n showAlertMessage(errorMessage, 'Error');\n }\n },\n [navigation, route.params.initRoute, showAlertMessage]\n );\n\n useEffect(() => {\n \n if (\n taskId === ExecutionTaskID.COLLECT_PAYMENT_ET &&\n (!isMandatoryKeysPresent(route.params[RouteParams.ROOT_META_DATA], [\n 'paymentConfig',\n ]) ||\n !isMandatoryKeysPresent(\n route.params[RouteParams.ROOT_META_DATA].paymentConfig,\n ['paymentRefId']\n ))\n ) {\n navigateWithError(\n ErrorCodes.InvalidArgumentError,\n 'Missing or Invalid Route Params to execute Payment.'\n );\n return;\n }\n onTaskStart(\n route.params[RouteParams.NEXT_STATES],\n route.params[RouteParams.ROOT_META_DATA].customEventsData\n );\n (async () => {\n let updatedInput = JSON.parse(JSON.stringify(modifiedInput));\n if (route.params[RouteParams.ROOT_META_DATA]) {\n updatedInput = handleDynamicValues(\n route?.params[RouteParams.NEXT_STATES].input,\n route.params[RouteParams.ROOT_META_DATA]\n );\n }\n /**\n * Get sum of merged objectives amount\n * Get sdkConfig from cache and set in context\n */\n await getTotalExpected();\n const { networkInstance } = await getSdkConfig();\n /**\n * Get list of selected payment modes from default PG for tenant\n */\n if (modifiedInput.allowedModes.includes('ONLINE')) {\n try {\n const modes = await getPaymentModes(networkInstance);\n updatedInput.allowedModes = modes?.methods;\n updatedInput.plModes = modes?.plModes || [];\n const index = modifiedInput.allowedModes.indexOf('ONLINE');\n if (index > -1) {\n modifiedInput.allowedModes.splice(index, 1);\n }\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ getTotalExpected triggered ',\n JSON.stringify(error?.response?.data || error),\n LOG_TYPE.SDK_ERROR\n );\n updatedInput.allowedModes = [];\n updatedInput.plModes = [];\n const index = modifiedInput.allowedModes.indexOf('ONLINE');\n if (index > -1) {\n modifiedInput.allowedModes.splice(index, 1);\n }\n }\n } else {\n updatedInput.allowedModes = [];\n updatedInput.plModes = [];\n }\n\n if (modifiedInput.allowedModes?.length) {\n updatedInput.allowedModes = [\n ...modifiedInput.allowedModes,\n ...updatedInput.allowedModes,\n ];\n }\n if (!updatedInput.allowedModes?.length) {\n navigateWithError(\n ErrorCodes.InvalidArgumentError,\n 'No payment modes available. Please contact your Admin.'\n );\n return;\n }\n setInputs(updatedInput);\n })();\n }, []);\n\n const getPaymentModes = async (\n networkInstance: NetworkClient\n ): Promise<{ methods: string[]; plModes: string[] } | null> => {\n try {\n let response: { methods: string[]; plModes: string[] } = {\n methods: [],\n plModes: [],\n };\n const paymentResp: { data: PaymentConfigResponse } =\n await networkInstance.requestGet(ENDPOINTS.PAYMENT_MODES, {\n requestId: 'payment:' + paymentRefId,\n });\n\n // FOR TESTING\n // const paymentResp = {\n // data: {\n // data: {\n // configDetails: [\n // {\n // paymentMethods: {\n // QR: true,\n // paymentLink: true,\n // },\n // },\n // ],\n // },\n // },\n // };\n\n const configData = paymentResp?.data?.data?.configDetails[0];\n if (configData?.paymentMethods?.QR) {\n response.methods.push('QR_CODE');\n }\n if (configData?.paymentMethods?.paymentLink) {\n response.methods.push('PAYMENT_LINK');\n }\n if (configData?.modesMapping) {\n response.plModes = Object.values(configData.modesMapping);\n }\n\n return response;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ getPaymentModes triggered ',\n JSON.stringify(error?.response?.data || error),\n LOG_TYPE.SDK_ERROR\n );\n return null;\n }\n };\n\n const getTotalExpected = async () => {\n const totalAmount: number = await DispatchExecutor.getTotalPaymentAmountMWI(\n mergedObjectiveId\n );\n setExpectedAmount(totalAmount);\n // setExpectedAmount(1000); //FOR TESTING\n return totalAmount;\n };\n\n const submitOutput = useCallback(\n async (etOutput: any) => {\n console.log('CollectPaymentScreen:SubmitOutput:', etOutput);\n if (etOutput.paymentMode == 'QR_CODE') {\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.paymentMode',\n etOutput.paymentMode\n );\n let jobData = await DispatchExecutor.wQueryJobForMOId(\n mergedObjectiveId[0]\n );\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.jobData',\n jobData\n );\n let result = await DispatchExecutor.wUpdateAmountToZero(\n jobData[0].jobId\n );\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.result',\n result\n );\n }\n await DispatchStateContainer.getInstance().navigateToNextTask(\n navigation,\n route,\n etOutput,\n etOutput.success,\n EntityCode.COLLECT_PAYMENT_ET,\n ExecutionTaskID.COLLECT_PAYMENT_ET,\n baseETProps,\n false\n );\n },\n [baseETProps, navigation, route]\n );\n\n // console.log(\"collectpayment1:\",contextData)\n // console.log(\"collectpayment2:\",modifiedInput.allowedModes.includes('ONLINE'))\n // console.log(\"collectpayment3:\",modifiedInput.allowedModes?.length)\n useEffect(() => {\n if (contextData && modifiedInput?.allowedModes?.length) {\n setShowScreen(true);\n } else {\n setShowScreen(false);\n }\n }, [contextData, modifiedInput?.allowedModes]);\n\n return showScreen ? (\n <PaymentContext.Provider\n value={{\n sdkConfig: contextData?._sdkConfig,\n networkInstance: contextData?.networkInstance,\n }}\n >\n <CollectPaymentET\n {...modifiedInput}\n expectedAmount={expectedAmount}\n navigation={navigation}\n mergedObjectiveId={mergedObjectiveId}\n taskMeta={taskMeta}\n route={route}\n onSubmitET={async (etOutput) => {\n console.log('etOutput: ', JSON.stringify(etOutput));\n if (etOutput.success || etOutput.eventCode == GO_BACK_EVENT_CODE) {\n await submitOutput(etOutput);\n } else {\n setResponse((_prevState: any) => {\n setShowAlert(true);\n return etOutput;\n });\n }\n }}\n />\n <CancelOrderDialog\n visible={showAlert}\n onSubmit={async (value) => {\n if (value) {\n setShowAlert(false);\n await submitOutput(sResponse);\n } else {\n setShowAlert(false);\n }\n }}\n />\n </PaymentContext.Provider>\n ) : (\n <ProgressDialog visible={true} label=\"Loading...\" />\n );\n};\n\nexport default withBaseDispatchScreen(CollectPaymentScreen);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useState","withBaseDispatchScreen","EntityCode","ExecutionTaskID","CollectPaymentET","DispatchStateContainer","RouteParams","getDataFromNextState","Alert","handleDynamicValues","onTaskStart","useEffect","DispatchExecutor","NetworkClient","DispatchSdkCache","PaymentContext","isMandatoryKeysPresent","ErrorCodes","ENDPOINTS","Logger","LOG_TYPE","ProgressDialog","GO_BACK_EVENT_CODE","CancelOrderDialog","CollectPaymentScreen","navigation","route","baseETProps","_route$params$RoutePa","nextState","params","NEXT_STATES","taskMeta","mergedObjectiveId","input","taskId","expectedAmount","setExpectedAmount","modifiedInput","setInputs","contextData","setContextData","showAlert","setShowAlert","sResponse","setResponse","showScreen","setShowScreen","paymentRefId","ROOT_META_DATA","paymentConfig","getSdkConfig","cache","getInstance","_sdkConfig","getObjectFromCache","KEYS","SDK_CONFIG","networkInstance","domain","showAlertMessage","errorMessage","title","alert","goBack","navigateWithError","errorCode","initRoute","navigate","name","sdkError","code","message","merge","COLLECT_PAYMENT_ET","InvalidArgumentError","customEventsData","_modifiedInput$allowe","_updatedInput$allowed","updatedInput","JSON","parse","stringify","getTotalExpected","allowedModes","includes","modes","getPaymentModes","methods","plModes","index","indexOf","splice","error","_error$response","logEvent","response","data","SDK_ERROR","length","_paymentResp$data","_configData$paymentMe","_configData$paymentMe2","paymentResp","requestGet","PAYMENT_MODES","requestId","configData","configDetails","paymentMethods","QR","push","paymentLink","modesMapping","Object","values","_error$response2","totalAmount","getTotalPaymentAmountMWI","submitOutput","etOutput","console","log","paymentMode","jobData","wQueryJobForMOId","result","wUpdateAmountToZero","jobId","navigateToNextTask","success","_modifiedInput$allowe2","createElement","Provider","value","sdkConfig","_extends","onSubmitET","eventCode","_prevState","visible","onSubmit","label"],"sources":["CollectPaymentScreen.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { useCallback, useState } from 'react';\nimport withBaseDispatchScreen from './WithBaseDispatchScreen';\nimport type { BaseETProps } from '../../models/DispatchModels';\nimport { EntityCode, ExecutionTaskID } from '../../models/execTasks/ETConfig';\nimport { CollectPaymentET } from '../../components/executiontasks/ExecutionTasksIndex';\nimport DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';\nimport { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';\nimport { Alert } from 'react-native';\nimport { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';\nimport { useEffect } from 'react';\nimport { DispatchExecutor } from '@os1-platform/platform-coreos-execution-engine-sdk';\nimport NetworkClient from '../../network/NetworkClient';\nimport DispatchSdkCache from '../../manager/sdk/DispatchSdkCache';\nimport { DispatchSDKConfig } from '../../models/sdk';\nimport { PaymentContext } from '../../utils/context/paymentContext';\nimport { isMandatoryKeysPresent } from '../../utils/utils';\nimport ErrorCodes from '../../errors/ErrorCodes';\nimport { ENDPOINTS } from '../../constants/apiConstants';\nimport { PaymentConfigResponse } from '../../components/executiontasks/collectPayment/CollectPaymentSchema';\nimport Logger, { LOG_TYPE } from '../../utils/Logger';\nimport ProgressDialog from '../../components/widgets/ProgressDialog';\nimport { GO_BACK_EVENT_CODE } from '../../constants/constants';\nimport CancelOrderDialog from '../../components/widgets/CancelOrderDialog';\n\nconst CollectPaymentScreen = ({\n navigation,\n route,\n baseETProps,\n}: {\n route: any;\n navigation: any;\n baseETProps: BaseETProps;\n}) => {\n const nextState = route.params[RouteParams.NEXT_STATES];\n const { taskMeta, mergedObjectiveId, input, taskId } =\n getDataFromNextState(nextState);\n const [expectedAmount, setExpectedAmount] = useState(0);\n const [modifiedInput, setInputs] = useState({ ...input });\n const [contextData, setContextData] = useState<any>();\n const [showAlert, setShowAlert] = useState(false);\n const [sResponse, setResponse] = useState<any>();\n const [showScreen, setShowScreen] = useState<boolean>(false);\n const paymentRefId =\n route.params[RouteParams.ROOT_META_DATA].paymentConfig?.paymentRefId;\n\n async function getSdkConfig() {\n const cache = DispatchSdkCache.getInstance();\n const _sdkConfig: DispatchSDKConfig = await cache.getObjectFromCache(\n DispatchSdkCache.KEYS.SDK_CONFIG\n );\n\n const networkInstance = new NetworkClient(_sdkConfig.domain);\n setContextData({ _sdkConfig, networkInstance });\n return { _sdkConfig, networkInstance };\n }\n\n const showAlertMessage = useCallback(\n (errorMessage: string, title: string) => {\n Alert.alert(title, errorMessage);\n navigation.goBack();\n },\n [navigation]\n );\n\n const navigateWithError = useCallback(\n (errorCode: string, errorMessage: string) => {\n if (route.params.initRoute) {\n navigation.navigate({\n name: route.params.initRoute,\n params: { sdkError: { code: errorCode, message: errorMessage } },\n merge: true,\n });\n } else {\n showAlertMessage(errorMessage, 'Error');\n }\n },\n [navigation, route.params.initRoute, showAlertMessage]\n );\n\n useEffect(() => {\n if (\n taskId === ExecutionTaskID.COLLECT_PAYMENT_ET &&\n (!isMandatoryKeysPresent(route.params[RouteParams.ROOT_META_DATA], [\n 'paymentConfig',\n ]) ||\n !isMandatoryKeysPresent(\n route.params[RouteParams.ROOT_META_DATA].paymentConfig,\n ['paymentRefId']\n ))\n ) {\n navigateWithError(\n ErrorCodes.InvalidArgumentError,\n 'Missing or Invalid Route Params to execute Payment.'\n );\n return;\n }\n onTaskStart(\n route.params[RouteParams.NEXT_STATES],\n route.params[RouteParams.ROOT_META_DATA].customEventsData\n );\n (async () => {\n let updatedInput = JSON.parse(JSON.stringify(modifiedInput));\n if (route.params[RouteParams.ROOT_META_DATA]) {\n updatedInput = handleDynamicValues(\n route?.params[RouteParams.NEXT_STATES].input,\n route.params[RouteParams.ROOT_META_DATA]\n );\n }\n /**\n * Get sum of merged objectives amount\n * Get sdkConfig from cache and set in context\n */\n await getTotalExpected();\n const { networkInstance } = await getSdkConfig();\n /**\n * Get list of selected payment modes from default PG for tenant\n */\n if (modifiedInput.allowedModes.includes('ONLINE')) {\n try {\n const modes = await getPaymentModes(networkInstance);\n updatedInput.allowedModes = modes?.methods;\n updatedInput.plModes = modes?.plModes || [];\n const index = modifiedInput.allowedModes.indexOf('ONLINE');\n if (index > -1) {\n modifiedInput.allowedModes.splice(index, 1);\n }\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ getTotalExpected triggered ',\n JSON.stringify(error?.response?.data || error),\n LOG_TYPE.SDK_ERROR\n );\n updatedInput.allowedModes = [];\n updatedInput.plModes = [];\n const index = modifiedInput.allowedModes.indexOf('ONLINE');\n if (index > -1) {\n modifiedInput.allowedModes.splice(index, 1);\n }\n }\n } else {\n updatedInput.allowedModes = [];\n updatedInput.plModes = [];\n }\n\n if (modifiedInput.allowedModes?.length) {\n updatedInput.allowedModes = [\n ...modifiedInput.allowedModes,\n ...updatedInput.allowedModes,\n ];\n const index = updatedInput.allowedModes.indexOf('ONLINE');\n if (index > -1) {\n updatedInput.allowedModes.splice(index, 1);\n }\n }\n if (!updatedInput.allowedModes?.length) {\n navigateWithError(\n ErrorCodes.InvalidArgumentError,\n 'No payment modes available. Please contact your Admin.'\n );\n return;\n }\n setInputs(updatedInput);\n })();\n }, []);\n\n const getPaymentModes = async (\n networkInstance: NetworkClient\n ): Promise<{ methods: string[]; plModes: string[] } | null> => {\n try {\n let response: { methods: string[]; plModes: string[] } = {\n methods: [],\n plModes: [],\n };\n const paymentResp: { data: PaymentConfigResponse } =\n await networkInstance.requestGet(ENDPOINTS.PAYMENT_MODES, {\n requestId: 'payment:' + paymentRefId,\n });\n\n // FOR TESTING\n // const paymentResp = {\n // data: {\n // data: {\n // configDetails: [\n // {\n // paymentMethods: {\n // QR: true,\n // paymentLink: true,\n // },\n // },\n // ],\n // },\n // },\n // };\n\n const configData = paymentResp?.data?.data?.configDetails[0];\n if (configData?.paymentMethods?.QR === true) {\n response.methods.push('QR_CODE');\n }\n if (configData?.paymentMethods?.paymentLink === true) {\n response.methods.push('PAYMENT_LINK');\n }\n if (configData?.modesMapping) {\n response.plModes = Object.values(configData.modesMapping);\n }\n\n return response;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ getPaymentModes triggered ',\n JSON.stringify(error?.response?.data || error),\n LOG_TYPE.SDK_ERROR\n );\n return null;\n }\n };\n\n const getTotalExpected = async () => {\n const totalAmount: number = await DispatchExecutor.getTotalPaymentAmountMWI(\n mergedObjectiveId\n );\n setExpectedAmount(totalAmount);\n // setExpectedAmount(1000); //FOR TESTING\n return totalAmount;\n };\n\n const submitOutput = useCallback(\n async (etOutput: any) => {\n console.log('CollectPaymentScreen:SubmitOutput:', etOutput);\n if (etOutput.paymentMode == 'QR_CODE') {\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.paymentMode',\n etOutput.paymentMode\n );\n let jobData = await DispatchExecutor.wQueryJobForMOId(\n mergedObjectiveId[0]\n );\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.jobData',\n jobData\n );\n let result = await DispatchExecutor.wUpdateAmountToZero(\n jobData[0].jobId\n );\n console.log(\n 'CollectPaymentScreen:SubmitOutput:etOutput.result',\n result\n );\n }\n await DispatchStateContainer.getInstance().navigateToNextTask(\n navigation,\n route,\n etOutput,\n etOutput.success,\n EntityCode.COLLECT_PAYMENT_ET,\n ExecutionTaskID.COLLECT_PAYMENT_ET,\n baseETProps,\n false\n );\n },\n [baseETProps, navigation, route]\n );\n\n // console.log(\"collectpayment1:\",contextData)\n // console.log(\"collectpayment2:\",modifiedInput.allowedModes.includes('ONLINE'))\n // console.log(\"collectpayment3:\",modifiedInput.allowedModes?.length)\n useEffect(() => {\n if (contextData && modifiedInput?.allowedModes?.length) {\n setShowScreen(true);\n } else {\n setShowScreen(false);\n }\n }, [contextData, modifiedInput?.allowedModes]);\n\n return showScreen ? (\n <PaymentContext.Provider\n value={{\n sdkConfig: contextData?._sdkConfig,\n networkInstance: contextData?.networkInstance,\n }}\n >\n <CollectPaymentET\n {...modifiedInput}\n expectedAmount={expectedAmount}\n navigation={navigation}\n mergedObjectiveId={mergedObjectiveId}\n taskMeta={taskMeta}\n route={route}\n onSubmitET={async (etOutput) => {\n console.log('etOutput: ', JSON.stringify(etOutput));\n if (etOutput.success || etOutput.eventCode == GO_BACK_EVENT_CODE) {\n await submitOutput(etOutput);\n } else {\n setResponse((_prevState: any) => {\n setShowAlert(true);\n return etOutput;\n });\n }\n }}\n />\n <CancelOrderDialog\n visible={showAlert}\n onSubmit={async (value) => {\n if (value) {\n setShowAlert(false);\n await submitOutput(sResponse);\n } else {\n setShowAlert(false);\n }\n }}\n />\n </PaymentContext.Provider>\n ) : (\n <ProgressDialog visible={true} label=\"Loading...\" />\n );\n};\n\nexport default withBaseDispatchScreen(CollectPaymentScreen);\n"],"mappings":"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","ignoreList":[]}
@@ -51,6 +51,7 @@ export interface QrResponse {
51
51
  txnId?: string;
52
52
  paymentCompleted?: boolean;
53
53
  status?: STATUS;
54
+ expiresIn?: number;
54
55
  };
55
56
  }
56
57
  export interface QR_REQUEST_BODY {
@@ -89,4 +89,24 @@ export declare const PaymentStyles: {
89
89
  justifyContent: "center";
90
90
  alignItems: "center";
91
91
  };
92
+ qrImage: {
93
+ width: number;
94
+ height: number;
95
+ backgroundColor: string;
96
+ };
97
+ overlay: {
98
+ position: "absolute";
99
+ width: string;
100
+ height: string;
101
+ justifyContent: "center";
102
+ alignItems: "center";
103
+ backgroundColor: string;
104
+ };
105
+ snackBarContainer: {
106
+ position: "absolute";
107
+ alignSelf: "center";
108
+ bottom: number;
109
+ width: string;
110
+ borderRadius: number;
111
+ };
92
112
  };
@@ -14,3 +14,4 @@ export declare function getSharedPrefPaymentSelection(refId: string, storage: St
14
14
  export declare function setSharedPrefPaymentSelection(refId: string, mode: AllowedModes, storage: Storage): Promise<void>;
15
15
  export declare function removeSharedPrefPaymentData(refId: string, storage: Storage): Promise<void>;
16
16
  export declare const formatTime: (time: number) => string;
17
+ export declare const formatExpiryTime: (timeInSeconds: number) => string;
@@ -18,7 +18,8 @@ export interface SnackbarProps {
18
18
  export declare enum SnackBarType {
19
19
  SUCCESS = 0,
20
20
  FAILURE = 1,
21
- WARNING = 2
21
+ WARNING = 2,
22
+ PAYMENT_WARNING = 3
22
23
  }
23
24
  declare const _default: React.ComponentType<Pick<SnackbarProps, "visible" | "message" | "type" | "onDismiss" | "duration" | "customBottom" | "customTop"> & {
24
25
  theme?: import("@callstack/react-theme-provider").$DeepPartial<ReactNativePaper.Theme> | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os1-platform/dispatch-mobile",
3
- "version": "2.1.24",
3
+ "version": "2.1.26",
4
4
  "description": "Dispatch SDK React Native Package",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -57,7 +57,7 @@
57
57
  "@babel/preset-typescript": "^7.15.0",
58
58
  "@babel/runtime": "^7.12.5",
59
59
  "@commitlint/config-conventional": "^11.0.0",
60
- "@delhivery/platform-coreos-mts-sdk": "^2.0.4",
60
+ "@delhivery/platform-coreos-mts-sdk": "^2.0.6",
61
61
  "@expo-google-fonts/ibm-plex-sans": "*",
62
62
  "@react-native-async-storage/async-storage": "^1.15.14",
63
63
  "@react-native-community/datetimepicker": "^3.5.2",
@@ -130,7 +130,7 @@
130
130
  },
131
131
  "peerDependencies": {
132
132
  "@apollo/client": "^3.5.6",
133
- "@delhivery/platform-coreos-mts-sdk": "^2.0.4",
133
+ "@delhivery/platform-coreos-mts-sdk": "^2.0.6",
134
134
  "@expo-google-fonts/ibm-plex-sans": "*",
135
135
  "@react-native-async-storage/async-storage": "^1.15.14",
136
136
  "@react-native-community/datetimepicker": "^3.5.2",
@@ -259,7 +259,7 @@
259
259
  ]
260
260
  },
261
261
  "dependencies": {
262
- "@os1-platform/platform-coreos-execution-engine-sdk": "1.0.15",
262
+ "@os1-platform/platform-coreos-execution-engine-sdk": "1.0.16",
263
263
  "@rjsf/core": "^2.0.0",
264
264
  "apollo-link-timeout": "^4.0.0",
265
265
  "decompress": "^4.2.1",
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  import {
2
3
  BaseETRequest,
3
4
  BaseETResponse,
@@ -69,6 +70,7 @@ export interface QrResponse {
69
70
  txnId?: string;
70
71
  paymentCompleted?: boolean;
71
72
  status?: STATUS;
73
+ expiresIn?: number;
72
74
  };
73
75
  }
74
76
 
@@ -11,14 +11,16 @@ export const PaymentStyles = StyleSheet.create({
11
11
  alignItems: 'center',
12
12
  paddingTop: 25,
13
13
  paddingBottom: 25,
14
- fontFamily: Platform.OS === 'android'
15
- ? Fonts.IBMPlexSans_600SemiBold
16
- : 'IBMPlexSans-SemiBold',
14
+ fontFamily:
15
+ Platform.OS === 'android'
16
+ ? Fonts.IBMPlexSans_600SemiBold
17
+ : 'IBMPlexSans-SemiBold',
17
18
  },
18
19
  messageStyle: {
19
- fontFamily: Platform.OS === 'android'
20
- ? Fonts.IBMPlexSans_400Regular
21
- : 'IBMPlexSans-Regular',
20
+ fontFamily:
21
+ Platform.OS === 'android'
22
+ ? Fonts.IBMPlexSans_400Regular
23
+ : 'IBMPlexSans-Regular',
22
24
  backgroundColor: '#FFFFFF',
23
25
  color: '#111111',
24
26
  padding: 20,
@@ -27,9 +29,10 @@ export const PaymentStyles = StyleSheet.create({
27
29
  fontSize: 14,
28
30
  },
29
31
  textStyle1: {
30
- fontFamily: Platform.OS === 'android'
31
- ? Fonts.IBMPlexSans_400Regular
32
- : 'IBMPlexSans-Regular',
32
+ fontFamily:
33
+ Platform.OS === 'android'
34
+ ? Fonts.IBMPlexSans_400Regular
35
+ : 'IBMPlexSans-Regular',
33
36
  marginTop: 20,
34
37
  marginStart: 20,
35
38
  marginEnd: 20,
@@ -41,9 +44,10 @@ export const PaymentStyles = StyleSheet.create({
41
44
  reasonTextStyle: {
42
45
  flex: 1,
43
46
  flexWrap: 'wrap',
44
- fontFamily: Platform.OS === 'android'
45
- ? Fonts.IBMPlexSans_400Regular
46
- : 'IBMPlexSans-Regular',
47
+ fontFamily:
48
+ Platform.OS === 'android'
49
+ ? Fonts.IBMPlexSans_400Regular
50
+ : 'IBMPlexSans-Regular',
47
51
  fontStyle: 'normal',
48
52
  fontSize: 14,
49
53
  lineHeight: 21,
@@ -99,4 +103,25 @@ export const PaymentStyles = StyleSheet.create({
99
103
  justifyContent: 'center',
100
104
  alignItems: 'center',
101
105
  },
106
+ // QR
107
+ qrImage: {
108
+ width: 300,
109
+ height: 300,
110
+ backgroundColor: 'transparent',
111
+ },
112
+ overlay: {
113
+ position: 'absolute',
114
+ width: '100%',
115
+ height: '100%',
116
+ justifyContent: 'center',
117
+ alignItems: 'center',
118
+ backgroundColor: 'rgba(255, 255, 255, 0.5)', // Semi-transparent background
119
+ },
120
+ snackBarContainer: {
121
+ position: 'absolute',
122
+ alignSelf: 'center',
123
+ bottom: 0,
124
+ width: '95%',
125
+ borderRadius: 8,
126
+ },
102
127
  });
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  import Logger, { LOG_TYPE } from '../../../utils/Logger';
2
3
  import { APIData, getApiResponse } from '../../../utils/ApiUtils';
3
4
  import * as jsonLogic from 'json-logic-js';
@@ -9,6 +10,8 @@ import {
9
10
  } from './CollectPaymentSchema';
10
11
  import Storage from '../../../utils/storage';
11
12
  import { ENV } from '../../../models/sdk';
13
+ import { useCallback, useEffect, useRef, useState } from 'react';
14
+ import { AppState, AppStateStatus } from 'react-native';
12
15
 
13
16
  export const PAYMENT_SHARED_PREF_KEY = '@Payment_';
14
17
  export const PAYMENT_SELECTION_SHARED_PREF_KEY = '@Payment_Selection_';
@@ -198,3 +201,17 @@ export const formatTime = (time: number) => {
198
201
  minutes > 0 ? String(minutes).padStart(2, '') + ' min' : ''
199
202
  } ${String(remainingSeconds).padStart(2, '')} sec`;
200
203
  };
204
+
205
+ // Function to format the expiry time (without showing '0 sec' when it's unnecessary)
206
+ export const formatExpiryTime = (timeInSeconds: number) => {
207
+ const minutes = Math.floor(timeInSeconds / 60);
208
+ const seconds = timeInSeconds % 60;
209
+
210
+ if (minutes > 0 && seconds > 0) {
211
+ return `${minutes} min ${seconds} sec`;
212
+ } else if (minutes > 0 && seconds === 0) {
213
+ return `${minutes} min`;
214
+ } else {
215
+ return `${seconds} sec`;
216
+ }
217
+ };
@@ -39,12 +39,11 @@ const CompletePayment = (props: CollectPaymentInput & CollectPaymentOutput) => {
39
39
  const [disableProceed, setDisableProceed] = useState(false);
40
40
  const [showModal, setShowModal] = useState<boolean>(true);
41
41
 
42
- // TO hide header for modal screen
43
- useLayoutEffect(() => {
44
- props.navigation.setOptions({
45
- headerShown: false,
46
- });
47
- }, [props.navigation]);
42
+ // useLayoutEffect(() => {
43
+ // props.navigation.setOptions({
44
+ // headerShown: false,
45
+ // });
46
+ // }, [props.navigation]);
48
47
 
49
48
  // Handle back-button click
50
49
  useFocusEffect(
@@ -58,12 +57,12 @@ const CompletePayment = (props: CollectPaymentInput & CollectPaymentOutput) => {
58
57
  }, [])
59
58
  );
60
59
 
61
- // useLayoutEffect(() => {
62
- // props.navigation.setOptions({
63
- // title: 'Payment Complete',
64
- // headerShown: false,
65
- // });
66
- // }, [props.navigation, props.title]);
60
+ useLayoutEffect(() => {
61
+ props.navigation.setOptions({
62
+ title: 'Payment Complete',
63
+ headerShown: false, // To hide header for modal screen
64
+ });
65
+ }, [props.navigation, props.title]);
67
66
 
68
67
  useEffect(() => {
69
68
  if (props.success) {
@@ -254,9 +253,10 @@ const styles = StyleSheet.create({
254
253
  lineHeight: 28,
255
254
  textAlign: 'center',
256
255
  color: '#111111',
257
- fontFamily: Platform.OS === 'android'
258
- ? Fonts.IBMPlexSans_600SemiBold
259
- : 'IBMPlexSans-SemiBold',
256
+ fontFamily:
257
+ Platform.OS === 'android'
258
+ ? Fonts.IBMPlexSans_600SemiBold
259
+ : 'IBMPlexSans-SemiBold',
260
260
  },
261
261
  message1: {
262
262
  fontStyle: 'normal',
@@ -266,8 +266,9 @@ const styles = StyleSheet.create({
266
266
  textAlign: 'center',
267
267
  color: '#111111',
268
268
  marginTop: 12,
269
- fontFamily: Platform.OS === 'android'
270
- ? Fonts.IBMPlexSans_400Regular
271
- : 'IBMPlexSans-Regular',
269
+ fontFamily:
270
+ Platform.OS === 'android'
271
+ ? Fonts.IBMPlexSans_400Regular
272
+ : 'IBMPlexSans-Regular',
272
273
  },
273
274
  });
@@ -455,10 +455,11 @@ const InitPayment = (props: CollectPaymentInput) => {
455
455
 
456
456
  const renderItem = ({ item }: { item: AllowedModes }) => {
457
457
  return (
458
- <TouchableOpacity activeOpacity={1}
459
- onPress={() => {
460
- setPaymentMode(item);
461
- }}
458
+ <TouchableOpacity
459
+ activeOpacity={1}
460
+ onPress={() => {
461
+ setPaymentMode(item);
462
+ }}
462
463
  style={[
463
464
  styles.reasonItemStyle,
464
465
  { marginBottom: 4, paddingVertical: 8 },