@@ -2,6 +2,7 @@ import React, { useState } from 'react';
22import { Form , Button , Modal } from 'react-bootstrap' ;
33import NoteField from '../../components/fields/NoteField' ;
44import DescriptorField from '../../components/fields/DescriptorField' ;
5+ import LocationField from '../../components/fields/LocationField' ;
56
67interface IncidentFormProps {
78 show : boolean ;
@@ -15,6 +16,9 @@ const IncidentForm: React.FC<IncidentFormProps> = ({ show, onHide, onSubmit, ini
1516 name : initial ?. name || '' ,
1617 description : initial ?. description || '' ,
1718 notes : initial ?. notes || '' ,
19+ latitude : initial ?. latitude || '' ,
20+ longitude : initial ?. longitude || '' ,
21+ address : initial ?. address || '' ,
1822 } ) ;
1923
2024 React . useEffect ( ( ) => {
@@ -23,12 +27,24 @@ const IncidentForm: React.FC<IncidentFormProps> = ({ show, onHide, onSubmit, ini
2327 name : initial ?. name || '' ,
2428 description : initial ?. description || '' ,
2529 notes : initial ?. notes || '' ,
30+ latitude : initial ?. latitude || '' ,
31+ longitude : initial ?. longitude || '' ,
32+ address : initial ?. address || '' ,
2633 } ) ;
2734 }
2835 } , [ initial , show ] ) ;
2936
30- const handleChange = ( e : React . ChangeEvent < HTMLInputElement | HTMLTextAreaElement > ) => {
31- setForm ( { ...form , [ e . target . name ] : e . target . value } ) ;
37+ const handleChange = ( e : React . ChangeEvent < HTMLInputElement | HTMLTextAreaElement > | any ) => {
38+ // Support batched lat/lng event from map picker
39+ if ( e . target . name === 'latitude-longitude' && e . target . value ) {
40+ setForm ( f => ( {
41+ ...f ,
42+ latitude : e . target . value . latitude ,
43+ longitude : e . target . value . longitude ,
44+ } ) ) ;
45+ } else {
46+ setForm ( { ...form , [ e . target . name ] : e . target . value } ) ;
47+ }
3248 } ;
3349
3450 const handleSubmit = ( e : React . FormEvent ) => {
@@ -48,6 +64,14 @@ const IncidentForm: React.FC<IncidentFormProps> = ({ show, onHide, onSubmit, ini
4864 description = { form . description }
4965 onChange = { handleChange }
5066 />
67+ < LocationField
68+ latitude = { form . latitude }
69+ longitude = { form . longitude }
70+ address = { form . address }
71+ onChange = { handleChange }
72+ incidentLat = { form . latitude !== '' ? Number ( form . latitude ) : undefined }
73+ incidentLng = { form . longitude !== '' ? Number ( form . longitude ) : undefined }
74+ />
5175 < NoteField
5276 notes = { form . notes }
5377 onChange = { handleChange }
0 commit comments