mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-02-22 23:42:00 +00:00
- Introduced createPayment action for handling payment creation. - Added PaymentsTable component for displaying payment records with pagination. - Implemented new PaymentPage for viewing individual payment details and associated devices. - Refactored DeviceCartDrawer to integrate payment creation and device selection. - Enhanced DevicesToPay component to display devices based on payment status. - Updated PriceCalculator component for better user input handling. - Introduced NumberInput component for consistent number input across forms. - Modified Prisma schema to include new fields for payments and devices. - Improved overall user experience with responsive design adjustments and new UI elements.
33 lines
831 B
TypeScript
33 lines
831 B
TypeScript
'use client'
|
|
import { deviceCartAtom } from '@/lib/atoms'
|
|
import type { Device } from '@prisma/client'
|
|
import { useAtomValue, useSetAtom } from 'jotai'
|
|
import { BadgePlus, CheckCheck } from 'lucide-react'
|
|
import React from 'react'
|
|
import { Button } from './ui/button'
|
|
|
|
export default function AddDevicesToCartButton({ device }: { device: Device }) {
|
|
const setDeviceCart = useSetAtom(deviceCartAtom)
|
|
const devices = useAtomValue(deviceCartAtom)
|
|
return (
|
|
<Button
|
|
disabled={devices.some((d) => d.id === device.id)}
|
|
onClick={() => setDeviceCart((prev) => [...prev, device])}
|
|
>
|
|
{devices.some((d) => d.id === device.id) ? (
|
|
<>
|
|
Selected
|
|
<CheckCheck />
|
|
</>
|
|
) : (
|
|
<>
|
|
Select device
|
|
<BadgePlus />
|
|
|
|
</>
|
|
|
|
)}
|
|
</Button>
|
|
)
|
|
}
|