diff --git a/actions/auth-actions.ts b/actions/auth-actions.ts index c1eca59..938ffb5 100644 --- a/actions/auth-actions.ts +++ b/actions/auth-actions.ts @@ -4,8 +4,8 @@ import { authClient } from "@/lib/auth-client"; import prisma from "@/lib/db"; import { VerifyUserDetails } from "@/lib/person"; import { signUpFormSchema } from "@/lib/schemas"; +import { phoneNumber } from "better-auth/plugins"; import { headers } from "next/headers"; -// import type { User } from "@prisma/client"; import { redirect } from "next/navigation"; import { z } from "zod"; import { SendUserRejectionDetailSMS } from "./user-actions"; @@ -33,14 +33,23 @@ export async function signin(previousState: ActionState, formData: FormData) { status: "error", }; } - const NUMBER_WITH_COUNTRY_CODE: string = `+960${phoneNumber.split("-").join("")}`; - - const userExists = await prisma.user.findUnique({ - where: { - phoneNumber: NUMBER_WITH_COUNTRY_CODE, + const FORMATTED_MOBILE_NUMBER: string = `${phoneNumber.split("-").join("")}`; + console.log(FORMATTED_MOBILE_NUMBER); + const userExistsResponse = await fetch( + `${process.env.SARLINK_API_BASE_URL}/auth/mobile/`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + mobile: FORMATTED_MOBILE_NUMBER, + }), }, - }); - if (!userExists) { + ); + const userExists = await userExistsResponse.json(); + console.log(userExists.non_field_errors); + if (userExists?.non_field_errors) { return redirect(`/signup?phone_number=${phoneNumber}`); } @@ -51,12 +60,10 @@ export async function signin(previousState: ActionState, formData: FormData) { status: "error", }; - await authClient.phoneNumber.sendOtp({ - phoneNumber: NUMBER_WITH_COUNTRY_CODE, - }); - redirect( - `/verify-otp?phone_number=${encodeURIComponent(NUMBER_WITH_COUNTRY_CODE)}`, - ); + // await authClient.phoneNumber.sendOtp({ + // phoneNumber: NUMBER_WITH_COUNTRY_CODE, + // }); + redirect(`/verify-otp?phone_number=${FORMATTED_MOBILE_NUMBER}`); } type ActionState = { @@ -69,11 +76,8 @@ export async function signup(_actionState: ActionState, formData: FormData) { const parsedData = signUpFormSchema.safeParse(data); // get phone number from /signup?phone_number=999-1231 const headersList = await headers(); - const referer = headersList.get("referer"); - const number = referer?.split("?")[1]?.split("=")[1]; - let NUMBER_WITH_COUNTRY_CODE: string; - console.log(data); + console.log("DATA ON SERVER SIDE", data); if (!parsedData.success) { return { @@ -83,13 +87,6 @@ export async function signup(_actionState: ActionState, formData: FormData) { }; } - if (number) { - NUMBER_WITH_COUNTRY_CODE = `+960${number.split("-").join("")}`; - } else { - NUMBER_WITH_COUNTRY_CODE = `+960${parsedData.data.phone_number.split("-").join("")}`; - } - console.log({ NUMBER_WITH_COUNTRY_CODE }); - const idCardExists = await prisma.user.findFirst({ where: { id_card: parsedData.data.id_card, @@ -106,7 +103,7 @@ export async function signup(_actionState: ActionState, formData: FormData) { const phoneNumberExists = await prisma.user.findFirst({ where: { - phoneNumber: NUMBER_WITH_COUNTRY_CODE, + phoneNumber: parsedData.data.phone_number, }, }); @@ -128,7 +125,7 @@ export async function signup(_actionState: ActionState, formData: FormData) { dob: new Date(parsedData.data.dob), role: "USER", accNo: parsedData.data.accNo, - phoneNumber: NUMBER_WITH_COUNTRY_CODE, + phoneNumber: parsedData.data.phone_number, }, }); const isValidPerson = await VerifyUserDetails({ user: newUser }); diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index 556aff6..1e31963 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -6,12 +6,7 @@ import { redirect } from "next/navigation"; import React from "react"; export default async function LoginPage() { - const session = await auth.api.getSession({ - headers: await headers(), - }); - if (session) { - return redirect("/devices"); - } + return (
diff --git a/app/(auth)/signup/page.tsx b/app/(auth)/signup/page.tsx index d27e3d4..faee80f 100644 --- a/app/(auth)/signup/page.tsx +++ b/app/(auth)/signup/page.tsx @@ -1,44 +1,33 @@ import SignUpForm from "@/components/auth/signup-form"; -import { auth } from "@/lib/auth"; -import prisma from "@/lib/db"; -import { headers } from "next/headers"; +import { getAtollsWithIslands } from "@/queries/atoll"; 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 atolls = await getAtollsWithIslands(); + console.log(atolls.data); const phone_number = (await searchParams).phone_number; if (!phone_number) { return redirect("/login"); } - const atolls = await prisma.atoll.findMany({ - include: { - islands: true, - }, - }); + return (
- Sar Link Logo + Sar Link Logo

SAR Link Portal

Pay for your devices and track your bills.

- +
); diff --git a/app/(dashboard)/layout.tsx b/app/(dashboard)/layout.tsx index dc3f380..2b55887 100644 --- a/app/(dashboard)/layout.tsx +++ b/app/(dashboard)/layout.tsx @@ -1,9 +1,14 @@ import { ApplicationLayout } from "@/components/auth/application-layout"; +import QueryProvider from "@/components/query-provider"; export default function DashboardLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { - return {children}; + return + + {children} + + ; } diff --git a/app/layout.tsx b/app/layout.tsx index 2a489b7..a3327cd 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -6,7 +6,6 @@ import { Barlow } from "next/font/google"; import NextTopLoader from "nextjs-toploader"; import { Toaster } from "sonner"; import "./globals.css"; -import QueryProvider from "@/components/query-provider"; const barlow = Barlow({ subsets: ["latin"], weight: ["100", "300", "400", "500", "600", "700", "800", "900"], @@ -35,7 +34,7 @@ export default function RootLayout({ enableSystem disableTransitionOnChange > - {children} + {children} diff --git a/components/auth/signup-form.tsx b/components/auth/signup-form.tsx index e87c4e4..d438751 100644 --- a/components/auth/signup-form.tsx +++ b/components/auth/signup-form.tsx @@ -5,7 +5,6 @@ import Link from "next/link"; import { signup } from "@/actions/auth-actions"; import { cn } from "@/lib/utils"; -import type { Island, Prisma } from "@prisma/client"; import { Loader2 } from "lucide-react"; import { useSearchParams } from "next/navigation"; import * as React from "react"; @@ -19,16 +18,11 @@ import { SelectTrigger, SelectValue, } from "@/components/ui/select"; +import type { Atoll } from "@/lib/backend-types"; -type AtollWithIslands = Prisma.AtollGetPayload<{ - include: { - islands: true; - }; -}>; -export default function SignUpForm({ atolls }: { atolls: AtollWithIslands[] }) { - const [atoll, setAtoll] = React.useState(); - const [islands, setIslands] = React.useState(); +export default function SignUpForm({ atolls }: { atolls: Atoll[] }) { + const [atoll, setAtoll] = React.useState(); const [actionState, action, isPending] = React.useActionState(signup, { message: "", @@ -36,7 +30,7 @@ export default function SignUpForm({ atolls }: { atolls: AtollWithIslands[] }) { React.useEffect(() => { - setIslands(atoll?.islands); + console.log(atoll) }, [atoll]); @@ -122,11 +116,11 @@ export default function SignUpForm({ atolls }: { atolls: AtollWithIslands[] }) {