"use client"; import { deviceCartAtom } from "@/lib/atoms"; import type { Device } from "@/lib/backend-types"; import { cn } from "@/lib/utils"; import { useAtom } from "jotai"; import { HandCoins } from "lucide-react"; import Link from "next/link"; import AddDevicesToCartButton from "./add-devices-to-cart-button"; import BlockDeviceDialog from "./block-device-dialog"; import { Badge } from "./ui/badge"; export default function DeviceCard({ device, parentalControl, }: { device: Device; parentalControl?: boolean }) { const [devices, setDeviceCart] = useAtom(deviceCartAtom); const isChecked = devices.some((d) => d.id === device.id); return (
{}} onClick={() => { if (device.blocked) return; if (device.is_active === true) return; if (device.has_a_pending_payment === true) return; if (parentalControl === true) return; setDeviceCart((prev) => devices.some((d) => d.id === device.id) ? prev.filter((d) => d.id !== device.id) : [...prev, device], ); }} className="w-full" >
{device.name} {device.mac}
{device.is_active ? (
Active until{" "} {new Date(device.expiry_date || "").toLocaleDateString( "en-US", { month: "short", day: "2-digit", year: "numeric", }, )}
) : (

Device Inactive

)} {device.has_a_pending_payment && ( Payment Pending{" "} )} {device.blocked && device.blocked_by === "ADMIN" && (
Blocked by admin

{device?.reason_for_blocking}

)}
{!parentalControl ? ( ) : ( )}
); }