@@ -3,6 +3,13 @@ import React, { useState } from 'react';
33const Contact : React . FC = ( ) => {
44 const [ email , setEmail ] = useState ( '' ) ;
55 const [ message , setMessage ] = useState ( '' ) ;
6+ const [ date , setDate ] = useState ( '' ) ;
7+ const [ month , setMonth ] = useState ( '' ) ;
8+ const [ time , setTime ] = useState ( '' ) ;
9+ const [ color , setColor ] = useState ( '#000000' ) ;
10+ const [ range , setRange ] = useState ( '50' ) ;
11+ const [ hour , setHour ] = useState ( '12:00' ) ;
12+ const [ week , setWeek ] = useState ( '' ) ;
613 const [ status , setStatus ] = useState < 'idle' | 'loading' | 'success' | 'error' > ( 'idle' ) ;
714
815 const handleSubmit = async ( e : React . FormEvent ) => {
@@ -14,12 +21,19 @@ const Contact: React.FC = () => {
1421 headers : {
1522 'Content-Type' : 'application/json' ,
1623 } ,
17- body : JSON . stringify ( { email, message } ) ,
24+ body : JSON . stringify ( { email, message, date , month , time , color , range , hour , week } ) ,
1825 } ) ;
1926 if ( response . ok ) {
2027 setStatus ( 'success' ) ;
2128 setEmail ( '' ) ;
2229 setMessage ( '' ) ;
30+ setDate ( '' ) ;
31+ setMonth ( '' ) ;
32+ setTime ( '' ) ;
33+ setColor ( '#000000' ) ;
34+ setRange ( '50' ) ;
35+ setHour ( '12:00' ) ;
36+ setWeek ( '' ) ;
2337 } else {
2438 setStatus ( 'error' ) ;
2539 }
@@ -56,6 +70,88 @@ const Contact: React.FC = () => {
5670 style = { { width : '100%' , padding : '0.5rem' } }
5771 />
5872 </ div >
73+ < div style = { { marginBottom : '1rem' } } >
74+ < label htmlFor = "date" > Date:</ label > < br />
75+ < input
76+ id = "date"
77+ type = "date"
78+ name = "date"
79+ value = { date }
80+ onChange = { e => setDate ( e . target . value ) }
81+ style = { { width : '100%' , padding : '0.5rem' } }
82+ />
83+ </ div >
84+ < div style = { { marginBottom : '1rem' } } >
85+ < label htmlFor = "month" > Month:</ label > < br />
86+ < input
87+ id = "month"
88+ type = "month"
89+ name = "month"
90+ value = { month }
91+ onChange = { e => setMonth ( e . target . value ) }
92+ style = { { width : '100%' , padding : '0.5rem' } }
93+ />
94+ </ div >
95+ < div style = { { marginBottom : '1rem' } } >
96+ < label htmlFor = "time" > Time:</ label > < br />
97+ < input
98+ id = "time"
99+ type = "time"
100+ name = "time"
101+ value = { time }
102+ onChange = { e => setTime ( e . target . value ) }
103+ style = { { width : '100%' , padding : '0.5rem' } }
104+ />
105+ </ div >
106+ < div style = { { marginBottom : '1rem' } } >
107+ < label htmlFor = "color" > Color:</ label > < br />
108+ < input
109+ id = "color"
110+ type = "color"
111+ name = "color"
112+ value = { color }
113+ onChange = { e => setColor ( e . target . value ) }
114+ style = { { width : '100%' , padding : '0.5rem' } }
115+ />
116+ </ div >
117+ < div style = { { marginBottom : '1rem' } } >
118+ < label htmlFor = "range" > Range:</ label > < br />
119+ < input
120+ id = "range"
121+ type = "range"
122+ name = "range"
123+ min = "0"
124+ max = "100"
125+ value = { range }
126+ onChange = { e => setRange ( e . target . value ) }
127+ style = { { width : '100%' , padding : '0.5rem' } }
128+ />
129+ </ div >
130+ < div style = { { marginBottom : '1rem' } } >
131+ < label htmlFor = "hour" > Hour:</ label > < br />
132+ < input
133+ id = "hour"
134+ type = "time"
135+ name = "hour"
136+ min = "0"
137+ max = "23"
138+ value = { hour }
139+ onChange = { e => setHour ( e . target . value ) }
140+ style = { { width : '100%' , padding : '0.5rem' } }
141+ />
142+ </ div >
143+ add week input
144+ < div style = { { marginBottom : '1rem' } } >
145+ < label htmlFor = "week" > Week:</ label > < br />
146+ < input
147+ id = "week"
148+ type = "week"
149+ name = "week"
150+ value = { week }
151+ onChange = { e => setWeek ( e . target . value ) }
152+ style = { { width : '100%' , padding : '0.5rem' } }
153+ />
154+ </ div >
59155 < button type = "submit" disabled = { status === 'loading' } style = { { padding : '0.5rem 1rem' } } >
60156 { status === 'loading' ? 'Sending...' : 'Send' }
61157 </ button >
0 commit comments