improved view of products

This commit is contained in:
2026-05-27 10:26:43 +02:00
parent d996fff0db
commit 8ac83520a9
2 changed files with 42 additions and 2 deletions
+34 -2
View File
@@ -2,6 +2,21 @@ import { useQuery } from "@tanstack/react-query";
import { getProductDetails } from "../utils/uxFncs"; import { getProductDetails } from "../utils/uxFncs";
import { CircularProgress, Typography } from "@mui/joy"; import { CircularProgress, Typography } from "@mui/joy";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useEffect } from "react";
import { formatDate } from "../utils/uxFncs";
interface productDetailsInterface {
amount: number;
bottling_date: string;
description: string;
expiry_date: string;
name: string;
picture: string | null;
price: string;
storage_location_name: string;
storage_location_uuid: string;
uuid: string;
}
interface ViewProductProps { interface ViewProductProps {
uuid: string; uuid: string;
@@ -11,15 +26,32 @@ export const ViewProduct = (props: ViewProductProps) => {
const uuid = props.uuid; const uuid = props.uuid;
const { t } = useTranslation(); const { t } = useTranslation();
const { data: productDetails, isLoading: productDetailsLoading } = useQuery({ const {
data: productDetails,
isLoading: productDetailsLoading,
isSuccess,
} = useQuery<productDetailsInterface>({
queryKey: ["product", uuid], queryKey: ["product", uuid],
queryFn: () => getProductDetails(uuid), queryFn: () => getProductDetails(uuid),
}); });
useEffect(() => {
console.log(productDetails);
}, [isSuccess]);
return ( return (
<> <>
<Typography>{t("product-details")}</Typography> <Typography level="h2">{t("product-details")}</Typography>
{productDetailsLoading && <CircularProgress size="sm" />} {productDetailsLoading && <CircularProgress size="sm" />}
{isSuccess && (
<>
<Typography level="h3">{productDetails.name}</Typography>
<Typography level="body-lg">{productDetails.description}</Typography>
<Typography level="body-lg">
{t("expiry-date") + " " + formatDate(productDetails.expiry_date)}
</Typography>
</>
)}
</> </>
); );
}; };
+8
View File
@@ -39,3 +39,11 @@ export const getProductDetails = async (uuid: string) => {
return response.data; return response.data;
} }
}; };
export const formatDate = (isoString: string) => {
const date = new Date(isoString);
const day = String(date.getDate()).padStart(2, "0");
const month = String(date.getMonth() + 1).padStart(2, "0");
const year = date.getFullYear();
return `${day}.${month}.${year}`;
};