1
1
import { useForm } from 'react-hook-form' ;
2
2
import { InputField } from '../Input/InputField.component' ;
3
+ import { getCustomNumberValidation } from '../../utils/functions/functions' ;
4
+
5
+ const inputField = [
6
+ { label : 'Fornavn' , name : 'firstName' } ,
7
+ { label : 'Etternavn' , name : 'lastName' } ,
8
+ { label : 'Adresse' , name : 'address1' } ,
9
+ {
10
+ label : 'Postnummer' ,
11
+ name : 'postcode' ,
12
+ customValidation : getCustomNumberValidation (
13
+ {
14
+ minLength : 'Postnummer må være minimum 4 tall' ,
15
+ maxLength : 'Postnummer må være maksimalt 4 tall' ,
16
+ pattern : 'Postnummer må bare være tall' ,
17
+ } ,
18
+ 4
19
+ ) ,
20
+ } ,
21
+ { label : 'Sted' , name : 'city' } ,
22
+ {
23
+ label : 'Epost' ,
24
+ name : 'email' ,
25
+ customValidation : getCustomNumberValidation (
26
+ { pattern : 'Du må oppgi en gyldig epost' } ,
27
+ undefined ,
28
+ / ^ [ a - z 0 - 9 _ ! # $ % & ' * + \/ = ? ` { | } ~ ^ . - ] + @ [ a - z 0 - 9 . - ] + $ / gim
29
+ ) ,
30
+ } ,
31
+ {
32
+ label : 'Telefon' ,
33
+ name : 'phone' ,
34
+ customValidation : getCustomNumberValidation (
35
+ {
36
+ minLength : 'Minimum 8 tall i telefonnummeret' ,
37
+ maxLength : 'Maksimalt 8 tall i telefonnummeret' ,
38
+ pattern : 'Ikke gyldig telefonnummer' ,
39
+ } ,
40
+ 8
41
+ ) ,
42
+ } ,
43
+ ] ;
3
44
4
45
const Billing = ( { onSubmit } ) => {
5
46
const {
@@ -12,82 +53,16 @@ const Billing = ({ onSubmit }) => {
12
53
< section className = "text-gray-700 container p-4 py-2 mx-auto" >
13
54
< form onSubmit = { handleSubmit ( onSubmit ) } >
14
55
< div className = "mx-auto lg:w-1/2 flex flex-wrap" >
15
- < InputField
16
- label = "Fornavn"
17
- name = "firstName"
18
- errors = { errors }
19
- register = { register }
20
- />
21
- < InputField
22
- label = "Etternavn"
23
- name = "lastName"
24
- errors = { errors }
25
- register = { register }
26
- />
27
- < InputField
28
- label = "Adresse"
29
- name = "address1"
30
- errors = { errors }
31
- register = { register }
32
- />
33
- < InputField
34
- label = "Postnummer"
35
- name = "postcode"
36
- errors = { errors }
37
- register = { register }
38
- customValidation = { {
39
- minLength : {
40
- value : 4 ,
41
- message : 'Postnummer må være minimum 4 tall' ,
42
- } ,
43
- maxLength : {
44
- value : 4 ,
45
- message : 'Postnummer må være maksimalt 4 tall' ,
46
- } ,
47
- pattern : {
48
- value : / ^ \d + $ / i,
49
- message : 'Postnummer må bare være tall' ,
50
- } ,
51
- } }
52
- />
53
- < InputField
54
- label = "Sted"
55
- name = "city"
56
- errors = { errors }
57
- register = { register }
58
- />
59
- < InputField
60
- label = "Epost"
61
- name = "email"
62
- errors = { errors }
63
- register = { register }
64
- customValidation = { {
65
- pattern : {
66
- value : / [ ^ @ ] + @ [ ^ @ ] + \. [ ^ @ ] + / i,
67
- message : 'Du må oppgi en gyldig epost' ,
68
- } ,
69
- } }
70
- />
71
- < InputField
72
- label = "Telefon"
73
- name = "phone"
74
- errors = { errors }
75
- register = { register }
76
- customValidation = { {
77
- minLength : {
78
- value : 8 ,
79
- message : 'Minimum 8 tall i telefonnummeret' ,
80
- } ,
81
- maxLength : {
82
- value : 8 ,
83
- message : 'Maksimalt 8 tall i telefonnummeret' ,
84
- } ,
85
- pattern : {
86
- value : / ^ \d + $ / i,
87
- message : 'Ikke gyldig telefonnummer' ,
88
- } ,
89
- } }
90
- />
56
+ { inputField . map ( ( { label, name, customValidation } , key ) => (
57
+ < InputField
58
+ key = { key }
59
+ label = { label }
60
+ name = { name }
61
+ customValidation = { customValidation }
62
+ errors = { errors }
63
+ register = { register }
64
+ />
65
+ ) ) }
91
66
< OrderButton register = { register } />
92
67
</ div >
93
68
</ form >
0 commit comments