import axios, { AxiosError } from "axios"; import { useContext, useState } from "react"; import { useNavigate } from "react-router"; import { BackendURL } from "../Config"; import { Authentication, SaveState } from "./ContextProvider"; import { GetLocalizedString } from "../Locales/Locales"; import { LanguageContext } from "../Locales/Context"; import { BackendError } from "../Models/ErrorResponce"; const RegisterURL = `${BackendURL}/auth/register`; function RegisterPage() { const lang = useContext(LanguageContext); const [username, setUsername] = useState(""); const [passw, setPassw] = useState(""); const [errMessage, setErrorMessage] = useState(""); const navigate = useNavigate(); function SetAuthState(newAuthState: Authentication | null) { if (newAuthState) { console.log(`Logging in as ${newAuthState.User}...`); } else { console.log(`Logging out...`); } SaveState(newAuthState, (cookie: string) => { document.cookie = `X-AUTH-TOKEN=${cookie}; path=/;`; }) } return (

{ GetLocalizedString("Username", lang) }

setUsername(ev.target.value)} />

{ GetLocalizedString("Password", lang) }

setPassw(ev.target.value)} />

{ errMessage }

); } async function Register(username: string, passw: string, onSuccess: (data: Authentication) => void, onError: (message: string) => void) { await axios.post( RegisterURL, { Username: username, Password: passw } ).then(resp => { onSuccess(resp.data); }).catch(err => { if (axios.isAxiosError(err)) { const parsedErr = err as AxiosError; if (parsedErr.response) { console.log(parsedErr.response); onError(parsedErr.response.data.Message); return } } return "An unexpected error occured" }); } export default RegisterPage;