mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-06-29 13:43: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:
@ -13,7 +13,7 @@ export default async function LoginPage() {
|
||||
return redirect("/devices");
|
||||
}
|
||||
return (
|
||||
<div className="bg-gray-100 dark:bg-black w-full h-screen flex items-center justify-center font-sans">
|
||||
<div className="dark:bg-black w-full h-screen flex items-center justify-center font-sans">
|
||||
<div className="flex flex-col items-center justify-center w-full h-full ">
|
||||
<Image alt="Sar Link Logo" src="/logo.png" width={100} height={100} />
|
||||
<div className="mt-4 flex flex-col items-center justify-center">
|
||||
|
@ -29,8 +29,8 @@ export default async function SignupPage({
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="bg-gray-100 dark:bg-black w-full h-screen flex items-center justify-center font-sans">
|
||||
<div className="flex flex-col items-center justify-center w-full h-full ">
|
||||
<div className="dark:bg-black w-full flex items-center justify-center font-sans">
|
||||
<div className="flex flex-col items-center justify-center w-full h-full py-4">
|
||||
<Image
|
||||
priority
|
||||
alt="Sar Link Logo"
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { DevicesTable } from "@/components/devices-table";
|
||||
import { AdminDevicesTable } from "@/components/admin/admin-devices-table";
|
||||
import Search from "@/components/search";
|
||||
import { Suspense } from "react";
|
||||
|
||||
@ -32,7 +32,7 @@ export default async function UserDevices({
|
||||
|
||||
</div>
|
||||
<Suspense key={query} fallback={"loading...."}>
|
||||
<DevicesTable parentalControl={true} searchParams={searchParams} />
|
||||
<AdminDevicesTable parentalControl={true} searchParams={searchParams} />
|
||||
</Suspense>
|
||||
</div>
|
||||
);
|
||||
|
@ -1,8 +1,20 @@
|
||||
import { UsersPaymentsTable } from "@/components/admin/user-payments-table";
|
||||
import { AdminAuthGuard } from "@/lib/auth-guard";
|
||||
import React from "react";
|
||||
import React, { Suspense } from "react";
|
||||
|
||||
export default async function UserPayments() {
|
||||
export default async function UserPayments({
|
||||
searchParams,
|
||||
}: {
|
||||
searchParams: Promise<{
|
||||
query: string;
|
||||
page: number;
|
||||
sortBy: string;
|
||||
status: string;
|
||||
}>;
|
||||
}) {
|
||||
await AdminAuthGuard();
|
||||
const query = (await searchParams)?.query || "";
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="flex justify-between items-center border-[1px] rounded-md border-dashed font-bold title-bg py-4 px-2 mb-4">
|
||||
@ -10,6 +22,9 @@ export default async function UserPayments() {
|
||||
User Payments
|
||||
</h3>
|
||||
</div>
|
||||
<Suspense key={query} fallback={"loading...."}>
|
||||
<UsersPaymentsTable searchParams={searchParams} />
|
||||
</Suspense>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ export default function RootLayout({
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<body className={`${barlow.variable} antialiased font-sans`}>
|
||||
<body className={`${barlow.variable} antialiased font-sans bg-gray-100`}>
|
||||
<Provider>
|
||||
<NextTopLoader color="#f49d1b" showSpinner={false} zIndex={9999} />
|
||||
<Toaster richColors />
|
||||
|
Reference in New Issue
Block a user