@networkinternational/ni-card-management-sdk 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +49 -1
  2. package/android/build.gradle +0 -1
  3. package/android/gradle.properties +1 -1
  4. package/android/src/main/java/com/nicardmanagement/NiCardManagementModule.kt +17 -5
  5. package/lib/commonjs/NICardManagementComponents/CardDetailsComponent.js +11 -1
  6. package/lib/commonjs/NICardManagementComponents/CardDetailsComponent.js.map +1 -1
  7. package/lib/commonjs/NICardManagementComponents/ViewPinComponent.js +10 -5
  8. package/lib/commonjs/NICardManagementComponents/ViewPinComponent.js.map +1 -1
  9. package/lib/commonjs/components/CardDetails/CardHolderNameGroups.js +4 -5
  10. package/lib/commonjs/components/CardDetails/CardHolderNameGroups.js.map +1 -1
  11. package/lib/commonjs/components/CardDetails/CardNumberGroup.js +4 -5
  12. package/lib/commonjs/components/CardDetails/CardNumberGroup.js.map +1 -1
  13. package/lib/commonjs/components/FeedbackPopup/FeedbackPopup.js +106 -0
  14. package/lib/commonjs/components/FeedbackPopup/FeedbackPopup.js.map +1 -0
  15. package/lib/commonjs/config/localization.js +10 -0
  16. package/lib/commonjs/config/localization.js.map +1 -1
  17. package/lib/module/NICardManagementComponents/CardDetailsComponent.js +11 -1
  18. package/lib/module/NICardManagementComponents/CardDetailsComponent.js.map +1 -1
  19. package/lib/module/NICardManagementComponents/ViewPinComponent.js +10 -5
  20. package/lib/module/NICardManagementComponents/ViewPinComponent.js.map +1 -1
  21. package/lib/module/components/CardDetails/CardHolderNameGroups.js +4 -5
  22. package/lib/module/components/CardDetails/CardHolderNameGroups.js.map +1 -1
  23. package/lib/module/components/CardDetails/CardNumberGroup.js +4 -5
  24. package/lib/module/components/CardDetails/CardNumberGroup.js.map +1 -1
  25. package/lib/module/components/FeedbackPopup/FeedbackPopup.js +97 -0
  26. package/lib/module/components/FeedbackPopup/FeedbackPopup.js.map +1 -0
  27. package/lib/module/config/localization.js +10 -0
  28. package/lib/module/config/localization.js.map +1 -1
  29. package/lib/typescript/src/NICardManagementComponents/CardDetailsComponent.d.ts.map +1 -1
  30. package/lib/typescript/src/NICardManagementComponents/ViewPinComponent.d.ts.map +1 -1
  31. package/lib/typescript/src/components/CardDetails/CardHolderNameGroups.d.ts.map +1 -1
  32. package/lib/typescript/src/components/CardDetails/CardNumberGroup.d.ts.map +1 -1
  33. package/lib/typescript/src/components/FeedbackPopup/FeedbackPopup.d.ts +13 -0
  34. package/lib/typescript/src/components/FeedbackPopup/FeedbackPopup.d.ts.map +1 -0
  35. package/lib/typescript/src/config/localization.d.ts +10 -0
  36. package/lib/typescript/src/config/localization.d.ts.map +1 -1
  37. package/lib/typescript/src/utils/localization.d.ts +5 -0
  38. package/lib/typescript/src/utils/localization.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/NICardManagementComponents/CardDetailsComponent.tsx +11 -0
  41. package/src/NICardManagementComponents/ViewPinComponent.tsx +11 -7
  42. package/src/components/CardDetails/CardHolderNameGroups.tsx +4 -6
  43. package/src/components/CardDetails/CardNumberGroup.tsx +4 -6
  44. package/src/components/FeedbackPopup/FeedbackPopup.tsx +117 -0
  45. package/src/config/localization.ts +10 -0
@@ -3,12 +3,15 @@ import { NIPinTypeEnum, NIThemeEnum } from '../interfaces/NiInputInterfaces';
3
3
  import { useViewPin } from '../hooks/useViewPin';
4
4
  import PinState from '../components/PinState/PinState';
5
5
  import ViewPin from '../components/ViewPin/ViewPin';
