diff --git a/src/Components/Case/CaseTypePage.js b/src/Components/Case/CaseTypePage.js new file mode 100644 index 0000000..8ddf861 --- /dev/null +++ b/src/Components/Case/CaseTypePage.js @@ -0,0 +1,134 @@ +import React, { useEffect, useContext, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { DetailCard } from "../../pageElements/DetailCard.js"; +import Button from "../../pageElements/Button"; +import CreateModal from "../Modals/CreateModal.js"; +import UploadModal from "../Modals/UploadModal.js"; +import { db } from "../../firebase"; +import { useParams } from "react-router-dom"; +import { AppContext } from "../../Hooks/useContext/appContext.js"; +import LoadingSpinner from "../../pageElements/LoadingSpinner"; +import { doc, onSnapshot } from "firebase/firestore"; + +const CaseDetailsPage = () => { + const { caseId } = useParams(); + const [subCase, setSubCase] = useState(null); + const navigate = useNavigate(); + const [showUploadModal, setShowUploadModal] = useState(); + const [showCreateModal, setShowCreateModal] = useState(); + const [isLoading, setIsLoading] = useState(false); + const { appState } = useContext(AppContext); + const { group } = appState; + const appUserId = group ? group.appUserId : null; + const message = + "Parsing document. Please be patient, this may take several minutes."; + + const handleNavigate = () => { + navigate("/documents"); + }; + + const handleBack = () => { + navigate("/cases"); + }; + + function getCase() { + const docRef = doc(db, "cases", caseId); + const unsub = onSnapshot(docRef, (snapshot) => { + if (snapshot.exists() && snapshot.data().ownerId === appUserId) { + setSubCase({ ...snapshot.data(), id: snapshot.id }); + } else { + setSubCase(null); + } + }); + return unsub; + } + + useEffect(getCase, [caseId, appUserId]); + + const handleSuccess = () => { + setIsLoading(true); + setShowUploadModal(false); + setTimeout(handleNavigate, 40000); + }; + + const ButtonContent = () => { + return ( +