import Input from "@/twui/components/form/Input"; import Button from "@/twui/components/layout/Button"; import Stack from "@/twui/components/layout/Stack"; import useSignupForm from "../(hooks)/use-signup-form"; import fetchApi from "@/twui/components/utils/fetch/fetchApi"; import { APIReqObject } from "@/src/types"; import { APIResponseObject } from "@moduletrace/datasquirel/dist/package-shared/types"; import { useEffect } from "react"; import { NSQLITE_TURBOCI_ADMIN_USERS } from "@/src/db/types"; type Props = { new_deployment_user?: boolean; existing_user?: NSQLITE_TURBOCI_ADMIN_USERS; }; export default function SignupForm({ new_deployment_user, existing_user, }: Props) { const { newUser, setNewUser, loading, setLoading, isPasswordConfirmed, setIsPasswordConfirmed, pageProps, } = useSignupForm({ new_deployment_user, existing_user }); const is_password_valid = Boolean( isPasswordConfirmed && Boolean(newUser.password?.match(/./)) && Boolean(newUser.confirmed_password?.match(/./)), ); return (
{ e.preventDefault(); }} > { setNewUser((prev) => ({ ...prev, first_name: v, })); }} required showLabel /> { setNewUser((prev) => ({ ...prev, last_name: v, })); }} showLabel /> { setNewUser((prev) => ({ ...prev, email: v, })); }} required showLabel /> {pageProps.user.id ? ( { setNewUser((prev) => ({ ...prev, username: v, })); }} validationRegex={/^[a-z0-9\-]{3,}$/} info={ <> Allowed characters:{" "} a-z, 0-9, - . } wrapperWrapperProps={{ className: "items-start!", }} required showLabel /> ) : null} { setNewUser((prev) => ({ ...prev, password: v, })); }} validity={{ isValid: !Boolean(newUser.password?.match(/./)) || !Boolean(newUser.confirmed_password?.match(/./)) ? true : is_password_valid, msg: `Passwords don't match`, }} required showLabel /> { setNewUser((prev) => ({ ...prev, confirmed_password: v, })); setIsPasswordConfirmed(v == newUser.password); }} showLabel />
); }