@@ -6,94 +6,94 @@ import { Alert, Button, FormControl, InputLabel, MenuItem, Select, SelectChangeE
6
6
import { useEffect , useState } from "react" ;
7
7
8
8
interface Props {
9
- leaders : GroupMemberInterface [ ] ;
10
- group : GroupInterface ;
11
- config : ConfigurationInterface ;
9
+ leaders : GroupMemberInterface [ ] ;
10
+ group : GroupInterface ;
11
+ config : ConfigurationInterface ;
12
12
}
13
13
14
14
export function GroupContact ( props : Props ) {
15
15
16
- const [ formData , setFormData ] = useState < any > ( { churchId : props . config . church . id } ) ;
16
+ const [ formData , setFormData ] = useState < any > ( { churchId : props . config . church . id } ) ;
17
17
18
- const handleChange = ( e : React . ChangeEvent < HTMLInputElement | HTMLTextAreaElement > | SelectChangeEvent < string > ) => {
19
- const val = e . target . value ;
20
- const fd = { ...formData }
21
- switch ( e . target . name ) {
22
- case "personId" : fd . personId = val ; break ;
23
- case "firstName" : fd . firstName = val ; break ;
24
- case "lastName" : fd . lastName = val ; break ;
25
- case "email" : fd . email = val ; break ;
26
- case "phone" : fd . phone = val ; break ;
27
- case "message" : fd . message = val ; break ;
28
- }
29
- setFormData ( fd ) ;
30
- console . log ( fd ) ;
18
+ const handleChange = ( e : React . ChangeEvent < HTMLInputElement | HTMLTextAreaElement > | SelectChangeEvent < string > ) => {
19
+ const val = e . target . value ;
20
+ const fd = { ...formData }
21
+ switch ( e . target . name ) {
22
+ case "personId" : fd . personId = val ; break ;
23
+ case "firstName" : fd . firstName = val ; break ;
24
+ case "lastName" : fd . lastName = val ; break ;
25
+ case "email" : fd . email = val ; break ;
26
+ case "phone" : fd . phone = val ; break ;
27
+ case "message" : fd . message = val ; break ;
31
28
}
29
+ setFormData ( fd ) ;
30
+ console . log ( fd ) ;
31
+ }
32
32
33
- const [ isSubmitted , setIsSubmitted ] = useState ( false ) ;
33
+ const [ isSubmitted , setIsSubmitted ] = useState ( false ) ;
34
34
35
- const handleSubmit = async ( e : React . MouseEvent ) => {
36
- if ( e !== null ) e . preventDefault ( ) ;
37
- const email = {
38
- churchId : formData . churchId ,
39
- personId : formData . personId ,
40
- appName : "B1" ,
41
- subject : "Contact Request For " + props . group . name ,
42
- body : "First Name: " + formData . firstName + "<br />" +
43
- "Last Name: " + formData . lastName + "<br />" +
44
- "Email Address: " + formData . email + "<br />" +
45
- "Phone Number: " + formData . phone + "<br />" +
46
- "Message: " + formData . message
47
- }
48
-
49
- try {
50
- await ApiHelper . post ( "/people/public/email" , email , "MembershipApi" ) ;
51
- setIsSubmitted ( true ) ;
52
- } catch ( error ) {
53
- console . error ( "Error sending email:" , error ) ;
54
- }
35
+ const handleSubmit = async ( e : React . MouseEvent ) => {
36
+ if ( e !== null ) e . preventDefault ( ) ;
37
+ const email = {
38
+ churchId : formData . churchId ,
39
+ personId : formData . personId ,
40
+ appName : "B1" ,
41
+ subject : "Contact Request For " + props . group . name ,
42
+ body : "First Name: " + formData . firstName + "<br />" +
43
+ "Last Name: " + formData . lastName + "<br />" +
44
+ "Email Address: " + formData . email + "<br />" +
45
+ "Phone Number: " + formData . phone + "<br />" +
46
+ "Message: " + formData . message
55
47
}
56
48
57
- const getSelectLeaders = ( ) => {
58
- const result : JSX . Element [ ] = [ ] ;
59
- props . leaders . forEach ( ( l ) => {
60
- result . push ( < MenuItem value = { l . personId } key = { l . personId } > { l . person . name . display } </ MenuItem > ) ;
61
- } ) ;
62
- return result ;
49
+ try {
50
+ await ApiHelper . post ( "/people/public/email" , email , "MembershipApi" ) ;
51
+ setIsSubmitted ( true ) ;
52
+ } catch ( error ) {
53
+ console . error ( "Error sending email:" , error ) ;
63
54
}
55
+ }
56
+
57
+ const getSelectLeaders = ( ) => {
58
+ const result : JSX . Element [ ] = [ ] ;
59
+ props . leaders . forEach ( ( l ) => {
60
+ result . push ( < MenuItem value = { l . personId } key = { l . personId } > { l . person . name . display } </ MenuItem > ) ;
61
+ } ) ;
62
+ return result ;
63
+ }
64
64
65
- useEffect ( ( ) => {
66
- if ( props . leaders ?. length > 0 ) {
67
- const fd = { ...formData }
68
- fd . personId = props . leaders [ 0 ] . personId ;
69
- setFormData ( fd ) ;
70
- }
71
- } , [ props . leaders ] )
65
+ useEffect ( ( ) => {
66
+ if ( props . leaders ?. length > 0 ) {
67
+ const fd = { ...formData }
68
+ fd . personId = props . leaders [ 0 ] . personId ;
69
+ setFormData ( fd ) ;
70
+ }
71
+ } , [ props . leaders ] )
72
72
73
- if ( props . leaders ?. length < 1 ) return < > </ >
74
- else return < >
75
- < div >
76
- < h2 > Contact Group Leader:</ h2 >
77
- < form >
78
- { ( props . leaders ?. length > 1 ) && < FormControl fullWidth >
79
- < InputLabel > Contact</ InputLabel >
80
- < Select fullWidth label = "Contact" name = "personId" value = { formData . personId || "" } onChange = { handleChange } >
81
- { getSelectLeaders ( ) }
82
- </ Select >
83
- </ FormControl > }
84
- < TextField fullWidth label = "First Name" name = "firstName" value = { formData . firstName } onChange = { handleChange } />
85
- < TextField fullWidth label = "Last Name" name = "lastName" value = { formData . lastName } onChange = { handleChange } />
86
- < TextField fullWidth label = "Email" name = "email" value = { formData . email } onChange = { handleChange } />
87
- < TextField fullWidth label = "Phone Number" name = "phone" value = { formData . phone } onChange = { handleChange } />
88
- < TextField fullWidth label = "Message" name = "message" value = { formData . message } onChange = { handleChange } multiline />
89
- < Button onClick = { handleSubmit } id = "conbtn" style = { { height : "50px" , fontWeight : "bold" , width : "40%" , marginBottom : "10px" } } > Submit</ Button >
90
- </ form >
73
+ if ( props . leaders ?. length < 1 ) return < > </ >
74
+ else return < >
75
+ < div >
76
+ < h2 > Contact Group Leader:</ h2 >
77
+ < form >
78
+ { ( props . leaders ?. length > 1 ) && < FormControl fullWidth >
79
+ < InputLabel > Contact</ InputLabel >
80
+ < Select fullWidth label = "Contact" name = "personId" value = { formData . personId || "" } onChange = { handleChange } >
81
+ { getSelectLeaders ( ) }
82
+ </ Select >
83
+ </ FormControl > }
84
+ < TextField fullWidth label = "First Name" name = "firstName" value = { formData . firstName } onChange = { handleChange } />
85
+ < TextField fullWidth label = "Last Name" name = "lastName" value = { formData . lastName } onChange = { handleChange } />
86
+ < TextField fullWidth label = "Email" name = "email" value = { formData . email } onChange = { handleChange } />
87
+ < TextField fullWidth label = "Phone Number" name = "phone" value = { formData . phone } onChange = { handleChange } />
88
+ < TextField fullWidth label = "Message" name = "message" value = { formData . message } onChange = { handleChange } multiline />
89
+ < Button onClick = { handleSubmit } id = "conbtn" style = { { height : "50px" , fontWeight : "bold" , width : "40%" , marginBottom : "10px" } } > Submit</ Button >
90
+ </ form >
91
91
92
- { isSubmitted && (
93
- < Alert sx = { { align : "center" , fontSize : "18px" , fontStyle : "italic" , marginBottom : "10px" } } severity = "success" >
94
- Your message has been sent!
95
- </ Alert >
96
- ) }
97
- </ div >
98
- </ >
92
+ { isSubmitted && (
93
+ < Alert sx = { { align : "center" , fontSize : "18px" , fontStyle : "italic" , marginBottom : "10px" } } severity = "success" >
94
+ Your message has been sent!
95
+ </ Alert >
96
+ ) }
97
+ </ div >
98
+ </ >
99
99
}
0 commit comments