6
+ import { FeedbackPopup } from '../components/FeedbackPopup/FeedbackPopup';
7
+ import localLabels from '../utils/localization';
6
8
  function ViewPinComponent({
7
9
  input,
8
10
  type: pinType,
9
11
  callback
10
12
  }) {
11
13
  const theme = input?.displayAttributes?.theme || NIThemeEnum.light;
14
+ const language = input?.displayAttributes?.language || 'english';
12
15
  const countdownTime = input?.timer;
13
16
  const {
14
17
  result: viewPinResult,
@@ -16,11 +19,6 @@ function ViewPinComponent({
16
19
  isLoading: isViewPinLoading,
17
20
  onViewPin
18
21
  } = useViewPin();
19
- (!!viewPinResult || !!viewPinError) && console.log('ViewPinView', {
20
- viewPinResult,
21
- viewPinError,
22
- isViewPinLoading
23
- });
24
22
  useEffect(() => {
25
23
  if (input) {
26
24
  onViewPin(input, callback);
@@ -34,6 +32,13 @@ function ViewPinComponent({
34
32
  }), /*#__PURE__*/React.createElement(PinState, {
35
33
  isLoading: isViewPinLoading,
36
34
  theme: theme
35
+ }), /*#__PURE__*/React.createElement(FeedbackPopup, {
36
+ error: viewPinError,
37
+ isLoading: isViewPinLoading,
38
+ isSuccess: !!viewPinResult,
39
+ language: language,
40
+ successMessage: localLabels(language).viewPinSuccess,
41
+ theme: theme
37
42
  }));
38
43
  }
39
44
  export { ViewPinComponent, useViewPin };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","NIPinTypeEnum","NIThemeEnum","useViewPin","PinState","ViewPin","ViewPinComponent","input","type","pinType","callback","theme","displayAttributes","light","countdownTime","timer","result","viewPinResult","error","viewPinError","isLoading","isViewPinLoading","onViewPin","console","log","createElement","Fragment","dynamicFourToSix"],"sourceRoot":"../../../src","sources":["NICardManagementComponents/ViewPinComponent.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,aAAa,EAAEC,WAAW,QAAQ,iCAAiC;AAE5E,SAASC,UAAU,QAAQ,qBAAqB;AAChD,OAAOC,QAAQ,MAAM,iCAAiC;AACtD,OAAOC,OAAO,MAAM,+BAA+B;AAEnD,SAASC,gBAAgBA,CAAC;EACxBC,KAAK;EACLC,IAAI,EAAEC,OAAO;EACbC;AACkB,CAAC,EAAe;EAClC,MAAMC,KAAK,GAAGJ,KAAK,EAAEK,iBAAiB,EAAED,KAAK,IAAIT,WAAW,CAACW,KAAK;EAClE,MAAMC,aAAa,GAAGP,KAAK,EAAEQ,KAAK;EAElC,MAAM;IACJC,MAAM,EAAEC,aAAa;IACrBC,KAAK,EAAEC,YAAY;IACnBC,SAAS,EAAEC,gBAAgB;IAC3BC;EACF,CAAC,GAAGnB,UAAU,CAAC,CAAC;EAEhB,CAAC,CAAC,CAACc,aAAa,IAAI,CAAC,CAACE,YAAY,KAChCI,OAAO,CAACC,GAAG,CAAC,aAAa,EAAE;IACzBP,aAAa;IACbE,YAAY;IACZE;EACF,CAAC,CAAC;EAEJrB,SAAS,CAAC,MAAM;IACd,IAAIO,KAAK,EAAE;MACTe,SAAS,CAACf,KAAK,EAAEG,QAAQ,CAAC;IAC5B;EACF,CAAC,EAAE,CAACH,KAAK,EAAEG,QAAQ,EAAEY,SAAS,CAAC,CAAC;EAEhC,oBACEvB,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA2B,QAAA,qBACE3B,KAAA,CAAA0B,aAAA,CAACpB,OAAO;IACNE,KAAK,EAAEA,KAAM;IACbE,OAAO,EAAEA,OAAO,IAAIR,aAAa,CAAC0B,gBAAiB;IACnDX,MAAM,EAAEC,aAAa,IAAI,EAAG;IAC5BH,aAAa,EAAEA,aAAa,IAAI;EAAE,CACnC,CAAC,eACFf,KAAA,CAAA0B,aAAA,CAACrB,QAAQ;IAACgB,SAAS,EAAEC,gBAAiB;IAACV,KAAK,EAAEA;EAAM,CAAE,CACtD,CAAC;AAEP;AAEA,SAASL,gBAAgB,EAAEH,UAAU"}
1
+ {"version":3,"names":["React","useEffect","NIPinTypeEnum","NIThemeEnum","useViewPin","PinState","ViewPin","FeedbackPopup","localLabels","ViewPinComponent","input","type","pinType","callback","theme","displayAttributes","light","language","countdownTime","timer","result","viewPinResult","error","viewPinError","isLoading","isViewPinLoading","onViewPin","createElement","Fragment","dynamicFourToSix","isSuccess","successMessage","viewPinSuccess"],"sourceRoot":"../../../src","sources":["NICardManagementComponents/ViewPinComponent.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,aAAa,EAAEC,WAAW,QAAQ,iCAAiC;AAE5E,SAASC,UAAU,QAAQ,qBAAqB;AAChD,OAAOC,QAAQ,MAAM,iCAAiC;AACtD,OAAOC,OAAO,MAAM,+BAA+B;AACnD,SAASC,aAAa,QAAQ,2CAA2C;AACzE,OAAOC,WAAW,MAAM,uBAAuB;AAE/C,SAASC,gBAAgBA,CAAC;EACxBC,KAAK;EACLC,IAAI,EAAEC,OAAO;EACbC;AACkB,CAAC,EAAe;EAClC,MAAMC,KAAK,GAAGJ,KAAK,EAAEK,iBAAiB,EAAED,KAAK,IAAIX,WAAW,CAACa,KAAK;EAClE,MAAMC,QAAQ,GAAGP,KAAK,EAAEK,iBAAiB,EAAEE,QAAQ,IAAI,SAAS;EAChE,MAAMC,aAAa,GAAGR,KAAK,EAAES,KAAK;EAElC,MAAM;IACJC,MAAM,EAAEC,aAAa;IACrBC,KAAK,EAAEC,YAAY;IACnBC,SAAS,EAAEC,gBAAgB;IAC3BC;EACF,CAAC,GAAGtB,UAAU,CAAC,CAAC;EAEhBH,SAAS,CAAC,MAAM;IACd,IAAIS,KAAK,EAAE;MACTgB,SAAS,CAAChB,KAAK,EAAEG,QAAQ,CAAC;IAC5B;EACF,CAAC,EAAE,CAACH,KAAK,EAAEG,QAAQ,EAAEa,SAAS,CAAC,CAAC;EAEhC,oBACE1B,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAA4B,QAAA,qBACE5B,KAAA,CAAA2B,aAAA,CAACrB,OAAO;IACNI,KAAK,EAAEA,KAAM;IACbE,OAAO,EAAEA,OAAO,IAAIV,aAAa,CAAC2B,gBAAiB;IACnDT,MAAM,EAAEC,aAAa,IAAI,EAAG;IAC5BH,aAAa,EAAEA,aAAa,IAAI;EAAE,CACnC,CAAC,eACFlB,KAAA,CAAA2B,aAAA,CAACtB,QAAQ;IAACmB,SAAS,EAAEC,gBAAiB;IAACX,KAAK,EAAEA;EAAM,CAAE,CAAC,eACvDd,KAAA,CAAA2B,aAAA,CAACpB,aAAa;IACZe,KAAK,EAAEC,YAAa;IACpBC,SAAS,EAAEC,gBAAiB;IAC5BK,SAAS,EAAE,CAAC,CAACT,aAAc;IAC3BJ,QAAQ,EAAEA,QAAS;IACnBc,cAAc,EAAEvB,WAAW,CAACS,QAAQ,CAAC,CAACe,cAAe;IACrDlB,KAAK,EAAEA;EAAM,CACd,CACD,CAAC;AAEP;AAEA,SAASL,gBAAgB,EAAEL,UAAU"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View, Text, TouchableOpacity, I18nManager } from 'react-native';
3
- import { useClipboard } from '@react-native-clipboard/clipboard';
3
+ import Clipboard from '@react-native-clipboard/clipboard';
4
4
  import { NIThemeEnum } from '../../interfaces/NiInputInterfaces';
5
5
  import { styles } from './styles';
6
6
  import { HEIGHT_CARD } from '../../config/configCard';
@@ -14,7 +14,6 @@ export function CardDetailsCardHolderNameGroups({
14
14
  displayAttributes,
15
15
  setTimeOut
16
16
  }) {
17
- const [data, setString] = useClipboard();
18
17
  const maskedCardholderName = cardholderName.replace(/\b\w*/g, function (s) {
19
18
  return s.replace(/(?<!^)./g, '*');
20
19
  });
@@ -36,12 +35,12 @@ export function CardDetailsCardHolderNameGroups({
36
35
  fontSize: textFont.size,
37
36
  fontFamily: textFont.name
38
37
  };
39
- async function handleOnPress() {
40
- await setString(cardholderName);
38
+ function handleOnPress() {
39
+ // Write directly so iOS does not request permission to read the pasteboard.
40
+ Clipboard.setString(cardholderName);
41
41
  setIsVisibleCopiedButton(true);
42
42
  setTimeOut();
43
43
  }
44
- !!data && console.log('clipboard', data);
45
44
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
46
45
  style: [styles.containerHolderNameContentGroupTopAlignment, containerHolderNameContentGroupTopAlignmentStyle]
47
46
  }, /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","TouchableOpacity","I18nManager","useClipboard","NIThemeEnum","styles","HEIGHT_CARD","themeColors","PredeterminedIcon","CardDetailsCardHolderNameGroups","cardholderName","pinContentIndex","cardDetailsVisible","setIsVisibleCopiedButton","displayAttributes","setTimeOut","data","setString","maskedCardholderName","replace","s","cardholderNameRendered","holderNameContentGroupTopAlignment","Math","round","cardAttributes","textPositioning","cardHolderNameGroupTopAlignment","containerHolderNameContentGroupTopAlignmentStyle","position","top","theme","light","textFonts","fonts","filter","item","label","textFont","length","font","name","size","contentStyleText","color","colorCard","dark","fontSize","fontFamily","handleOnPress","console","log","createElement","Fragment","style","containerHolderNameContentGroupTopAlignment","copyRow","isRTL","flexDirection","textContent","onPress"],"sourceRoot":"../../../../src","sources":["components/CardDetails/CardHolderNameGroups.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","Text","TouchableOpacity","I18nManager","Clipboard","NIThemeEnum","styles","HEIGHT_CARD","themeColors","PredeterminedIcon","CardDetailsCardHolderNameGroups","cardholderName","pinContentIndex","cardDetailsVisible","setIsVisibleCopiedButton","displayAttributes","setTimeOut","maskedCardholderName","replace","s","cardholderNameRendered","holderNameContentGroupTopAlignment","Math","round","cardAttributes","textPositioning","cardHolderNameGroupTopAlignment","containerHolderNameContentGroupTopAlignmentStyle","position","top","theme","light","textFonts","fonts","filter","item","label","textFont","length","font","name","size","contentStyleText","color","colorCard","dark","fontSize","fontFamily","handleOnPress","setString","createElement","Fragment","style","containerHolderNameContentGroupTopAlignment","copyRow","isRTL","flexDirection","textContent","onPress"],"sourceRoot":"../../../../src","sources":["components/CardDetails/CardHolderNameGroups.tsx"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View, TouchableOpacity, Text, I18nManager } from 'react-native';
3
- import { useClipboard } from '@react-native-clipboard/clipboard';
3
+ import Clipboard from '@react-native-clipboard/clipboard';
4
4
  import { NIThemeEnum } from '../../interfaces/NiInputInterfaces';
5
5
  import { styles } from './styles';
6
6
  import { HEIGHT_CARD } from '../../config/configCard';
@@ -15,7 +15,6 @@ export function CardDetailsCardNumberGroup({
15
15
  displayAttributes,
16
16
  setTimeOut
17
17
  }) {
18
- const [data, setString] = useClipboard();
19
18
  const clearPanRendered = clearPan.replace(/.{4}/g, '$& ');
20
19
  const maskedPanRendered = maskedPan.replace(/[a-zA-Z0-9]+(?=....)/g, function (s) {
21
20
  return '*'.repeat(s.length);
@@ -38,12 +37,12 @@ export function CardDetailsCardNumberGroup({
38
37
  fontSize: textFont.size,
39
38
  fontFamily: textFont.name
40
39
  };
41
- async function handleOnPress() {
42
- await setString(clearPan);
40
+ function handleOnPress() {
41
+ // Write directly so iOS does not request permission to read the pasteboard.
42
+ Clipboard.setString(clearPan);
43
43
  setIsVisibleCopiedButton(true);
44
44
  setTimeOut();
45
45
  }
46
- !!data && console.log('clipboard', data);
47
46
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
48
47
  style: [styles.containerCardNumberContentGroupTopAlignment, containerCardNumberContentGroupTopAlignmentStyle]
49
48
  }, /*#__PURE__*/React.createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","TouchableOpacity","Text","I18nManager","useClipboard","NIThemeEnum","styles","HEIGHT_CARD","themeColors","PredeterminedIcon","CardDetailsCardNumberGroup","clearPan","maskedPan","pinContentIndex","cardDetailsVisible","setIsVisibleCopiedButton","displayAttributes","setTimeOut","data","setString","clearPanRendered","replace","maskedPanRendered","s","repeat","length","cardNumber","cardNumberGroupTopAlignment","Math","round","cardAttributes","textPositioning","containerCardNumberContentGroupTopAlignmentStyle","position","top","theme","light","textFonts","fonts","filter","item","label","textFont","font","name","size","contentStyleText","color","colorCard","dark","fontSize","fontFamily","handleOnPress","console","log","createElement","Fragment","style","containerCardNumberContentGroupTopAlignment","copyRow","isRTL","flexDirection","textContent","onPress"],"sourceRoot":"../../../../src","sources":["components/CardDetails/CardNumberGroup.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","TouchableOpacity","Text","I18nManager","Clipboard","NIThemeEnum","styles","HEIGHT_CARD","themeColors","PredeterminedIcon","CardDetailsCardNumberGroup","clearPan","maskedPan","pinContentIndex","cardDetailsVisible","setIsVisibleCopiedButton","displayAttributes","setTimeOut","clearPanRendered","replace","maskedPanRendered","s","repeat","length","cardNumber","cardNumberGroupTopAlignment","Math","round","cardAttributes","textPositioning","containerCardNumberContentGroupTopAlignmentStyle","position","top","theme","light","textFonts","fonts","filter","item","label","textFont","font","name","size","contentStyleText","color","colorCard","dark","fontSize","fontFamily","handleOnPress","setString","createElement","Fragment","style","containerCardNumberContentGroupTopAlignment","copyRow","isRTL","flexDirection","textContent","onPress"],"sourceRoot":"../../../../src","sources":["components/CardDetails/CardNumberGroup.tsx"],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Modal, Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { themeColors } from '../../config/themeColors';
4
+ import localLabels from '../../utils/localization';
5
+ export function FeedbackPopup({
6
+ error,
7
+ isLoading,
8
+ isSuccess,
9
+ successMessage,
10
+ theme,
11
+ language
12
+ }) {
13
+ const [isVisible, setIsVisible] = useState(false);
14
+ const labels = localLabels(language);
15
+ const isError = !!error;
16
+ useEffect(() => {
17
+ if (isLoading) {
18
+ setIsVisible(false);
19
+ } else if (error || isSuccess) {
20
+ setIsVisible(true);
21
+ }
22
+ }, [error, isLoading, isSuccess]);
23
+ const colors = themeColors[theme];
24
+ return /*#__PURE__*/React.createElement(Modal, {
25
+ animationType: "fade",
26
+ onRequestClose: () => setIsVisible(false),
27
+ transparent: true,
28
+ visible: isVisible
29
+ }, /*#__PURE__*/React.createElement(View, {
30
+ style: styles.backdrop
31
+ }, /*#__PURE__*/React.createElement(View, {
32
+ accessibilityRole: "alert",
33
+ style: [styles.popup, {
34
+ backgroundColor: colors.background
35
+ }]
36
+ }, /*#__PURE__*/React.createElement(Text, {
37
+ style: [styles.title, isError ? styles.error : styles.success]
38
+ }, isError ? labels.errorTitle : labels.successTitle), /*#__PURE__*/React.createElement(Text, {
39
+ style: [styles.message, {
40
+ color: colors.color
41
+ }]
42
+ }, error?.message || successMessage), /*#__PURE__*/React.createElement(Pressable, {
43
+ accessibilityRole: "button",
44
+ onPress: () => setIsVisible(false),
45
+ style: styles.button
46
+ }, /*#__PURE__*/React.createElement(Text, {
47
+ style: styles.buttonText
48
+ }, labels.ok)))));
49
+ }
50
+ const styles = StyleSheet.create({
51
+ backdrop: {
52
+ alignItems: 'center',
53
+ backgroundColor: 'rgba(0, 0, 0, 0.45)',
54
+ flex: 1,
55
+ justifyContent: 'center',
56
+ padding: 24
57
+ },
58
+ popup: {
59
+ borderRadius: 8,
60
+ maxWidth: 420,
61
+ padding: 24,
62
+ width: '100%'
63
+ },
64
+ title: {
65
+ fontSize: 20,
66
+ fontWeight: '600',
67
+ marginBottom: 12,
68
+ textAlign: 'center'
69
+ },
70
+ error: {
71
+ color: '#C62828'
72
+ },
73
+ success: {
74
+ color: '#2E7D32'
75
+ },
76
+ message: {
77
+ fontSize: 16,
78
+ lineHeight: 22,
79
+ marginBottom: 24,
80
+ textAlign: 'center'
81
+ },
82
+ button: {
83
+ alignItems: 'center',
84
+ alignSelf: 'center',
85
+ backgroundColor: '#202124',
86
+ borderRadius: 6,
87
+ minWidth: 96,
88
+ paddingHorizontal: 20,
89
+ paddingVertical: 12
90
+ },
91
+ buttonText: {
92
+ color: 'white',
93
+ fontSize: 16,
94
+ fontWeight: '600'
95
+ }
96
+ });
97
+ //# sourceMappingURL=FeedbackPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","Modal","Pressable","StyleSheet","Text","View","themeColors","localLabels","FeedbackPopup","error","isLoading","isSuccess","successMessage","theme","language","isVisible","setIsVisible","labels","isError","colors","createElement","animationType","onRequestClose","transparent","visible","style","styles","backdrop","accessibilityRole","popup","backgroundColor","background","title","success","errorTitle","successTitle","message","color","onPress","button","buttonText","ok","create","alignItems","flex","justifyContent","padding","borderRadius","maxWidth","width","fontSize","fontWeight","marginBottom","textAlign","lineHeight","alignSelf","minWidth","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/FeedbackPopup/FeedbackPopup.tsx"],"mappings":"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"}
@@ -12,6 +12,11 @@ const english = {
12
12
  setPinButtonLabel: 'Set PIN',
13
13
  changePinButtonLabel: 'Change PIN',
14
14
  copiedToClipboard: 'Copied to clipboard',
15
+ successTitle: 'Success',
16
+ errorTitle: 'Error',
17
+ ok: 'OK',
18
+ cardDetailsSuccess: 'Card details retrieved successfully.',
19
+ viewPinSuccess: 'PIN retrieved successfully.',
15
20
  viewPinCountdownLabel: count => 'PIN will be hidden in ' + count + ' seconds',
16
21
  show: 'Show',
17
22
  hide: 'Hide'
@@ -30,6 +35,11 @@ const arabic = {
30
35
  setPinButtonLabel: 'تعيين الرقم السري',
31
36
  changePinButtonLabel: '\u200Eتغيير الرقم السري (PIN)',
32
37
  copiedToClipboard: 'تم النسخ إلى الحافظة',
38
+ successTitle: 'تم بنجاح',
39
+ errorTitle: 'خطأ',
40
+ ok: 'حسنًا',
41
+ cardDetailsSuccess: 'تم استرداد تفاصيل البطاقة بنجاح.',
42
+ viewPinSuccess: 'تم استرداد الرقم السري بنجاح.',
33
43
  viewPinCountdownLabel: count => '\u200Eثواني\u200E ' + count + '\u200E سيتم إخفاء الرقم السري للبطاقة خلال',
34
44
  show: '\u200Eعرض',
35
45
  hide: '\u200Eإخفاء'
@@ -1 +1 @@
1
- {"version":3,"names":["english","cardNumber","expiry","CVV","cardHolderName","enterNewCardPin","confirmCardPIN","wrongCardPin","enterCurrentCardPin","enterVerifyCardPin","verifyPinButtonLabel","setPinButtonLabel","changePinButtonLabel","copiedToClipboard","viewPinCountdownLabel","count","show","hide","arabic","localization"],"sourceRoot":"../../../src","sources":["config/localization.ts"],"mappings":"AAAA,MAAMA,OAAO,GAAG;EACdC,UAAU,EAAE,aAAa;EACzBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,KAAK;EACVC,cAAc,EAAE,MAAM;EACtBC,eAAe,EAAE,8CAA8C;EAC/DC,cAAc,EAAE,wBAAwB;EACxCC,YAAY,EAAE,mDAAmD;EACjEC,mBAAmB,EAAE,kDAAkD;EACvEC,kBAAkB,EAAE,+CAA+C;EACnEC,oBAAoB,EAAE,YAAY;EAClCC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,YAAY;EAClCC,iBAAiB,EAAE,qBAAqB;EACxCC,qBAAqB,EAAGC,KAAa,IACnC,wBAAwB,GAAGA,KAAK,GAAG,UAAU;EAC/CC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,MAAM,GAAG;EACbjB,UAAU,EAAE,aAAa;EACzBC,MAAM,EAAE,gBAAgB;EACxBC,GAAG,EAAE,mCAAmC;EACxCC,cAAc,EAAE,OAAO;EACvBC,eAAe,EAAE,6CAA6C;EAC9DC,cAAc,EAAE,gDAAgD;EAChEC,YAAY,EACV,sFAAsF;EACxFC,mBAAmB,EAAE,6CAA6C;EAClEC,kBAAkB,EAAE,mDAAmD;EACvEC,oBAAoB,EAAE,6BAA6B;EACnDC,iBAAiB,EAAE,mBAAmB;EACtCC,oBAAoB,EAAE,+BAA+B;EACrDC,iBAAiB,EAAE,sBAAsB;EACzCC,qBAAqB,EAAGC,KAAa,IACnC,oBAAoB,GAAGA,KAAK,GAAG,4CAA4C;EAC7EC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,MAAME,YAAY,GAAG;EAC1BnB,OAAO,EAAEA,OAAO;EAChBkB,MAAM,EAAEA;AACV,CAAC"}
1
+ {"version":3,"names":["english","cardNumber","expiry","CVV","cardHolderName","enterNewCardPin","confirmCardPIN","wrongCardPin","enterCurrentCardPin","enterVerifyCardPin","verifyPinButtonLabel","setPinButtonLabel","changePinButtonLabel","copiedToClipboard","successTitle","errorTitle","ok","cardDetailsSuccess","viewPinSuccess","viewPinCountdownLabel","count","show","hide","arabic","localization"],"sourceRoot":"../../../src","sources":["config/localization.ts"],"mappings":"AAAA,MAAMA,OAAO,GAAG;EACdC,UAAU,EAAE,aAAa;EACzBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,KAAK;EACVC,cAAc,EAAE,MAAM;EACtBC,eAAe,EAAE,8CAA8C;EAC/DC,cAAc,EAAE,wBAAwB;EACxCC,YAAY,EAAE,mDAAmD;EACjEC,mBAAmB,EAAE,kDAAkD;EACvEC,kBAAkB,EAAE,+CAA+C;EACnEC,oBAAoB,EAAE,YAAY;EAClCC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,YAAY;EAClCC,iBAAiB,EAAE,qBAAqB;EACxCC,YAAY,EAAE,SAAS;EACvBC,UAAU,EAAE,OAAO;EACnBC,EAAE,EAAE,IAAI;EACRC,kBAAkB,EAAE,sCAAsC;EAC1DC,cAAc,EAAE,6BAA6B;EAC7CC,qBAAqB,EAAGC,KAAa,IACnC,wBAAwB,GAAGA,KAAK,GAAG,UAAU;EAC/CC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,MAAM,GAAG;EACbtB,UAAU,EAAE,aAAa;EACzBC,MAAM,EAAE,gBAAgB;EACxBC,GAAG,EAAE,mCAAmC;EACxCC,cAAc,EAAE,OAAO;EACvBC,eAAe,EAAE,6CAA6C;EAC9DC,cAAc,EAAE,gDAAgD;EAChEC,YAAY,EACV,sFAAsF;EACxFC,mBAAmB,EAAE,6CAA6C;EAClEC,kBAAkB,EAAE,mDAAmD;EACvEC,oBAAoB,EAAE,6BAA6B;EACnDC,iBAAiB,EAAE,mBAAmB;EACtCC,oBAAoB,EAAE,+BAA+B;EACrDC,iBAAiB,EAAE,sBAAsB;EACzCC,YAAY,EAAE,UAAU;EACxBC,UAAU,EAAE,KAAK;EACjBC,EAAE,EAAE,OAAO;EACXC,kBAAkB,EAAE,kCAAkC;EACtDC,cAAc,EAAE,+BAA+B;EAC/CC,qBAAqB,EAAGC,KAAa,IACnC,oBAAoB,GAAGA,KAAK,GAAG,4CAA4C;EAC7EC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,MAAME,YAAY,GAAG;EAC1BxB,OAAO,EAAEA,OAAO;EAChBuB,MAAM,EAAEA;AACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardDetailsComponent.d.ts","sourceRoot":"","sources":["../../../../src/NICardManagementComponents/CardDetailsComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAGzF,iBAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAoDtC;AAQD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,CAAC"}
1
+ {"version":3,"file":"CardDetailsComponent.d.ts","sourceRoot":"","sources":["../../../../src/NICardManagementComponents/CardDetailsComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAKzF,iBAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CA6DtC;AAQD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewPinComponent.d.ts","sourceRoot":"","sources":["../../../../src/NICardManagementComponents/ViewPinComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,IAAI,EAAE,OAAO,EACb,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAmClC;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"ViewPinComponent.d.ts","sourceRoot":"","sources":["../../../../src/NICardManagementComponents/ViewPinComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,IAAI,EAAE,OAAO,EACb,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqClC;AAED,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardHolderNameGroups.d.ts","sourceRoot":"","sources":["../../../../../src/components/CardDetails/CardHolderNameGroups.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAMvF,wBAAgB,+BAA+B,CAAC,EAC9C,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,EAAE,iCAAiC,GAAG,GAAG,CAAC,OAAO,CAyEjD"}
1
+ {"version":3,"file":"CardHolderNameGroups.d.ts","sourceRoot":"","sources":["../../../../../src/components/CardDetails/CardHolderNameGroups.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAMvF,wBAAgB,+BAA+B,CAAC,EAC9C,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,EAAE,iCAAiC,GAAG,GAAG,CAAC,OAAO,CAuEjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardNumberGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/CardDetails/CardNumberGroup.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAMlF,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAwE5C"}
1
+ {"version":3,"file":"CardNumberGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/CardDetails/CardNumberGroup.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAMlF,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAsE5C"}
@@ -0,0 +1,13 @@
1
+ import type { themeType } from '../../interfaces/NiInputInterfaces';
2
+ import type { NIErrorResponse } from '../../interfaces/NiCardManagementInterfaces';
3
+ interface FeedbackPopupProps {
4
+ error?: NIErrorResponse | null;
5
+ isLoading: boolean;
6
+ isSuccess: boolean;
7
+ successMessage: string;
8
+ theme: themeType;
9
+ language: string;
10
+ }
11
+ export declare function FeedbackPopup({ error, isLoading, isSuccess, successMessage, theme, language, }: FeedbackPopupProps): JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=FeedbackPopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackPopup.d.ts","sourceRoot":"","sources":["../../../../../src/components/FeedbackPopup/FeedbackPopup.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAInF,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,KAAK,EACL,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA4ClC"}
@@ -13,6 +13,11 @@ export declare const localization: {
13
13
  setPinButtonLabel: string;
14
14
  changePinButtonLabel: string;
15
15
  copiedToClipboard: string;
16
+ successTitle: string;
17
+ errorTitle: string;
18
+ ok: string;
19
+ cardDetailsSuccess: string;
20
+ viewPinSuccess: string;
16
21
  viewPinCountdownLabel: (count: number) => string;
17
22
  show: string;
18
23
  hide: string;
@@ -31,6 +36,11 @@ export declare const localization: {
31
36
  setPinButtonLabel: string;
32
37
  changePinButtonLabel: string;
33
38
  copiedToClipboard: string;
39
+ successTitle: string;
40
+ errorTitle: string;
41
+ ok: string;
42
+ cardDetailsSuccess: string;
43
+ viewPinSuccess: string;
34
44
  viewPinCountdownLabel: (count: number) => string;
35
45
  show: string;
36
46
  hide: string;
@@ -1 +1 @@
1
- {"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../../src/config/localization.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;uCA3BQ,MAAM;;;;;;;;;;;;;;;;;;uCAqBN,MAAM;;;;CAStC,CAAC"}
1
+ {"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../../src/config/localization.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;uCAhCQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;uCA0BN,MAAM;;;;CAStC,CAAC"}
@@ -12,6 +12,11 @@ declare function localLabels(language: string): {
12
12
  setPinButtonLabel: string;
13
13
  changePinButtonLabel: string;
14
14
  copiedToClipboard: string;
15
+ successTitle: string;
16
+ errorTitle: string;
17
+ ok: string;
18
+ cardDetailsSuccess: string;
19
+ viewPinSuccess: string;
15
20
  viewPinCountdownLabel: (count: number) => string;
16
21
  show: string;
17
22
  hide: string;
@@ -1 +1 @@
1
- {"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../../src/utils/localization.ts"],"names":[],"mappings":"AAGA,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;EAIpC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"localization.d.ts","sourceRoot":"","sources":["../../../../src/utils/localization.ts"],"names":[],"mappings":"AAGA,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;EAIpC;AAED,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@networkinternational/ni-card-management-sdk",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "SDKs to help card issuers to consume our APIs from iOS applications.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -8,6 +8,8 @@ import { useGetCardDetails } from '../hooks/useGetCardDetails';
8
8
  import { NIThemeEnum } from '../interfaces/NiInputInterfaces';
9
9
  import type { NIGetCardSuccessResponse } from '../interfaces/NiCardManagementInterfaces';
10
10
  import { themeColors } from '../config/themeColors';
11
+ import { FeedbackPopup } from '../components/FeedbackPopup/FeedbackPopup';
12
+ import localLabels from '../utils/localization';
11
13
 
12
14
  function CardDetailsComponent({
13
15
  input,
@@ -15,6 +17,7 @@ function CardDetailsComponent({
15
17
  }: NICardDetailsComponent): JSX.Element {
16
18
  const { displayAttributes } = input || {};
17
19
  const theme = displayAttributes?.theme || NIThemeEnum.light;
20
+ const language = displayAttributes?.language || 'english';
18
21
  const cardDetailsStyle: TextStyle = {
19
22
  height: '100%',
20
23
  width: '100%',
@@ -62,6 +65,14 @@ function CardDetailsComponent({
62
65
  isCardDetails={true}
63
66
  />
64
67
  </View>
68
+ <FeedbackPopup
69
+ error={getCardDetailsError}
70
+ isLoading={getCardDetailsIsLoading}
71
+ isSuccess={!!getCardDetailsResult}
72
+ language={language}
73
+ successMessage={localLabels(language).cardDetailsSuccess}
74
+ theme={theme}
75
+ />
65
76
  </View>
66
77
  );
67
78
  }
@@ -5,6 +5,8 @@ import { type NIViewPinComponent } from '../interfaces/NiInterfaces';
5
5
  import { useViewPin } from '../hooks/useViewPin';
6
6
  import PinState from '../components/PinState/PinState';
7
7
  import ViewPin from '../components/ViewPin/ViewPin';
8
+ import { FeedbackPopup } from '../components/FeedbackPopup/FeedbackPopup';
9
+ import localLabels from '../utils/localization';
8
10
 
9
11
  function ViewPinComponent({
10
12
  input,
@@ -12,6 +14,7 @@ function ViewPinComponent({
12
14
  callback,
13
15
  }: NIViewPinComponent): JSX.Element {
14
16
  const theme = input?.displayAttributes?.theme || NIThemeEnum.light;
17
+ const language = input?.displayAttributes?.language || 'english';
15
18
  const countdownTime = input?.timer;
16
19
 
17
20
  const {
@@ -21,13 +24,6 @@ function ViewPinComponent({
21
24
  onViewPin,
22
25
  } = useViewPin();
23
26
 
24
- (!!viewPinResult || !!viewPinError) &&
25
- console.log('ViewPinView', {
26
- viewPinResult,
27
- viewPinError,
28
- isViewPinLoading,
29
- });
30
-
31
27
  useEffect(() => {
32
28
  if (input) {
33
29
  onViewPin(input, callback);
@@ -43,6 +39,14 @@ function ViewPinComponent({
43
39
  countdownTime={countdownTime || 0}
44
40
  />
45
41
  <PinState isLoading={isViewPinLoading} theme={theme} />
42
+ <FeedbackPopup
43
+ error={viewPinError}
44
+ isLoading={isViewPinLoading}
45
+ isSuccess={!!viewPinResult}
46
+ language={language}
47
+ successMessage={localLabels(language).viewPinSuccess}
48
+ theme={theme}
49
+ />
46
50
  </>
47
51
  );
48
52
  }
@@ -6,7 +6,7 @@ import {
6
6
  TouchableOpacity,
7
7
  I18nManager,
8
8
  } from 'react-native';
9
- import { useClipboard } from '@react-native-clipboard/clipboard';
9
+ import Clipboard from '@react-native-clipboard/clipboard';
10
10
 
11
11
  import {
12
12
  type NIFontLabelPair,
@@ -26,8 +26,6 @@ export function CardDetailsCardHolderNameGroups({
26
26
  displayAttributes,
27
27
  setTimeOut,
28
28
  }: NICardDetailsCardHolderNameGroups): JSX.Element {
29
- const [data, setString] = useClipboard();
30
-
31
29
  const maskedCardholderName = cardholderName.replace(
32
30
  /\b\w*/g,
33
31
  function (s: string) {
@@ -65,12 +63,12 @@ export function CardDetailsCardHolderNameGroups({
65
63
  fontFamily: textFont.name,
66
64
  };
67
65
 
68
- async function handleOnPress(): Promise<void> {
69
- await setString(cardholderName);
66
+ function handleOnPress(): void {
67
+ // Write directly so iOS does not request permission to read the pasteboard.
68
+ Clipboard.setString(cardholderName);
70
69
  setIsVisibleCopiedButton(true);
71
70
  setTimeOut();
72
71
  }
73
- !!data && console.log('clipboard', data);
74
72
 
75
73
  return (
76
74
  <>
@@ -6,7 +6,7 @@ import {
6
6
  Text,
7
7
  I18nManager,
8
8
  } from 'react-native';
9
- import { useClipboard } from '@react-native-clipboard/clipboard';
9
+ import Clipboard from '@react-native-clipboard/clipboard';
10
10
 
11
11
  import {
12
12
  type NIFontLabelPair,
@@ -27,8 +27,6 @@ export function CardDetailsCardNumberGroup({
27
27
  displayAttributes,
28
28
  setTimeOut,
29
29
  }: NICardDetailsCardNumberGroup): JSX.Element {
30
- const [data, setString] = useClipboard();
31
-
32
30
  const clearPanRendered = clearPan.replace(/.{4}/g, '$& ');
33
31
  const maskedPanRendered = maskedPan
34
32
  .replace(/[a-zA-Z0-9]+(?=....)/g, function (s: string) {
@@ -65,12 +63,12 @@ export function CardDetailsCardNumberGroup({
65
63
  fontFamily: textFont.name,
66
64
  };
67
65
 
68
- async function handleOnPress(): Promise<void> {
69
- await setString(clearPan);
66
+ function handleOnPress(): void {
67
+ // Write directly so iOS does not request permission to read the pasteboard.
68
+ Clipboard.setString(clearPan);
70
69
  setIsVisibleCopiedButton(true);
71
70
  setTimeOut();
72
71
  }
73
- !!data && console.log('clipboard', data);
74
72
 
75
73
  return (
76
74
  <>