expo-openpay 0.1.22 → 0.1.23
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.
|
@@ -39,7 +39,7 @@ export default function FormProvider({ children, initialValues = {}, onSubmit, v
|
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
newErrors["exp"] =
|
|
42
|
-
validationMessages?.expInput?.
|
|
42
|
+
validationMessages?.expInput?.required || "Expiration is required";
|
|
43
43
|
}
|
|
44
44
|
if (isEmpty(values["expMonth"]))
|
|
45
45
|
newErrors["expMonth"] =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormContext.js","sourceRoot":"","sources":["../../src/context/FormContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, useContext, useState } from \"react\";\n\nimport { tokenizeCard } from \"../ExpoOpenpayModule\";\nimport { unformat } from \"../utility/formatting\";\n\ntype FormValues = Record<string, any>;\ntype FormErrors = Record<string, string | undefined>;\ntype FormTouched = Record<string, boolean>;\n\ninterface FormContextType {\n errors: FormErrors;\n isSubmitting: boolean;\n touched: FormTouched;\n values: FormValues;\n handleSubmit: () => Promise<any>;\n resetForm: () => void;\n setFieldValue: (field: string, value: any) => void;\n setFieldTouched: (field: string, touched?: boolean) => void;\n setFieldError: (field: string, error: string | undefined) => void;\n}\n\nconst FormContext = createContext<FormContextType | undefined>(undefined);\n\nexport const useFormContext = () => {\n const context = useContext(FormContext);\n if (!context) {\n throw new Error(\"useFormContext must be used within a FormProvider\");\n }\n return context;\n};\n\nexport default function FormProvider({\n children,\n initialValues = {},\n onSubmit,\n validationMessages = {},\n}: {\n children: React.ReactNode;\n initialValues?: FormValues;\n onSubmit?: (token: string) => any;\n onDeviceSessionId?: (id: string) => any;\n validationMessages?: any;\n}) {\n const [values, setValues] = useState<FormValues>(initialValues);\n const [errors, setErrors] = useState<FormErrors>({});\n const [touched, setTouched] = useState<FormTouched>({});\n const [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n const isEmpty = (val: any) =>\n val === undefined ||\n val === null ||\n (typeof val === \"string\" && val.trim() === \"\");\n\n const handleSubmit = async (): Promise<any> => {\n try {\n setIsSubmitting(true);\n\n const newErrors: FormErrors = {};\n\n // Required validations\n if (isEmpty(values[\"cardholderName\"]))\n newErrors[\"cardholderName\"] =\n validationMessages?.cardholderInput?.required ||\n \"Cardholder name is required\";\n\n if (isEmpty(values[\"cardNumber\"]))\n newErrors[\"cardNumber\"] =\n validationMessages?.cardNumberInput?.required ||\n \"Card number is required\";\n\n if (isEmpty(values[\"cvc\"]))\n newErrors[\"cvc\"] =\n validationMessages?.cvv2Input?.required || \"CVC is required\";\n\n if (values[\"exp\"]) {\n values[\"expMonth\"] = values[\"exp\"].slice(0, 2);\n values[\"expYear\"] = values[\"exp\"].slice(3);\n } else {\n newErrors[\"exp\"] =\n validationMessages?.expInput?.
|
|
1
|
+
{"version":3,"file":"FormContext.js","sourceRoot":"","sources":["../../src/context/FormContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, useContext, useState } from \"react\";\n\nimport { tokenizeCard } from \"../ExpoOpenpayModule\";\nimport { unformat } from \"../utility/formatting\";\n\ntype FormValues = Record<string, any>;\ntype FormErrors = Record<string, string | undefined>;\ntype FormTouched = Record<string, boolean>;\n\ninterface FormContextType {\n errors: FormErrors;\n isSubmitting: boolean;\n touched: FormTouched;\n values: FormValues;\n handleSubmit: () => Promise<any>;\n resetForm: () => void;\n setFieldValue: (field: string, value: any) => void;\n setFieldTouched: (field: string, touched?: boolean) => void;\n setFieldError: (field: string, error: string | undefined) => void;\n}\n\nconst FormContext = createContext<FormContextType | undefined>(undefined);\n\nexport const useFormContext = () => {\n const context = useContext(FormContext);\n if (!context) {\n throw new Error(\"useFormContext must be used within a FormProvider\");\n }\n return context;\n};\n\nexport default function FormProvider({\n children,\n initialValues = {},\n onSubmit,\n validationMessages = {},\n}: {\n children: React.ReactNode;\n initialValues?: FormValues;\n onSubmit?: (token: string) => any;\n onDeviceSessionId?: (id: string) => any;\n validationMessages?: any;\n}) {\n const [values, setValues] = useState<FormValues>(initialValues);\n const [errors, setErrors] = useState<FormErrors>({});\n const [touched, setTouched] = useState<FormTouched>({});\n const [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n const isEmpty = (val: any) =>\n val === undefined ||\n val === null ||\n (typeof val === \"string\" && val.trim() === \"\");\n\n const handleSubmit = async (): Promise<any> => {\n try {\n setIsSubmitting(true);\n\n const newErrors: FormErrors = {};\n\n // Required validations\n if (isEmpty(values[\"cardholderName\"]))\n newErrors[\"cardholderName\"] =\n validationMessages?.cardholderInput?.required ||\n \"Cardholder name is required\";\n\n if (isEmpty(values[\"cardNumber\"]))\n newErrors[\"cardNumber\"] =\n validationMessages?.cardNumberInput?.required ||\n \"Card number is required\";\n\n if (isEmpty(values[\"cvc\"]))\n newErrors[\"cvc\"] =\n validationMessages?.cvv2Input?.required || \"CVC is required\";\n\n if (values[\"exp\"]) {\n values[\"expMonth\"] = values[\"exp\"].slice(0, 2);\n values[\"expYear\"] = values[\"exp\"].slice(3);\n } else {\n newErrors[\"exp\"] =\n validationMessages?.expInput?.required || \"Expiration is required\";\n }\n\n if (isEmpty(values[\"expMonth\"]))\n newErrors[\"expMonth\"] =\n validationMessages?.expMonthInput?.required ||\n \"Expiration month is required\";\n\n if (isEmpty(values[\"expYear\"]))\n newErrors[\"expYear\"] =\n validationMessages?.expYearInput?.required ||\n \"Expiration year is required\";\n\n if (Object.keys(newErrors).length > 0) {\n setErrors(newErrors);\n\n const touchedFields: FormTouched = {};\n Object.keys(newErrors).forEach((key) => {\n touchedFields[key] = true;\n });\n\n setTouched((prev) => ({ ...prev, ...touchedFields }));\n\n return;\n }\n\n const token = await tokenizeCard(\n unformat(values[\"cardNumber\"]),\n values[\"cardholderName\"],\n values[\"expYear\"],\n values[\"expMonth\"],\n values[\"cvc\"],\n );\n\n if (onSubmit) await onSubmit(token);\n\n resetForm();\n } catch (e) {\n if (e instanceof Error) {\n console.error(\"Error during submission:\", e.message);\n } else {\n console.error(\"Unknown error during submission\", e);\n }\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const resetForm = () => {\n setValues({});\n setErrors({});\n setTouched({});\n };\n\n const setFieldValue = (field: string, value: any) =>\n setValues((prev) => ({ ...prev, [field]: value }));\n\n const setFieldTouched = (field: string, isTouched: boolean = true) =>\n setTouched((prev) => ({ ...prev, [field]: isTouched }));\n\n const setFieldError = (field: string, error: string | undefined) =>\n setErrors((prev) => ({ ...prev, [field]: error }));\n\n return (\n <FormContext.Provider\n value={{\n errors,\n isSubmitting,\n touched,\n values,\n handleSubmit,\n resetForm,\n setFieldValue,\n setFieldTouched,\n setFieldError,\n }}\n >\n {children}\n </FormContext.Provider>\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -77,7 +77,7 @@ export default function FormProvider({
|
|
|
77
77
|
values["expYear"] = values["exp"].slice(3);
|
|
78
78
|
} else {
|
|
79
79
|
newErrors["exp"] =
|
|
80
|
-
validationMessages?.expInput?.
|
|
80
|
+
validationMessages?.expInput?.required || "Expiration is required";
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
if (isEmpty(values["expMonth"]))
|