mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-07-01 21:28:23 +00:00
feat: update signup and OTP verification forms to enhance error handling and state management
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m16s
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 4m16s
This commit is contained in:
@ -77,9 +77,25 @@ export async function signin(previousState: ActionState, formData: FormData) {
|
||||
}
|
||||
|
||||
export type ActionState = {
|
||||
message: string;
|
||||
status: string;
|
||||
status?: string;
|
||||
payload?: FormData;
|
||||
errors?: z.typeToFlattenedError<
|
||||
{
|
||||
id_card: string;
|
||||
phone_number: string;
|
||||
name: string;
|
||||
atoll_id: string;
|
||||
island_id: string;
|
||||
address: string;
|
||||
dob: Date;
|
||||
terms: string;
|
||||
policy: string;
|
||||
accNo: string;
|
||||
},
|
||||
string
|
||||
>;
|
||||
db_error?: string;
|
||||
error?: string;
|
||||
};
|
||||
|
||||
export async function signup(_actionState: ActionState, formData: FormData) {
|
||||
@ -119,11 +135,12 @@ export async function signup(_actionState: ActionState, formData: FormData) {
|
||||
db_error: "phone_number",
|
||||
};
|
||||
}
|
||||
|
||||
const [signupError, signupResponse] = await tryCatch(
|
||||
backendRegister({
|
||||
payload: {
|
||||
firstname: parsedData.data.name,
|
||||
lastname: parsedData.data.name,
|
||||
firstname: parsedData.data.name.split(" ")[0],
|
||||
lastname: parsedData.data.name.split(" ")[1],
|
||||
username: parsedData.data.phone_number,
|
||||
address: parsedData.data.address,
|
||||
id_card: parsedData.data.id_card,
|
||||
@ -141,39 +158,11 @@ export async function signup(_actionState: ActionState, formData: FormData) {
|
||||
throw new Error(signupError.message);
|
||||
}
|
||||
console.log("SIGNUP RESPONSE", signupResponse);
|
||||
// if (!isValidPerson) {
|
||||
// await SendUserRejectionDetailSMS({
|
||||
// details: `
|
||||
// A new user has requested for verification. \n
|
||||
// USER DETAILS:
|
||||
// Name: ${parsedData.data.name}
|
||||
// Address: ${parsedData.data.address}
|
||||
// ID Card: ${parsedData.data.id_card}
|
||||
// DOB: ${parsedData.data.dob.toLocaleDateString("en-US", {
|
||||
// month: "short",
|
||||
// day: "2-digit",
|
||||
// year: "numeric",
|
||||
// })}
|
||||
// ACC No: ${parsedData.data.accNo}\n\nVerify the user with the following link: ${process.env.BETTER_AUTH_URL}/users/${newUser.id}/verify
|
||||
// `,
|
||||
// phoneNumber: process.env.ADMIN_PHONENUMBER ?? "",
|
||||
// });
|
||||
// return {
|
||||
// message:
|
||||
// "Your account has been requested for verification. Please wait for a response from admin.",
|
||||
// payload: formData,
|
||||
// db_error: "invalidPersonValidation",
|
||||
// };
|
||||
|
||||
// if (isValidPerson) {
|
||||
// await authClient.phoneNumber.sendOtp({
|
||||
// phoneNumber: newUser.phoneNumber,
|
||||
// });
|
||||
// }
|
||||
redirect(
|
||||
`/auth/verify-otp-registration?phone_number=${encodeURIComponent(signupResponse.t_username)}`,
|
||||
);
|
||||
return { message: "User created successfully" };
|
||||
return { message: "User created successfully", error: "success" };
|
||||
}
|
||||
|
||||
export const sendOtp = async (phoneNumber: string, code: string) => {
|
||||
|
Reference in New Issue
Block a user