diff --git a/src/App.js b/src/App.js index 7313617..5d57536 100644 --- a/src/App.js +++ b/src/App.js @@ -17,6 +17,121 @@ import 'bootstrap/dist/css/bootstrap.min.css'; import Col from 'react-bootstrap/Col'; import './App.css' +if (!getApps().length) { + initializeApp(firebaseConfig); +} + +// declare variables + +export function MyForm(props) { + const [submitter, setSubmitter] = useState(''); + const [date, setDate] = useState(''); + const [context, setContext] = useState(''); + + // Fetch incidents from Firestore when the component mounts + useEffect(() => { + const incidentsRef = collection(db, "incidents"); + getDocs(incidentsRef).then((snapshot) => { + const incidentsArray = snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data() })); + setIncidents(incidentsArray); + }); + }, []); + + // Ensure Firebase is initialized before using it + if (!getApp().length) { + initializeApp(firebaseConfig); + + } + + const db = getFirestore(getApp()); -export default App \ No newline at end of file + // Create a function to handle the checkbox changes and update the state accordingly. + const handleCheckboxChange = (event) => { + const { value, checked } = event.target; + if (checked) { + setSelectedOptions([...selectedOptions, value]); + } else { + setSelectedOptions(selectedOptions.filter((option) => option !== value)); + } + }; + + + // Create a function to handle the form submission and add data to Firebase. + // Once user presses submit, a popup will appearstating the data was sent. + // When user acknowledges popup and closes it, the page will reload, + // clearing the form and adding the new data to the database. + + + const submitHandler = async (event) => { + event.preventDefault() + const unbasedData = { submitter, date, context} + const col = collection(db, `unbasedtakes`) + const ref = await addDoc(col, unbasedData) + console.log(ref) + alert("Form submitted successfully!"); + window.location.reload(); + } + + // Create form for user to imput data + return ( +
{incident.id}
+{incident.date}
+{incident.submitter}
+{incident.context}
+{incident.selectedOptions.join(', ')}
+ {index !== incidents.length - 1 &&