@evervault/evervault-react-native 1.2.2 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,18 +27,18 @@ function Card({
27
27
  }) {
28
28
  const [registeredFields, setRegisteredFields] = (0, _react.useState)(new Set());
29
29
  const form = (0, _useForm.useForm)({
30
- initialValues: initialValue ?? {
31
- cvc: "",
32
- expiry: "",
33
- number: "",
34
- name: ""
30
+ initialValues: {
31
+ cvc: initialValue?.cvc ?? "",
32
+ expiry: initialValue?.expiry ?? "",
33
+ number: initialValue?.number ?? "",
34
+ name: initialValue?.name ?? ""
35
35
  },
36
36
  validate: {
37
37
  name: values => {
38
38
  if (!registeredFields.has("name")) {
39
39
  return undefined;
40
40
  }
41
- if (values.name.length === 0) {
41
+ if (values.name == null || values.name.length === 0) {
42
42
  return "invalid";
43
43
  }
44
44
  return undefined;
@@ -47,6 +47,9 @@ function Card({
47
47
  if (!registeredFields.has("number")) {
48
48
  return undefined;
49
49
  }
50
+ if (values.number == null) {
51
+ return "invalid";
52
+ }
50
53
  const cardValidation = (0, _cardValidator.validateNumber)(values.number);
51
54
  if (!cardValidation.isValid) {
52
55
  return "invalid";
@@ -60,6 +63,9 @@ function Card({
60
63
  if (!registeredFields.has("expiry")) {
61
64
  return undefined;
62
65
  }
66
+ if (values.expiry == null) {
67
+ return "invalid";
68
+ }
63
69
  const expiryValidation = (0, _cardValidator.validateExpiry)(values.expiry);
64
70
  if (!expiryValidation.isValid) {
65
71
  return "invalid";
@@ -70,6 +76,9 @@ function Card({
70
76
  if (!registeredFields.has("cvc")) {
71
77
  return undefined;
72
78
  }
79
+ if (values.cvc == null) {
80
+ return "invalid";
81
+ }
73
82
  const cvcValidation = (0, _cardValidator.validateCVC)(values.cvc, values.number);
74
83
  if (!cvcValidation.isValid) {
75
84
  return "invalid";
@@ -1 +1 @@
1
- {"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_useForm","_utilities","_CardNumber","_context","_sdk","_CardCVC","_CardHolder","_CardExpiry","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","useState","Set","form","useForm","initialValues","cvc","expiry","number","name","validate","values","undefined","length","cardValidation","validateNumber","isValid","isAcceptedBrand","acceptedBrands","expiryValidation","validateExpiry","cvcValidation","validateCVC","formState","triggerChange","cardData","changePayload","encrypt","Array","from","createElement","CardContext","Provider","value","register","View","CardNamespace","exports","assign","Number","CardNumber","CVC","CardCVC","Holder","CardHolder","Expiry","CardExpiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_useForm","_utilities","_CardNumber","_context","_sdk","_CardCVC","_CardHolder","_CardExpiry","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","useState","Set","form","useForm","initialValues","cvc","expiry","number","name","validate","values","undefined","length","cardValidation","validateNumber","isValid","isAcceptedBrand","acceptedBrands","expiryValidation","validateExpiry","cvcValidation","validateCVC","formState","triggerChange","cardData","changePayload","encrypt","Array","from","createElement","CardContext","Provider","value","register","View","CardNamespace","exports","assign","Number","CardNumber","CVC","CardCVC","Holder","CardHolder","Expiry","CardExpiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,KAAA,GAAAF,MAAA;AAE/B,IAAAG,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,IAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;AAA0E,SAAAa,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAgB1E,SAASW,IAAIA,CAAC;EAAEC,YAAY;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAE;EAC5E,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAC,eAAQ,EACtD,IAAIC,GAAG,CAAC,CACV,CAAC;EAED,MAAMC,IAAI,GAAG,IAAAC,gBAAO,EAAW;IAC7BC,aAAa,EAAE;MACbC,GAAG,EAAEZ,YAAY,EAAEY,GAAG,IAAI,EAAE;MAC5BC,MAAM,EAAEb,YAAY,EAAEa,MAAM,IAAI,EAAE;MAClCC,MAAM,EAAEd,YAAY,EAAEc,MAAM,IAAI,EAAE;MAClCC,IAAI,EAAEf,YAAY,EAAEe,IAAI,IAAI;IAC9B,CAAC;IACDC,QAAQ,EAAE;MACRD,IAAI,EAAGE,MAAM,IAAK;QAChB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,MAAM,CAAC,EAAE;UACjC,OAAOgC,SAAS;QAClB;QAEA,IAAID,MAAM,CAACF,IAAI,IAAI,IAAI,IAAIE,MAAM,CAACF,IAAI,CAACI,MAAM,KAAK,CAAC,EAAE;UACnD,OAAO,SAAS;QAClB;QAEA,OAAOD,SAAS;MAClB,CAAC;MACDJ,MAAM,EAAGG,MAAM,IAAK;QAClB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,QAAQ,CAAC,EAAE;UACnC,OAAOgC,SAAS;QAClB;QACA,IAAID,MAAM,CAACH,MAAM,IAAI,IAAI,EAAE;UACzB,OAAO,SAAS;QAClB;QACA,MAAMM,cAAc,GAAG,IAAAC,6BAAc,EAACJ,MAAM,CAACH,MAAM,CAAC;QACpD,IAAI,CAACM,cAAc,CAACE,OAAO,EAAE;UAC3B,OAAO,SAAS;QAClB;QAEA,IAAI,CAAC,IAAAC,0BAAe,EAACtB,MAAM,EAAEuB,cAAc,EAAEJ,cAAc,CAAC,EAAE;UAC5D,OAAO,kBAAkB;QAC3B;QAEA,OAAOF,SAAS;MAClB,CAAC;MACDL,MAAM,EAAGI,MAAM,IAAK;QAClB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,QAAQ,CAAC,EAAE;UACnC,OAAOgC,SAAS;QAClB;QACA,IAAID,MAAM,CAACJ,MAAM,IAAI,IAAI,EAAE;UACzB,OAAO,SAAS;QAClB;QACA,MAAMY,gBAAgB,GAAG,IAAAC,6BAAc,EAACT,MAAM,CAACJ,MAAM,CAAC;QACtD,IAAI,CAACY,gBAAgB,CAACH,OAAO,EAAE;UAC7B,OAAO,SAAS;QAClB;QAEA,OAAOJ,SAAS;MAClB,CAAC;MACDN,GAAG,EAAGK,MAAM,IAAK;QACf,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,KAAK,CAAC,EAAE;UAChC,OAAOgC,SAAS;QAClB;QACA,IAAID,MAAM,CAACL,GAAG,IAAI,IAAI,EAAE;UACtB,OAAO,SAAS;QAClB;QACA,MAAMe,aAAa,GAAG,IAAAC,0BAAW,EAACX,MAAM,CAACL,GAAG,EAAEK,MAAM,CAACH,MAAM,CAAC;QAC5D,IAAI,CAACa,aAAa,CAACL,OAAO,EAAE;UAC1B,OAAO,SAAS;QAClB;QAEA,OAAOJ,SAAS;MAClB;IACF,CAAC;IACDf,QAAQ,EAAG0B,SAAS,IAAK;MACvB,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;QAChC,MAAMC,QAAQ,GAAG,MAAM,IAAAC,wBAAa,EAClCC,YAAO,EACPJ,SAAS,EACTK,KAAK,CAACC,IAAI,CAAC9B,gBAAgB,CAC7B,CAAC;QACD,IAAIF,QAAQ,EAAE;UACZA,QAAQ,CAAC4B,QAAQ,CAAC;QACpB;MACF,CAAC;MAEDD,aAAa,CAAC,CAAC;IACjB;EACF,CAAC,CAAC;EAEF,oBACE7D,KAAA,CAAAmE,aAAA,CAAC/D,QAAA,CAAAgE,WAAW,CAACC,QAAQ;IACnBC,KAAK,EAAE;MACLtB,MAAM,EAAER,IAAI,CAACQ,MAAM;MACnBuB,QAAQ,EAAE/B,IAAI,CAAC+B,QAAQ;MACvBlC;IACF;EAAE,gBAEFrC,KAAA,CAAAmE,aAAA,CAAC1D,YAAA,CAAA+D,IAAI;IAACrC,KAAK,EAAEA;EAAM,GAAEF,QAAe,CAChB,CAAC;AAE3B;AAEA,MAAMwC,aAAa,GAAAC,OAAA,CAAA5C,IAAA,GAAGR,MAAM,CAACqD,MAAM,CAAC7C,IAAI,EAAE;EACxC8C,MAAM,EAAEC,sBAAU;EAClBC,GAAG,EAAEC,gBAAO;EACZC,MAAM,EAAEC,sBAAU;EAClBC,MAAM,EAAEC;AACV,CAAC,CAAC","ignoreList":[]}
@@ -22,6 +22,12 @@ async function changePayload(encrypt, form, fields) {
22
22
  lastFour,
23
23
  isValid: isValidCardNumber
24
24
  } = (0, _cardValidator.validateNumber)(number);
25
+ if (brand !== "american-express" && cvc?.length === 4) {
26
+ form.setValues(prev => ({
27
+ ...prev,
28
+ cvc: cvc.slice(0, 3)
29
+ }));
30
+ }
25
31
  return {
26
32
  card: {
27
33
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["_cardValidator","require","changePayload","encrypt","form","fields","name","number","rawNumber","expiry","cvc","values","includes","replace","brand","localBrands","bin","lastFour","isValid","isValidCardNumber","validateNumber","card","encryptedNumber","formatExpiry","encryptedCVC","isComplete","errors","Object","keys","length","cardValidation","expiryValidation","validateExpiry","cvcValidation","validateCVC","isAcceptedBrand","acceptedBrands","cardNumberValidationResult","isBrandAccepted","isLocalBrandAccepted","some","localBrand","parsedExpiry","month","year","cardNumber"],"sourceRoot":"../../../../src","sources":["components/Card/utilities.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cardValidator","require","changePayload","encrypt","form","fields","name","number","rawNumber","expiry","cvc","values","includes","replace","brand","localBrands","bin","lastFour","isValid","isValidCardNumber","validateNumber","length","setValues","prev","slice","card","encryptedNumber","formatExpiry","encryptedCVC","isComplete","errors","Object","keys","cardValidation","expiryValidation","validateExpiry","cvcValidation","validateCVC","isAcceptedBrand","acceptedBrands","cardNumberValidationResult","isBrandAccepted","isLocalBrandAccepted","some","localBrand","parsedExpiry","month","year","cardNumber"],"sourceRoot":"../../../../src","sources":["components/Card/utilities.ts"],"mappings":"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","ignoreList":[]}
@@ -41,15 +41,26 @@ function useForm({
41
41
  triggerChange.current = true;
42
42
  }, []);
43
43
  const setValue = (0, _react.useCallback)((field, value) => {
44
- if (errors?.[field]) {
45
- setError(field, undefined);
46
- }
47
- setValues(previous => ({
48
- ...previous,
44
+ const nextValues = {
45
+ ...values,
46
+ [field]: value
47
+ };
48
+ setValues(p => ({
49
+ ...p,
49
50
  [field]: value
50
51
  }));
52
+ const nextErrors = {};
53
+ Object.keys(errors ?? {}).forEach(key => {
54
+ if (key === field) return;
55
+ const validator = validators.current?.[key];
56
+ if (!validator) return;
57
+ const error = validator(nextValues);
58
+ if (!error) return;
59
+ nextErrors[key] = error;
60
+ });
61
+ setErrors(nextErrors);
51
62
  triggerChange.current = true;
52
- }, [errors, setError]);
63
+ }, [values, errors]);
53
64
  const isValid = (0, _react.useMemo)(() => Object.keys(errors ?? {}).length === 0, [errors]);
54
65
  const validateForm = (0, _react.useCallback)(() => {
55
66
  const nextErrors = Object.keys(values).reduce((acc, key) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useForm","initialValues","validate","onChange","validators","useRef","triggerChange","values","setValues","useState","errors","setErrors","useEffect","current","setError","useCallback","field","error","prev","Object","keys","reduce","acc","key","setValue","value","undefined","previous","isValid","useMemo","length","validateForm","nextErrors","validator","hasErrors","shouldTriggerChange","some","prevError","nextError","validateField","register","name","handleBlur","handleChange","onBlur","form"],"sourceRoot":"../../../src","sources":["components/useForm.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAyBO,SAASC,OAAOA,CAAmB;EACxCC,aAAa;EACbC,QAAQ;EACRC;AACiB,CAAC,EAAoB;EACtC,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACH,QAAQ,CAAC;EACnC,MAAMI,aAAa,GAAG,IAAAD,aAAM,EAAC,KAAK,CAAC;EACnC,MAAM,CAACE,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAIR,aAAa,CAAC;EACtD,MAAM,CAACS,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAF,eAAQ,EAClC,CAAC,CACH,CAAC;;EAED;EACA;EACA,IAAAG,gBAAS,EAAC,MAAM;IACdR,UAAU,CAACS,OAAO,GAAGX,QAAQ;EAC/B,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMY,QAAQ,GAAG,IAAAC,kBAAW,EAC1B,CAAoBC,KAAQ,EAAEC,KAAyB,KAAK;IAC1D,IAAI,CAACA,KAAK,EAAE;MACVN,SAAS,CAAEO,IAAI,IAAK;QAClB,IAAI,CAACA,IAAI,EAAE,OAAOA,IAAI;QACtB,OAAOC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;UAC5C,IAAIA,GAAG,KAAKP,KAAK,EAAE,OAAOM,GAAG;UAE7B,OAAO;YACL,GAAGA,GAAG;YACN,CAACC,GAAG,GAAGL,IAAI,GAAGK,GAAG;UACnB,CAAC;QACH,CAAC,EAAE,CAAC,CAAC,CAAC;MACR,CAAC,CAAC;MACF;IACF;IAEAZ,SAAS,CAAEO,IAAI,KAAM;MACnB,GAAGA,IAAI;MACP,CAACF,KAAK,GAAGC;IACX,CAAC,CAAC,CAAC;IAEHX,aAAa,CAACO,OAAO,GAAG,IAAI;EAC9B,CAAC,EACD,EACF,CAAC;EAED,MAAMW,QAAQ,GAAG,IAAAT,kBAAW,EAC1B,CAAoBC,KAAQ,EAAES,KAAW,KAAK;IAC5C,IAAIf,MAAM,GAAGM,KAAK,CAAC,EAAE;MACnBF,QAAQ,CAACE,KAAK,EAAEU,SAAS,CAAC;IAC5B;IAEAlB,SAAS,CAAEmB,QAAQ,KAAM;MACvB,GAAGA,QAAQ;MACX,CAACX,KAAK,GAAGS;IACX,CAAC,CAAC,CAAC;IAEHnB,aAAa,CAACO,OAAO,GAAG,IAAI;EAC9B,CAAC,EACD,CAACH,MAAM,EAAEI,QAAQ,CACnB,CAAC;EAED,MAAMc,OAAO,GAAG,IAAAC,cAAO,EACrB,MAAMV,MAAM,CAACC,IAAI,CAACV,MAAM,IAAI,CAAC,CAAC,CAAC,CAACoB,MAAM,KAAK,CAAC,EAC5C,CAACpB,MAAM,CACT,CAAC;EAED,MAAMqB,YAAY,GAAG,IAAAhB,kBAAW,EAAC,MAAM;IACrC,MAAMiB,UAAU,GAAGb,MAAM,CAACC,IAAI,CAACb,MAAM,CAAC,CAACc,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;MAC1D,MAAMU,SAAS,GAAG7B,UAAU,CAACS,OAAO,GAAGU,GAAG,CAAY;MACtD,IAAIU,SAAS,EAAE;QACb,MAAMhB,KAAK,GAAGgB,SAAS,CAAC1B,MAAM,CAAC;QAC/B,IAAIU,KAAK,EAAE;UACT,OAAO;YACL,GAAGK,GAAG;YACN,CAACC,GAAG,GAAGN;UACT,CAAC;QACH;MACF;MAEA,OAAOK,GAAG;IACZ,CAAC,EAAE,CAAC,CAA4B,CAAC;IAEjC,MAAMY,SAAS,GAAGf,MAAM,CAACC,IAAI,CAACY,UAAU,CAAC,CAACF,MAAM,GAAG,CAAC;IACpDnB,SAAS,CAACuB,SAAS,GAAGF,UAAU,GAAG,IAAI,CAAC;;IAExC;IACA;IACA,MAAMG,mBAAmB,GAAGhB,MAAM,CAACC,IAAI,CAACY,UAAU,CAAC,CAACI,IAAI,CAAEb,GAAG,IAAK;MAChE,MAAMc,SAAS,GAAG3B,MAAM,GAAGa,GAAG,CAAY;MAC1C,MAAMe,SAAS,GAAGN,UAAU,CAACT,GAAG,CAAY;MAC5C,OAAOc,SAAS,KAAKC,SAAS;IAChC,CAAC,CAAC;IAEFhC,aAAa,CAACO,OAAO,GAAGsB,mBAAmB;EAC7C,CAAC,EAAE,CAACzB,MAAM,EAAEH,MAAM,CAAC,CAAC;EAEpB,MAAMgC,aAAa,GAAG,IAAAxB,kBAAW,EACXC,KAAQ,IAAK;IAC/B,MAAMiB,SAAS,GAAG7B,UAAU,CAACS,OAAO,GAAGG,KAAK,CAAC;IAC7C,IAAIiB,SAAS,EAAE;MACb,MAAMhB,KAAK,GAAGgB,SAAS,CAAC1B,MAAM,CAAC;MAC/BO,QAAQ,CAACE,KAAK,EAAEC,KAAK,CAAC;IACxB;EACF,CAAC,EACD,CAACV,MAAM,EAAEO,QAAQ,CACnB,CAAC;EAED,MAAM0B,QAAQ,GAAG,IAAAzB,kBAAW,EACN0B,IAAO,IAAK;IAC9B,MAAMC,UAAU,GAAGA,CAAA,KAAM;MACvBH,aAAa,CAACE,IAAI,CAAC;IACrB,CAAC;IAED,MAAME,YAAY,GAAIlB,KAAW,IAAK;MACpCD,QAAQ,CAACiB,IAAI,EAAEhB,KAAK,CAAC;IACvB,CAAC;IAED,OAAO;MACLmB,MAAM,EAAEF,UAAU;MAClBvC,QAAQ,EAAEwC;IACZ,CAAC;EACH,CAAC,EACD,CAACnB,QAAQ,EAAEe,aAAa,CAC1B,CAAC;EAED,MAAMM,IAAI,GAAG,IAAAhB,cAAO,EAClB,OAAO;IACLtB,MAAM;IACNiB,QAAQ;IACRd,MAAM;IACNI,QAAQ;IACRc,OAAO;IACPY,QAAQ;IACRhC,SAAS;IACTN,QAAQ,EAAE6B;EACZ,CAAC,CAAC,EACF,CAACxB,MAAM,EAAEiB,QAAQ,EAAEd,MAAM,EAAEI,QAAQ,EAAEc,OAAO,EAAEY,QAAQ,EAAET,YAAY,CACtE,CAAC;EAED,IAAAnB,gBAAS,EAAC,MAAM;IACd,IAAI,CAACN,aAAa,CAACO,OAAO,EAAE;IAC5BP,aAAa,CAACO,OAAO,GAAG,KAAK;IAC7BV,QAAQ,GAAG0C,IAAI,CAAC;EAClB,CAAC,EAAE,CAACA,IAAI,EAAE1C,QAAQ,CAAC,CAAC;EAEpB,OAAO0C,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","useForm","initialValues","validate","onChange","validators","useRef","triggerChange","values","setValues","useState","errors","setErrors","useEffect","current","setError","useCallback","field","error","prev","Object","keys","reduce","acc","key","setValue","value","nextValues","p","nextErrors","forEach","validator","isValid","useMemo","length","validateForm","hasErrors","shouldTriggerChange","some","prevError","nextError","validateField","register","name","handleBlur","handleChange","onBlur","form"],"sourceRoot":"../../../src","sources":["components/useForm.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,18 +19,18 @@ function Card({
19
19
  }) {
20
20
  const [registeredFields, setRegisteredFields] = useState(new Set());
21
21
  const form = useForm({
22
- initialValues: initialValue ?? {
23
- cvc: "",
24
- expiry: "",
25
- number: "",
26
- name: ""
22
+ initialValues: {
23
+ cvc: initialValue?.cvc ?? "",
24
+ expiry: initialValue?.expiry ?? "",
25
+ number: initialValue?.number ?? "",
26
+ name: initialValue?.name ?? ""
27
27
  },
28
28
  validate: {
29
29
  name: values => {
30
30
  if (!registeredFields.has("name")) {
31
31
  return undefined;
32
32
  }
33
- if (values.name.length === 0) {
33
+ if (values.name == null || values.name.length === 0) {
34
34
  return "invalid";
35
35
  }
36
36
  return undefined;
@@ -39,6 +39,9 @@ function Card({
39
39
  if (!registeredFields.has("number")) {
40
40
  return undefined;
41
41
  }
42
+ if (values.number == null) {
43
+ return "invalid";
44
+ }
42
45
  const cardValidation = validateNumber(values.number);
43
46
  if (!cardValidation.isValid) {
44
47
  return "invalid";
@@ -52,6 +55,9 @@ function Card({
52
55
  if (!registeredFields.has("expiry")) {
53
56
  return undefined;
54
57
  }
58
+ if (values.expiry == null) {
59
+ return "invalid";
60
+ }
55
61
  const expiryValidation = validateExpiry(values.expiry);
56
62
  if (!expiryValidation.isValid) {
57
63
  return "invalid";
@@ -62,6 +68,9 @@ function Card({
62
68
  if (!registeredFields.has("cvc")) {
63
69
  return undefined;
64
70
  }
71
+ if (values.cvc == null) {
72
+ return "invalid";
73
+ }
65
74
  const cvcValidation = validateCVC(values.cvc, values.number);
66
75
  if (!cvcValidation.isValid) {
67
76
  return "invalid";
@@ -1 +1 @@
1
- {"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,12 @@ export async function changePayload(encrypt, form, fields) {
14
14
  lastFour,
15
15
  isValid: isValidCardNumber
16
16
  } = validateNumber(number);
17
+ if (brand !== "american-express" && cvc?.length === 4) {
18
+ form.setValues(prev => ({
19
+ ...prev,
20
+ cvc: cvc.slice(0, 3)
21
+ }));
22
+ }
17
23
  return {
18
24
  card: {
19
25
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["validateNumber","validateExpiry","validateCVC","changePayload","encrypt","form","fields","name","number","rawNumber","expiry","cvc","values","includes","replace","brand","localBrands","bin","lastFour","isValid","isValidCardNumber","card","encryptedNumber","formatExpiry","encryptedCVC","isComplete","errors","Object","keys","length","cardValidation","expiryValidation","cvcValidation","isAcceptedBrand","acceptedBrands","cardNumberValidationResult","isBrandAccepted","isLocalBrandAccepted","some","localBrand","parsedExpiry","month","year","cardNumber"],"sourceRoot":"../../../../src","sources":["components/Card/utilities.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["validateNumber","validateExpiry","validateCVC","changePayload","encrypt","form","fields","name","number","rawNumber","expiry","cvc","values","includes","replace","brand","localBrands","bin","lastFour","isValid","isValidCardNumber","length","setValues","prev","slice","card","encryptedNumber","formatExpiry","encryptedCVC","isComplete","errors","Object","keys","cardValidation","expiryValidation","cvcValidation","isAcceptedBrand","acceptedBrands","cardNumberValidationResult","isBrandAccepted","isLocalBrandAccepted","some","localBrand","parsedExpiry","month","year","cardNumber"],"sourceRoot":"../../../../src","sources":["components/Card/utilities.ts"],"mappings":"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","ignoreList":[]}
@@ -35,15 +35,26 @@ export function useForm({
35
35
  triggerChange.current = true;
36
36
  }, []);
37
37
  const setValue = useCallback((field, value) => {
38
- if (errors?.[field]) {
39
- setError(field, undefined);
40
- }
41
- setValues(previous => ({
42
- ...previous,
38
+ const nextValues = {
39
+ ...values,
40
+ [field]: value
41
+ };
42
+ setValues(p => ({
43
+ ...p,
43
44
  [field]: value
44
45
  }));
46
+ const nextErrors = {};
47
+ Object.keys(errors ?? {}).forEach(key => {
48
+ if (key === field) return;
49
+ const validator = validators.current?.[key];
50
+ if (!validator) return;
51
+ const error = validator(nextValues);
52
+ if (!error) return;
53
+ nextErrors[key] = error;
54
+ });
55
+ setErrors(nextErrors);
45
56
  triggerChange.current = true;
46
- }, [errors, setError]);
57
+ }, [values, errors]);
47
58
  const isValid = useMemo(() => Object.keys(errors ?? {}).length === 0, [errors]);
48
59
  const validateForm = useCallback(() => {
49
60
  const nextErrors = Object.keys(values).reduce((acc, key) => {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useForm","initialValues","validate","onChange","validators","triggerChange","values","setValues","errors","setErrors","current","setError","field","error","prev","Object","keys","reduce","acc","key","setValue","value","undefined","previous","isValid","length","validateForm","nextErrors","validator","hasErrors","shouldTriggerChange","some","prevError","nextError","validateField","register","name","handleBlur","handleChange","onBlur","form"],"sourceRoot":"../../../src","sources":["components/useForm.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useForm","initialValues","validate","onChange","validators","triggerChange","values","setValues","errors","setErrors","current","setError","field","error","prev","Object","keys","reduce","acc","key","setValue","value","nextValues","p","nextErrors","forEach","validator","isValid","length","validateForm","hasErrors","shouldTriggerChange","some","prevError","nextError","validateField","register","name","handleBlur","handleChange","onBlur","form"],"sourceRoot":"../../../src","sources":["components/useForm.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ import { StyleProp, TextInputProps, TextStyle } from "react-native";
8
8
  export interface BaseProps extends Omit<TextInputProps, "onChange" | "onChangeText" | "inputMode" | "autoComplete" | "value"> {
9
9
  }
10
10
  export interface CardProps {
11
- initialValue?: CardForm;
11
+ initialValue?: Partial<CardForm>;
12
12
  config?: CardConfig;
13
13
  children: ReactNode;
14
14
  onChange?: (payload: CardPayload) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,SACf,SAAQ,IAAI,CACV,cAAc,EACd,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CACrE;CAAG;AAEN,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,iBAAS,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,qBAyF3E;AAED,QAAA,MAAM,aAAa;;;;;CAKjB,CAAC;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAG5C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,SACf,SAAQ,IAAI,CACV,cAAc,EACd,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CACrE;CAAG;AAEN,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,iBAAS,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,qBAkG3E;AAED,QAAA,MAAM,aAAa;;;;;CAKjB,CAAC;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC7B,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAqB5E;AAED,wBAAgB,eAAe,CAC7B,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,EAC3C,0BAA0B,EAAE,0BAA0B,GACrD,OAAO,CAUT"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC7B,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CAmCtB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAqB5E;AAED,wBAAgB,eAAe,CAC7B,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,EAC3C,0BAA0B,EAAE,0BAA0B,GACrD,OAAO,CAUT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../src/components/useForm.tsx"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1B,IAAI,EAAE,CAAC,KACJ;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAEhC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,UAAU,cAAc,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EACxC,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CA8ItC"}
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../src/components/useForm.tsx"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1B,IAAI,EAAE,CAAC,KACJ;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAEhC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,UAAU,cAAc,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EACxC,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAmJtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evervault/evervault-react-native",
3
- "version": "1.2.2",
3
+ "version": "1.3.1",
4
4
  "description": "Evervault react native sdk",
5
5
  "private": false,
6
6
  "main": "./dist/commonjs/index.js",
@@ -23,7 +23,7 @@ export interface BaseProps
23
23
  > {}
24
24
 
25
25
  export interface CardProps {
26
- initialValue?: CardForm;
26
+ initialValue?: Partial<CardForm>;
27
27
  config?: CardConfig;
28
28
  children: ReactNode;
29
29
  onChange?: (payload: CardPayload) => void;
@@ -36,11 +36,11 @@ function Card({ initialValue, config, children, onChange, style }: CardProps) {
36
36
  );
37
37
 
38
38
  const form = useForm<CardForm>({
39
- initialValues: initialValue ?? {
40
- cvc: "",
41
- expiry: "",
42
- number: "",
43
- name: "",
39
+ initialValues: {
40
+ cvc: initialValue?.cvc ?? "",
41
+ expiry: initialValue?.expiry ?? "",
42
+ number: initialValue?.number ?? "",
43
+ name: initialValue?.name ?? "",
44
44
  },
45
45
  validate: {
46
46
  name: (values) => {
@@ -48,7 +48,7 @@ function Card({ initialValue, config, children, onChange, style }: CardProps) {
48
48
  return undefined;
49
49
  }
50
50
 
51
- if (values.name.length === 0) {
51
+ if (values.name == null || values.name.length === 0) {
52
52
  return "invalid";
53
53
  }
54
54
 
@@ -58,6 +58,9 @@ function Card({ initialValue, config, children, onChange, style }: CardProps) {
58
58
  if (!registeredFields.has("number")) {
59
59
  return undefined;
60
60
  }
61
+ if (values.number == null) {
62
+ return "invalid";
63
+ }
61
64
  const cardValidation = validateNumber(values.number);
62
65
  if (!cardValidation.isValid) {
63
66
  return "invalid";
@@ -73,6 +76,9 @@ function Card({ initialValue, config, children, onChange, style }: CardProps) {
73
76
  if (!registeredFields.has("expiry")) {
74
77
  return undefined;
75
78
  }
79
+ if (values.expiry == null) {
80
+ return "invalid";
81
+ }
76
82
  const expiryValidation = validateExpiry(values.expiry);
77
83
  if (!expiryValidation.isValid) {
78
84
  return "invalid";
@@ -84,6 +90,9 @@ function Card({ initialValue, config, children, onChange, style }: CardProps) {
84
90
  if (!registeredFields.has("cvc")) {
85
91
  return undefined;
86
92
  }
93
+ if (values.cvc == null) {
94
+ return "invalid";
95
+ }
87
96
  const cvcValidation = validateCVC(values.cvc, values.number);
88
97
  if (!cvcValidation.isValid) {
89
98
  return "invalid";
@@ -23,6 +23,14 @@ export async function changePayload(
23
23
  lastFour,
24
24
  isValid: isValidCardNumber,
25
25
  } = validateNumber(number);
26
+
27
+ if (brand !== "american-express" && cvc?.length === 4) {
28
+ form.setValues((prev) => ({
29
+ ...prev,
30
+ cvc: cvc.slice(0, 3),
31
+ }))
32
+ }
33
+
26
34
  return {
27
35
  card: {
28
36
  name,
@@ -70,18 +70,23 @@ export function useForm<T extends object>({
70
70
 
71
71
  const setValue = useCallback(
72
72
  <K extends keyof T>(field: K, value: T[K]) => {
73
- if (errors?.[field]) {
74
- setError(field, undefined);
75
- }
76
-
77
- setValues((previous) => ({
78
- ...previous,
79
- [field]: value,
80
- }));
73
+ const nextValues = { ...values, [field]: value };
74
+ setValues((p) => ({ ...p, [field]: value }));
75
+
76
+ const nextErrors: Partial<Record<keyof T, string>> = {};
77
+ Object.keys(errors ?? {}).forEach((key) => {
78
+ if (key === field) return;
79
+ const validator = validators.current?.[key as keyof T];
80
+ if (!validator) return;
81
+ const error = validator(nextValues);
82
+ if (!error) return;
83
+ nextErrors[key as keyof T] = error;
84
+ });
85
+ setErrors(nextErrors);
81
86
 
82
87
  triggerChange.current = true;
83
88
  },
84
- [errors, setError]
89
+ [values, errors]
85
90
  );
86
91
 
87
92
  const isValid = useMemo(