sarlink-portal/components/add-devices-to-cart-button.tsx
i701 7e49bf119a
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 6m28s
refactor: update axios client import, enhance device and payment handling, and add cancel payment button component
2025-04-08 21:37:51 +05:00

32 lines
817 B
TypeScript

"use client";
import { deviceCartAtom } from "@/lib/atoms";
import type { Device } from "@/lib/backend-types";
import { useAtomValue, useSetAtom } from "jotai";
import React from "react";
export default function AddDevicesToCartButton({ device }: { device: Device }) {
const setDeviceCart = useSetAtom(deviceCartAtom);
const devices = useAtomValue(deviceCartAtom);
const isChecked = devices.some((d) => d.id === device.id);
if (device.has_a_pending_payment || device.is_active) {
return null;
}
return (
<input
type="checkbox"
disabled={device.blocked || device.is_active}
className="peer accent-[#f49d1b] size-4"
checked={isChecked}
onChange={() =>
setDeviceCart((prev) =>
isChecked
? prev.filter((d) => d.id !== device.id)
: [...prev, device],
)
}
/>
);
}