import { permissions } from "@mrp/shared"; import type { WarehouseSummaryDto } from "@mrp/shared/dist/inventory/types.js"; import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import { useAuth } from "../../auth/AuthProvider"; import { api, ApiError } from "../../lib/api"; export function WarehousesPage() { const { token, user } = useAuth(); const [warehouses, setWarehouses] = useState([]); const [status, setStatus] = useState("Loading warehouses..."); const canManage = user?.permissions.includes(permissions.inventoryWrite) ?? false; useEffect(() => { if (!token) { return; } api .getWarehouses(token) .then((nextWarehouses) => { setWarehouses(nextWarehouses); setStatus(`${nextWarehouses.length} warehouse(s) available.`); }) .catch((error: unknown) => { const message = error instanceof ApiError ? error.message : "Unable to load warehouses."; setStatus(message); }); }, [token]); return (

Inventory

Warehouses

Physical warehouse records and their internal stock locations.

{canManage ? ( New warehouse ) : null}
{status}
{warehouses.length === 0 ? (
No warehouses have been added yet.
) : (
{warehouses.map((warehouse) => ( ))}
Code Name Locations Updated
{warehouse.code} {warehouse.name} {warehouse.locationCount} {new Date(warehouse.updatedAt).toLocaleDateString()}
)}
); }