mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 13:01:56 +00:00
feat: invitations are working - first iteration
This commit is contained in:
@@ -56,6 +56,10 @@ export const createNewUser = async (
|
||||
const keyServer = process.env.API_BASE_URL;
|
||||
const url = new URL(`${keyServer}/users`);
|
||||
|
||||
if (formData.invitationToken) {
|
||||
url.searchParams.append("invitation_token", formData.invitationToken);
|
||||
}
|
||||
|
||||
const bodyData = {
|
||||
data: {
|
||||
type: "User",
|
||||
@@ -79,7 +83,6 @@ export const createNewUser = async (
|
||||
});
|
||||
|
||||
const parsedResponse = await response.json();
|
||||
|
||||
if (!response.ok) {
|
||||
return parsedResponse;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import { AuthForm } from "@/components/auth/oss";
|
||||
import { SearchParamsProps } from "@/types";
|
||||
|
||||
const SignUp = () => {
|
||||
return <AuthForm type="sign-up" />;
|
||||
const SignUp = ({ searchParams }: { searchParams: SearchParamsProps }) => {
|
||||
const invitationToken =
|
||||
typeof searchParams?.invitation_token === "string"
|
||||
? searchParams.invitation_token
|
||||
: null;
|
||||
|
||||
return <AuthForm type="sign-up" invitationToken={invitationToken} />;
|
||||
};
|
||||
|
||||
export default SignUp;
|
||||
|
||||
@@ -20,7 +20,13 @@ import {
|
||||
} from "@/components/ui/form";
|
||||
import { ApiError, authFormSchema } from "@/types";
|
||||
|
||||
export const AuthForm = ({ type }: { type: string }) => {
|
||||
export const AuthForm = ({
|
||||
type,
|
||||
invitationToken,
|
||||
}: {
|
||||
type: string;
|
||||
invitationToken?: string | null;
|
||||
}) => {
|
||||
const formSchema = authFormSchema(type);
|
||||
const router = useRouter();
|
||||
|
||||
@@ -96,6 +102,12 @@ export const AuthForm = ({ type }: { type: string }) => {
|
||||
message: errorMessage,
|
||||
});
|
||||
break;
|
||||
case "/data/attributes/invitation_token":
|
||||
form.setError("invitationToken", {
|
||||
type: "server",
|
||||
message: errorMessage,
|
||||
});
|
||||
break;
|
||||
default:
|
||||
toast({
|
||||
variant: "destructive",
|
||||
@@ -186,6 +198,17 @@ export const AuthForm = ({ type }: { type: string }) => {
|
||||
name="confirmPassword"
|
||||
confirmPassword
|
||||
/>
|
||||
{invitationToken && (
|
||||
<CustomInput
|
||||
control={form.control}
|
||||
name="invitationToken"
|
||||
type="text"
|
||||
label="Invitation Token"
|
||||
placeholder={invitationToken}
|
||||
isRequired={false}
|
||||
isInvalid={!!form.formState.errors.invitationToken}
|
||||
/>
|
||||
)}
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="termsAndConditions"
|
||||
|
||||
@@ -21,6 +21,8 @@ export const authFormSchema = (type: string) =>
|
||||
: z.string().min(12, {
|
||||
message: "It must contain at least 12 characters.",
|
||||
}),
|
||||
invitationToken:
|
||||
type === "sign-in" ? z.string().optional() : z.string().optional(),
|
||||
termsAndConditions:
|
||||
type === "sign-in"
|
||||
? z.boolean().optional()
|
||||
|
||||
Reference in New Issue
Block a user