import React, { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import { Table, TableBody, TableCell, TableContainer, TableFooter, TablePagination, TableRow, Toolbar, } from "@material-ui/core"; import { useVehicleContext, VehicleProvider, } from "../../Contexts/VehicleContext"; import { useUserContext } from "../../Contexts/UserContext"; import { useStatusContext } from "../../Contexts/StatusContext"; import useStyles from "../../useStyles"; import { LocalDateTimeString } from "../../../utils/dates"; import TableHeaderSortable from "../../Table/HeaderSortable"; import SearchField from "../../Controls/SearchField"; const tableColumns = [ { id: "vin", label: "VIN", }, { id: "model", label: "Model", }, { id: "year", label: "Year", }, { id: "trim", label: "Trim", }, { id: "created_at", label: "Created", }, { id: "updated_at", label: "Updated", }, ]; const MainForm = () => { const classes = useStyles(); const [pageSize, setPageSize] = useState(10); const [pageIndex, setPageIndex] = useState(0); const [orderBy, setOrderBy] = useState("vin"); const [order, setOrder] = useState("asc"); const [search, setSearch] = useState(""); const { getVehicles, vehicles, totalVehicles } = useVehicleContext(); const { setMessage, setTitle } = useStatusContext(); const { token: { idToken: { jwtToken: token }, }, } = useUserContext(); const sortHandler = (event, property) => { if (property === orderBy) { if (order === "asc") { setOrder("desc"); } else { setOrder("asc"); } } else { setOrderBy(property); setOrder("asc"); } }; useEffect(() => { setTitle("Vehicles"); // eslint-disable-next-line }, []); useEffect(() => { try { getVehicles( { limit: pageSize, offset: pageSize * pageIndex, order: `${orderBy} ${order}`, search, }, token ); } catch (e) { setMessage(e.message); } // eslint-disable-next-line }, [pageIndex, pageSize, token, orderBy, order, search]); const handleChangePageIndex = (event, newIndex) => { setPageIndex(newIndex); }; const handleChangePageSize = (event) => { setPageSize(parseInt(event.target.value, 10)); setPageIndex(0); }; const handleSearch = (search) => { setSearch(search); }; return (
{vehicles.map((row) => ( {row.vin} {row.model} {row.year} {row.trim || ""} {LocalDateTimeString(row.created)} {LocalDateTimeString(row.updated)} ))}
); }; const VehiclesList = () => ( ); export default VehiclesList;