import React, { useEffect, useContext, useState, useRef } from "react"; import { useNavigate } from "react-router-dom"; import { CaseCard } from "../../pageElements/Cards.js"; import CreateModal from "../Modals/CreateModal.js"; import MobileContent from "../MobileContent.js"; import { db } from "../../firebase"; import { AppContext } from "../../Hooks/useContext/appContext"; import SelectDropdown from "../../pageElements/SelectDropdown"; import { collection, query, where, onSnapshot } from "firebase/firestore"; import ListPagination from "../../pageElements/ListPagination.js"; import Button from "../../pageElements/Button"; const CaseListPage = ({ perPage }) => { const size = window.innerWidth < 440; const [isMobile, setIsMobile] = useState(size); const count = useRef(null); const navigate = useNavigate(); const [showModal, setShowModal] = useState(false); const [allCases, setAllCases] = useState(null); const [page, setPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const [order, setOrder] = useState("caption"); const { appState } = useContext(AppContext); const { group } = appState; const appUserId = group ? group.appUserId : null; const state = group ? group?.state[0].code : null; useEffect(() => { if (count.current == null) { setIsMobile(window.innerWidth < 440); } if (count.current < 3) { setIsMobile(window.innerWidth < 440); } return () => { const temp = (count.current = count.current + 1); count.current = temp; }; }, []); function getCases() { if (!appUserId) { setAllCases([]); return; } const q = query(collection(db, "cases"), where("ownerId", "==", appUserId)); const unsub = onSnapshot(q, (snapshot) => { const data = snapshot.docs.map((doc) => doc.data()); if (order === "caption") { data.sort((a, b) => { return a.caption.toLowerCase() > b.caption.toLowerCase() ? 1 : -1; }); } else if (order === "caption2") { data.sort((a, b) => { return a.caption.toLowerCase() < b.caption.toLowerCase() ? 1 : -1; }); } else if (order === "filedDate") { data.sort((a, b) => { return a.filedDate > b.filedDate ? 1 : -1; }); } else if (order === "filedDate2") { data.sort((a, b) => { return a.filedDate < b.filedDate ? 1 : -1; }); } const pages = Math.ceil(data.length / perPage); if (page > pages) { setPage(pages); } setTotalPages(pages); setAllCases(data); }); return unsub; } const createNewButton = () => { return (
Please create your first case.
To create a discovery request or response, you will first enter some basic information about the case they will pertain to - i.e. the caption and case number.
Then, you will upload a document (i.e. interrogatories or a complaint), for use in generating a request/response.
Click "Create New Case" to get started.
{createNewButton()}