i701 0a63e4337e 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.
2025-01-06 12:49:13 +05:00

52 lines
1.3 KiB
TypeScript

import SignUpForm from "@/components/auth/signup-form";
import { auth } from "@/lib/auth";
import prisma from "@/lib/db";
import { headers } from "next/headers";
import Image from "next/image";
import { redirect } from "next/navigation";
import React from "react";
export default async function SignupPage({
searchParams,
}: {
searchParams: Promise<{ phone_number: string }>;
}) {
const session = await auth.api.getSession({
headers: await headers(),
});
if (session) {
return redirect("/devices");
}
const phone_number = (await searchParams).phone_number;
if (!phone_number) {
return redirect("/login");
}
const atolls = await prisma.atoll.findMany({
include: {
islands: true,
},
});
return (
<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"
src="/logo.png"
width={100}
height={100}
/>
<div className="mt-4 flex flex-col items-center justify-center">
<h4 className="font-bold text-xl text-gray-600">SAR Link Portal</h4>
<p className="text-gray-500">
Pay for your devices and track your bills.
</p>
</div>
<SignUpForm atolls={atolls} />
</div>
</div>
);
}