From ee19d26d4a38befbc9fc6cbc6ebd03200b927ab7 Mon Sep 17 00:00:00 2001 From: kleap-admin Date: Fri, 16 Jan 2026 16:33:23 +0000 Subject: [PATCH] Update app/tracking/page.tsx --- app/tracking/page.tsx | 116 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 app/tracking/page.tsx diff --git a/app/tracking/page.tsx b/app/tracking/page.tsx new file mode 100644 index 0000000..aa1f293 --- /dev/null +++ b/app/tracking/page.tsx @@ -0,0 +1,116 @@ +"use client"; +import { useState } from "react"; +import { Container } from "@/components/container"; +import { Heading } from "@/components/heading"; +import { Input } from "@/components/ui/input"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Search, Truck, Package, MapPin, CheckCircle2 } from "lucide-react"; + +import { NavBar } from "@/components/navbar"; +import { Footer } from "@/components/footer"; + +export default function TrackingPage() { + const [orderId, setOrderId] = useState(""); + const [order, setOrder] = useState(null); + const [error, setError] = useState(false); + + const handleSearch = () => { + const data = localStorage.getItem(`order_${orderId.toUpperCase()}`); + if (data) { + setOrder(JSON.parse(data)); + setError(false); + } else { + setOrder(null); + setError(true); + } + }; + + return ( +
+ + +
+ Rastrea tu Pedido +

Ingresa tu número de orden o guía para conocer el estado de tu envío

+
+ +
+ setOrderId(e.target.value)} + className="h-12" + /> + +
+ + {error && ( +
+ No se encontró ningún pedido con ese número. Por favor verifica tus datos. +
+ )} + + {order && ( + + + + Detalles del Envío + Orden #{orderId} + + + +
+
+ + } + title="Pedido Recibido" + date={new Date(order.date).toLocaleDateString()} + /> + } + title="Pago Confirmado" + date="Verificado" + /> + } + title="En Camino" + date={order.trackingNumber} + /> + } + title="Entregado" + date="Destino Final" + /> +
+
+
+ )} +
+
+
+ ); +} + +function TrackingStep({ active, done, icon, title, date }: any) { + return ( +
+
+ {icon} +
+

{title}

+

{date}

+
+ ); +}