"use client"; import Cookies from "js-cookie"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { PostImpressions } from "@/app/lib/postImpressions"; interface CostOption { value: number; } interface ImpressionsProps { costs: CostOption[]; numAcount: number | null; } function Impressions({ costs, numAcount }: ImpressionsProps) { const [pages, setPages] = useState(""); const [cost, setCost] = useState(""); const router = useRouter(); const handleLogout = () => { Cookies.remove("token"); Cookies.remove("session"); router.push("/Login"); }; const handlePayment = async () => { const currentUrl = new URL(window.location.href); const params = new URLSearchParams(); const setError = (msg: string) => { params.set("error", msg); router.push(`${currentUrl}&${params.toString()}`); }; if (!numAcount) { return setError("busca de nuevo al estudiante"); } if (!pages) { return setError("Ingresa el numero de hojas a imprimir"); } if (!cost) { return setError("Selecciona un costo"); } const result = await PostImpressions({ id_cuenta: numAcount, numero_hojas: parseInt(pages), monto: parseInt(cost) * parseInt(pages), }); if (result.error) { if (result.error === "Token inválido") handleLogout(); else { return setError(`Error: ${result.error}`); } return; } setPages(""); setCost(""); params.delete("error"); params.set("success", "Impresion cobrada correctamente"); router.push(`${currentUrl}&${params.toString()}`); }; return (
); } export default Impressions; //IO