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; useEffect(() => { if (count.current == null) { setIsMobile(window.innerWidth < 440); } if (count.current < 3) { setIsMobile(window.innerWidth < 440); } return () => { count.current = 1; }; }, []); 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 (
You have not created any cases yet.
To get started, click "Create New Case" and enter case information.
{createNewButton()}