diff --git a/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap b/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap index 5b065c6..4511aac 100644 --- a/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap +++ b/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap @@ -21,10 +21,9 @@ exports[`FleetVehiclesTable Render 1`] = ` class="MuiGrid-root makeStyles-root-0 MuiGrid-container MuiGrid-spacing-xs-2" >
+
+ + + + + + + + + { const [order, setOrder] = useState("desc"); const [search, setSearch] = useState(""); const [showDeleteModal, setShowDeleteModal] = useState(false); + const [selected, setSelected] = useState([]); const classes = useStyles(); const { setMessage } = useStatusContext(); const { @@ -135,6 +138,19 @@ const MainForm = ({ name }) => { } }; + const handleSelect = (vin, setState) => { + setSelected(selected => setState + ? [...selected, vin] + : selected.filter(select => select !== vin)); + }; + + const handleSelectAll = (event) => { + const allSelected = !event.target.checked; + setSelected(() => allSelected + ? [] + : fleetVehicles.map((vehicle) => vehicle.vin)); + } + const onDelete = async (vin) => { try { await deleteFleetVehicle(name, { vin: vin }, token); @@ -188,14 +204,14 @@ const MainForm = ({ name }) => { return (
- - + + + + + @@ -207,10 +223,21 @@ const MainForm = ({ name }) => { order={order} columnData={tableColumns} onSortRequest={handleSort} + multiSelect={true} + onSelectAll={handleSelectAll} + selectCount={selected.length} + rowCount={fleetVehicles.length} /> - {fleetVehicles && fleetVehicles.map((car) => ( - (car.vin && + {fleetVehicles && fleetVehicles.map((car) => { + const isSelected = selected.includes(car.vin); + return (car.vin && + + handleSelect(car.vin, !isSelected)} + /> + {(car.connected || car.connectedHMI) && { {Actions(car.vin)} ) - ))} + })} diff --git a/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap b/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap index c45ef81..54bf98f 100644 --- a/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap +++ b/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap @@ -20,10 +20,9 @@ exports[`VehiclesTab Render 1`] = ` class="MuiGrid-root makeStyles-root-0 MuiGrid-container MuiGrid-spacing-xs-2" > +
+ + + + + + + + +