diff --git a/pages/cart/reports/coverMe.tsx b/pages/cart/reports/coverMe.tsx index 9b06a68..06557dc 100644 --- a/pages/cart/reports/coverMe.tsx +++ b/pages/cart/reports/coverMe.tsx @@ -1,7 +1,5 @@ import { useEffect, useState } from "react"; import axiosInstance from "../../../src/axiosSecure"; -import { useRouter } from "next/router"; -import Link from "next/link"; import { useSession } from "next-auth/react"; import Layout from "../../../components/layout"; import ProtectedRoute from "../../../components/protectedRoute"; @@ -14,24 +12,28 @@ const timeFilters = [ { label: "Всички", value: null }, ]; +const eventTypes = [ + { label: "Заявки", value: EventLogType.AssignmentReplacementRequested }, + { label: "Приети замествания", value: EventLogType.AssignmentReplacementAccepted }, + { label: "Ръчно въведени замествания", value: EventLogType.AssignmentReplacementManual }, +]; + export default function EventLogList() { const [eventLogs, setEventLog] = useState([]); const [requestedAssignments, setRequestedAssignments] = useState([]); - const [locations, setLocations] = useState([]); const [showOpenRequests, setShowOpenRequests] = useState(false); const [selectedTimeFilter, setSelectedTimeFilter] = useState(null); // Time filter state + const [selectedEventTypes, setSelectedEventTypes] = useState(eventTypes.map((et) => et.value)); // Default: all types const { data: session } = useSession(); useEffect(() => { - const fetchLocations = async () => { + const fetchEventLogs = async () => { try { - const where = encodeURIComponent(JSON.stringify({ - OR: [ - { type: EventLogType.AssignmentReplacementAccepted }, - { type: EventLogType.AssignmentReplacementManual }, - { type: EventLogType.AssignmentReplacementRequested } - ], - })); + const where = encodeURIComponent( + JSON.stringify({ + OR: selectedEventTypes.map((type) => ({ type })), + }) + ); const { data: eventLogsData } = await axiosInstance.get( `/api/data/prisma/eventLog?where=${where}&include={"publisher":{"select":{"firstName":true,"lastName":true}},"shift":{"include":{"assignments":{"include":{"publisher":{"select":{"firstName":true,"lastName":true}}}}}}}` @@ -48,10 +50,8 @@ export default function EventLogList() { } }; - if (!locations.length) { - fetchLocations(); - } - }, []); + fetchEventLogs(); + }, [selectedEventTypes]); // Filter events based on the selected time range const filteredEventLogs = eventLogs.filter((event) => { @@ -62,6 +62,15 @@ export default function EventLogList() { return eventDate >= cutoffDate; }); + // Toggle event type selection + const toggleEventType = (eventType) => { + setSelectedEventTypes((prev) => + prev.includes(eventType) + ? prev.filter((type) => type !== eventType) + : [...prev, eventType] + ); + }; + return ( @@ -82,10 +91,10 @@ export default function EventLogList() { checked={!showOpenRequests} className="sr-only" /> - Приети заявки + Приети/затворени заявки