mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-07-01 15:23:58 +00:00
Enhance user management and payment processing features
- Updated `package.json` to include a new script for launching Prisma Studio. - Modified `signup` function in `auth-actions.ts` to include account number in user data. - Refactored `createPayment` function in `payment.ts` to improve error handling and return structured responses. - Updated UI components in the dashboard to improve layout and responsiveness, including changes to `UserDevices` and `UserPayments` pages. - Introduced new `AdminDevicesTable` and `UsersPaymentsTable` components for better admin functionalities. - Enhanced `DeviceCartDrawer` to provide user feedback during payment processing. - Added account number input to the signup form and updated validation schema accordingly. - Updated Prisma schema to include a new `ninja_user_id` field for user management. These changes improve the overall functionality, maintainability, and user experience of the application, particularly in user management and payment processing.
This commit is contained in:
@ -90,6 +90,7 @@ export function DeviceCartDrawer({
|
||||
<DrawerDescription>Selected devices pay.</DrawerDescription>
|
||||
</DrawerHeader>
|
||||
<div className="flex max-h-[calc(100svh-400px)] flex-col overflow-auto px-4 pb-4 gap-4">
|
||||
<pre>{JSON.stringify(isOpen, null, 2)}</pre>
|
||||
{devices.map((device) => (
|
||||
<DeviceCard key={device.id} device={device} />
|
||||
))}
|
||||
@ -111,17 +112,24 @@ export function DeviceCartDrawer({
|
||||
<DrawerFooter>
|
||||
<Button
|
||||
onClick={async () => {
|
||||
setDisabled(true)
|
||||
const payment = await createPayment(data)
|
||||
setDisabled(false)
|
||||
setDeviceCart([])
|
||||
setMonths(1)
|
||||
if (payment) {
|
||||
router.push(`/payments/${payment.id}`);
|
||||
setTimeout(() => setIsOpen(!isOpen), 2000);
|
||||
} else {
|
||||
toast.error("Something went wrong.")
|
||||
}
|
||||
setDisabled(true);
|
||||
toast.promise(
|
||||
createPayment(data).then((result) => {
|
||||
if (result.success) {
|
||||
setDeviceCart([]);
|
||||
setMonths(1);
|
||||
setDisabled(false);
|
||||
if (isOpen) router.push(`/payments/${result.paymentId}`);
|
||||
setIsOpen(!isOpen);
|
||||
return "Payment created!";
|
||||
}
|
||||
}),
|
||||
{
|
||||
loading: "Processing payment...",
|
||||
success: "Payment created!",
|
||||
error: (err) => err.message || "Something went wrong.",
|
||||
}
|
||||
);
|
||||
}}
|
||||
className="w-full"
|
||||
disabled={devices.length === 0 || disabled}
|
||||
|
Reference in New Issue
Block a user