"use client"; import { createPayment } from "@/actions/payment"; import DeviceCard from "@/components/device-card"; import NumberInput from "@/components/number-input"; import { Button } from "@/components/ui/button"; import { deviceCartAtom, numberOfMonths } from "@/lib/atoms"; import type { NewPayment } from "@/lib/backend-types"; import { tryCatch } from "@/utils/tryCatch"; import { useAtom, useAtomValue, useSetAtom } from "jotai"; import { CircleDollarSign, Loader2 } from "lucide-react"; import { redirect, usePathname } from "next/navigation"; import { useEffect, useState } from "react"; import { toast } from "sonner"; export default function DevicesForPayment() { const baseAmount = 100; const discountPercentage = 75; const pathname = usePathname(); const devices = useAtomValue(deviceCartAtom); const setDeviceCart = useSetAtom(deviceCartAtom); const [months, setMonths] = useAtom(numberOfMonths); const [message, setMessage] = useState(""); const [disabled, setDisabled] = useState(false); const [total, setTotal] = useState(0); console.log(total); useEffect(() => { if (months === 7) { setMessage("You will get 1 month free."); } else if (months === 12) { setMessage("You will get 2 months free."); } else { setMessage(""); } setTotal(baseAmount + (devices.length + 1 - 1) * discountPercentage); }, [months, devices.length]); if (pathname === "/payments") { return null; } const data: NewPayment = { amount: 100, number_of_months: 2, device_ids: devices.map((device) => device.id), }; if (disabled) { return "Please wait..."; } return (
{devices.map((device) => ( ))}
setMonths(value)} maxAllowed={12} isDisabled={devices.length === 0} /> {message && ( {message} )}
); }