citizens176

Untitled

Nov 3rd, 2025 (edited)
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TypeScript 1.13 KB | Software | 0 0
  1. import React from "react";
  2. import type { Route } from "../+types/root";
  3. import z from "zod";
  4.  
  5. const productSchema = z.array(
  6.   z.object({
  7.     id: z.string(),
  8.     name: z.string(),
  9.     price: z.number(),
  10.     pid: z.string(),
  11.   })
  12. );
  13.  
  14. export async function loader() {
  15.   const res = await fetch("http://localhost:3000/products");
  16.   const data = await res.json();
  17.  
  18.   const products = productSchema.safeParse(data);
  19.  
  20.   if (!products.success) {
  21.     return console.log("error zod schema");
  22.   }
  23.  
  24.   // console.log({ products: products.data });
  25.   return { products: products.data };
  26. }
  27.  
  28. const productsPage = ({ loaderData }: Route.ComponentProps) => {
  29.   const { products } = loaderData;
  30.   console.log(loaderData);
  31.  
  32.   return (
  33.     <div>
  34.       <h1>Product List Page</h1>
  35.       <p>Our Latest Products:</p>
  36.       {!products || products.length === 0 ? (
  37.         <p>Product not found</p>
  38.       ) : (
  39.         <ul>
  40.           {products.map((item) => (
  41.             <li key={item.id}>
  42.               {item.name} - {item.price}
  43.             </li>
  44.           ))}
  45.         </ul>
  46.       )}
  47.     </div>
  48.   );
  49. };
  50.  
  51. export default productsPage;
  52.  
Advertisement
Add Comment
Please, Sign In to add comment