import { useQueries } from "@tanstack/react-query"; import styles from "../../../styles"; import { EquipmentsAPI, EquipmentInstancesAPI, UserAPI, TransactionsAPI, } from "../../API/API"; import CircularProgress from "@mui/material/CircularProgress"; import moment from "moment"; export default function TechnicianWidgets() { const todayStartOfDay = moment().startOf("day").format("MM-DD-YYYY hh:mm A"); const todayEndOfDay = moment().endOf("day").format("MM-DD-YYYY hh:mm A"); const thisMonthStart = moment().startOf("month").format("MM-DD-YYYY hh:mm A"); const thisMonthEnd = moment().endOf("month").format("MM-DD-YYYY hh:mm A"); const queries = useQueries({ queries: [ { queryKey: ["equipments"], queryFn: EquipmentsAPI, }, { queryKey: ["equipment_instances"], queryFn: EquipmentInstancesAPI, }, { queryKey: ["user"], queryFn: UserAPI, }, { queryKey: ["transactions"], queryFn: TransactionsAPI, }, ], }); const isLoading = queries.some((result) => result.isLoading); if (isLoading) { return ( <>

Loading

); } return (

Pending Equipments

{queries[1].data?.filter( (equipment) => equipment.status == "Pending" ).length || 0}

Equipments in Inventory

{queries[1].data?.length || 0}

Available Equipments

{queries[1].data?.filter( (equipment) => equipment.status == "Available" ).length || 0}

Broken Equipments

{queries[1].data?.filter( (equipment) => equipment.status == "Broken" ).length || 0}

Total Transactions Today

{queries[3].data?.filter((transaction) => moment(transaction.timestamp, "MM-DD-YYYY hh:mm A").isBetween( todayStartOfDay, todayEndOfDay ) ).length || 0}

Total Transactions this Month

{queries[3].data?.filter((transaction) => moment(transaction.timestamp, "MM-DD-YYYY hh:mm A").isBetween( thisMonthStart, thisMonthEnd ) ).length || 0}

); }