import * as React from "react"; import styles from "../../styles"; import { Button, TableBody, TableCell, TableContainer, TableHead, TableRow, } from "@mui/material"; import { useNavigate, useParams } from "react-router-dom"; import LoginChecker from "../../Components/LoginChecker/LoginChecker"; import { DeleteProduct, GetProduct } from "../../Components/Api/Api"; import { useMutation, useQuery, useQueryClient } from "react-query"; import ProductIcon from "../../Components/Icons/ProductIcon/ProductIcon"; import { useSelector } from "react-redux"; import { ProductHistoryEntry } from "../../Interfaces/Interfaces"; import moment from "moment"; import { RootState } from "../../Plugins/Redux/Store/Store"; export default function Product() { const navigate = useNavigate(); let { id } = useParams(); const { data: product, isLoading, error, } = useQuery({ queryKey: ["product", Number(id)], queryFn: () => GetProduct(Number(id)), }); const queryClient = useQueryClient(); const mutation = useMutation({ mutationFn: DeleteProduct, onSuccess: () => { queryClient.invalidateQueries("products"); queryClient.invalidateQueries("product"); queryClient.invalidateQueries("logs"); }, }); const old_session_checked = useSelector( (state: RootState) => state.old_session_checked.value ); if (isLoading || !old_session_checked) { return (

Individual Product View for id {id}

Loading product...

); } else if (error) { return (

Individual Product View for id {id}

Error loading product

); } return (

Product View

Product Name: {product.name}

Date Added: {product.date_added}

Individual Transaction Log

Time Quantity {product.history.map( (history_entry: ProductHistoryEntry, index: number) => ( {moment(history_entry.history_date).format( "MMMM DD, YYYY hh:mm A" )} {history_entry.quantity} ) )}
); }