@@ -3,45 +3,60 @@ import { useForm } from 'react-hook-form';
3
3
const Input = ( {
4
4
name,
5
5
label,
6
- register,
6
+ //register,
7
+ registerRef,
7
8
placeholder,
8
9
value,
9
10
parameters,
10
- type = 'text' ,
11
+ type = 'text' ,
11
12
readOnly = false ,
12
- } ) => (
13
- < >
14
- < label className = "pb-4" > { label } </ label >
15
- < input
16
- className = "w-full px-4 py-2 mt-2 text-base bg-white border border-gray-400 rounded focus:outline-none focus:border-black"
17
- name = { name }
18
- placeholder = { placeholder }
19
- type = "text"
20
- value = { value }
21
- ref = { register ( parameters ) }
22
- type = { type }
23
- readOnly = { readOnly }
24
- />
25
- </ >
26
- ) ;
13
+ } ) => {
14
+ const { register } = useForm ( ) ;
15
+
16
+ return (
17
+ < >
18
+ < label className = "pb-4" > { label } </ label >
19
+ < input
20
+ className = "w-full px-4 py-2 mt-2 text-base bg-white border border-gray-400 rounded focus:outline-none focus:border-black"
21
+ name = { name }
22
+ placeholder = { placeholder }
23
+ type = "text"
24
+ value = { value }
25
+ { ...register ( registerRef , parameters ) }
26
+ type = { type }
27
+ readOnly = { readOnly }
28
+ />
29
+ </ >
30
+ ) ;
31
+ } ;
27
32
28
33
const Billing = ( { onSubmit } ) => {
29
- const { register, handleSubmit, errors } = useForm ( ) ;
34
+ const inputClasses =
35
+ 'w-full px-4 py-2 mt-2 text-base bg-white border border-gray-400 rounded focus:outline-none focus:border-black' ;
36
+ const {
37
+ register,
38
+ handleSubmit,
39
+ formState : { errors } ,
40
+ } = useForm ( ) ;
30
41
31
42
return (
32
43
< >
33
44
< section className = "text-gray-700" >
34
45
< form onSubmit = { handleSubmit ( onSubmit ) } >
35
- < div className = "container p-4 py-2 mx-auto" >
46
+ < div className = "container p-4 py-2 mx-auto" >
36
47
< div className = "mx-auto lg:w-1/2 md:w-2/3" >
37
48
< div className = "flex flex-wrap -m-2" >
38
49
< div className = "w-1/2 p-2" >
39
- < Input
50
+ < label className = "pb-4" > Fornavn</ label >
51
+ < input
52
+ className = { inputClasses }
40
53
name = "firstName"
41
54
placeholder = "Fornavn"
42
55
label = "Fornavn"
43
- register = { register }
44
- parameters = { { required : 'Dette feltet er påkrevd' } }
56
+ type = "text"
57
+ { ...register ( 'firstName' , {
58
+ required : 'Dette feltet er påkrevd' ,
59
+ } ) }
45
60
/>
46
61
{ errors . firstName && (
47
62
< span className = "text-red-500" >
@@ -50,12 +65,16 @@ const Billing = ({ onSubmit }) => {
50
65
) }
51
66
</ div >
52
67
< div className = "w-1/2 p-2" >
53
- < Input
68
+ < label className = "pb-4" > Etternavn</ label >
69
+ < input
70
+ className = { inputClasses }
54
71
name = "lastName"
55
72
placeholder = "Etternavn"
56
73
label = "Etternavn"
57
- register = { register }
58
- parameters = { { required : 'Dette feltet er påkrevd' } }
74
+ type = "text"
75
+ { ...register ( 'lastName' , {
76
+ required : 'Dette feltet er påkrevd' ,
77
+ } ) }
59
78
/>
60
79
{ errors . lastName && (
61
80
< span className = "text-red-500" >
@@ -64,26 +83,33 @@ const Billing = ({ onSubmit }) => {
64
83
) }
65
84
</ div >
66
85
< div className = "w-1/2 p-2" >
67
- < Input
86
+ < label className = "pb-4" > Addresse</ label >
87
+ < input
88
+ className = { inputClasses }
68
89
name = "address1"
69
90
placeholder = "Adresse"
70
91
label = "Adresse"
71
- register = { register }
72
- parameters = { { required : 'Dette feltet er påkrevd' } }
92
+ type = "text"
93
+ { ...register ( 'address1' , {
94
+ required : 'Dette feltet er påkrevd' ,
95
+ } ) }
73
96
/>
97
+
74
98
{ errors . address1 && (
75
99
< span className = "text-red-500" >
76
100
FEIL: { errors . address1 . message }
77
101
</ span >
78
102
) }
79
103
</ div >
80
104
< div className = "w-1/2 p-2" >
81
- < Input
105
+ < label className = "pb-4" > Addresse</ label >
106
+ < input
107
+ className = { inputClasses }
82
108
name = "postcode"
83
109
placeholder = "Postnummer"
84
110
label = "Postnummer"
85
- register = { register }
86
- parameters = { {
111
+ type = "text"
112
+ { ... register ( 'postcode' , {
87
113
required : 'Dette feltet er påkrevd' ,
88
114
minLength : {
89
115
value : 4 ,
@@ -97,7 +123,7 @@ const Billing = ({ onSubmit }) => {
97
123
value : / ^ [ 0 - 9 ] + $ / i,
98
124
message : 'Postnummer må bare være tall' ,
99
125
} ,
100
- } }
126
+ } ) }
101
127
/>
102
128
{ errors . postcode && (
103
129
< span className = "text-red-500" >
@@ -106,46 +132,56 @@ const Billing = ({ onSubmit }) => {
106
132
) }
107
133
</ div >
108
134
< div className = "w-1/2 p-2" >
109
- < Input
135
+ < label className = "pb-4" > Sted</ label >
136
+ < input
137
+ className = { inputClasses }
110
138
name = "city"
111
139
placeholder = "Sted"
112
140
label = "Sted"
113
- register = { register }
114
- parameters = { { required : 'Dette feltet er påkrevd' } }
141
+ type = "text"
142
+ { ...register ( 'city' , {
143
+ required : 'Dette feltet er påkrevd' ,
144
+ } ) }
115
145
/>
146
+
116
147
{ errors . city && (
117
148
< span className = "text-red-500" >
118
149
FEIL: { errors . city . message }
119
150
</ span >
120
151
) }
121
152
</ div >
122
153
< div className = "w-1/2 p-2" >
123
- < Input
154
+ < label className = "pb-4" > Epost</ label >
155
+ < input
156
+ className = { inputClasses }
124
157
name = "email"
125
158
placeholder = "Epost"
126
159
label = "Epost"
127
- register = { register }
128
- parameters = { {
160
+ type = "text"
161
+ { ... register ( 'email' , {
129
162
required : 'Dette feltet er påkrevd' ,
130
163
pattern : {
131
164
value : / [ ^ @ ] + @ [ ^ @ ] + \. [ ^ @ ] + / i,
132
165
message : 'Du må oppgi en gyldig epost' ,
133
166
} ,
134
- } }
167
+ } ) }
135
168
/>
169
+
136
170
{ errors . email && (
137
171
< span className = "text-red-500" >
138
172
FEIL: { errors . email . message }
139
173
</ span >
140
174
) }
141
175
</ div >
142
176
< div className = "w-1/2 p-2" >
143
- < Input
177
+ < label className = "pb-4" > Telefon</ label >
178
+ < input
179
+ className = { inputClasses }
144
180
name = "phone"
145
181
placeholder = "Telefon"
146
182
label = "Telefon"
147
- register = { register }
148
- parameters = { {
183
+ type = "text"
184
+ { ... register ( 'phone' , {
149
185
required : 'Dette feltet er påkrevd' ,
150
186
minLength : {
151
187
value : 8 ,
@@ -160,24 +196,25 @@ const Billing = ({ onSubmit }) => {
160
196
value : / ^ [ 0 - 9 ] + $ / i,
161
197
message : 'Ikke gyldig telefonnummer' ,
162
198
} ,
163
- } }
199
+ } ) }
164
200
/>
201
+
165
202
{ errors . phone && (
166
203
< span className = "text-red-500" >
167
204
FEIL: { errors . phone . message }
168
205
</ span >
169
206
) }
170
207
</ div >
171
208
< div className = "w-1/2 p-2" >
172
- < Input
209
+ < input
173
210
name = "paymentMethod"
174
211
placeholder = "paymentMethod"
175
212
label = ""
176
213
type = "hidden"
177
214
value = "cod"
178
- register = { register }
179
215
checked
180
- readOnly
216
+ type = "hidden"
217
+ { ...register ( 'paymentMethod' ) }
181
218
/>
182
219
</ div >
183
220
< div className = "w-full p-2" >
0 commit comments