@@ -17,6 +17,25 @@ export function SubscribeButton({ label }: { label: string }) {
1717 )
1818}
1919
20+ function ErrorMessages ( {
21+ errors,
22+ } : {
23+ errors : Array < string | { message : string } >
24+ } ) {
25+ return (
26+ < >
27+ { errors . map ( ( error ) => (
28+ < div
29+ key = { typeof error === 'string' ? error : error . message }
30+ className = "text-red-500 mt-1 font-bold"
31+ >
32+ { typeof error === 'string' ? error : error . message }
33+ </ div >
34+ ) ) }
35+ </ >
36+ )
37+ }
38+
2039export function TextField ( {
2140 label,
2241 placeholder,
@@ -39,11 +58,7 @@ export function TextField({
3958 className = "w-full px-4 py-2 rounded-md border border-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500"
4059 />
4160 </ label >
42- { errors . map ( ( error : string ) => (
43- < div key = { error } className = "text-red-500 mt-1 font-bold" >
44- { error }
45- </ div >
46- ) ) }
61+ { field . state . meta . isTouched && < ErrorMessages errors = { errors } /> }
4762 </ div >
4863 )
4964}
@@ -70,11 +85,7 @@ export function TextArea({
7085 className = "w-full px-4 py-2 rounded-md border border-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-500"
7186 />
7287 </ label >
73- { errors . map ( ( error : string ) => (
74- < div key = { error } className = "text-red-500 mt-1 font-bold" >
75- { error }
76- </ div >
77- ) ) }
88+ { field . state . meta . isTouched && < ErrorMessages errors = { errors } /> }
7889 </ div >
7990 )
8091}
@@ -103,11 +114,7 @@ export function Select({
103114 >
104115 { children }
105116 </ select >
106- { errors . map ( ( error : string ) => (
107- < div key = { error } className = "text-red-500 mt-1 font-bold" >
108- { error }
109- </ div >
110- ) ) }
117+ { field . state . meta . isTouched && < ErrorMessages errors = { errors } /> }
111118 </ div >
112119 )
113120}
0 commit comments