import React, { useEffect, useState } from "react"; import Head from "next/head"; import { faCheck, faX } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import Button from "~/components/basic/buttons/Button"; import InputField from "~/components/basic/InputField"; import NavHeader from "~/components/navigation/NavHeader"; import changePassword from "~/components/utilities/cryptography/changePassword"; import issueBackupKey from "~/components/utilities/cryptography/issueBackupKey"; import passwordCheck from "~/utilities/checks/PasswordCheck"; import getUser from "../../api/user/getUser"; export default function PersonalSettings() { const [personalEmail, setPersonalEmail] = useState(""); const [personalName, setPersonalName] = useState(""); const [passwordErrorLength, setPasswordErrorLength] = useState(false); const [passwordErrorNumber, setPasswordErrorNumber] = useState(false); const [passwordErrorLowerCase, setPasswordErrorLowerCase] = useState(false); const [currentPasswordError, setCurrentPasswordError] = useState(false); const [currentPassword, setCurrentPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [backupPassword, setBackupPassword] = useState(""); const [passwordChanged, setPasswordChanged] = useState(false); const [backupKeyIssued, setBackupKeyIssued] = useState(false); const [backupKeyError, setBackupKeyError] = useState(false); useEffect(async () => { let user = await getUser(); setPersonalEmail(user.email); setPersonalName(user.firstName + " " + user.lastName); }, []); return (
Personal Settings

Personal Settings

View and manage your personal information here.

{/*

Display Name

{buttonReady ? ( ) : (

Saved

)}
*/}

Change password

{ setCurrentPassword(password); }} type="password" value={currentPassword} isRequired error={currentPasswordError} errorText="The current password may be wrong" />
{ setNewPassword(password); passwordCheck( password, setPasswordErrorLength, setPasswordErrorNumber, setPasswordErrorLowerCase, false ); }} type="password" value={newPassword} isRequired error={ passwordErrorLength && passwordErrorLowerCase && passwordErrorNumber } />
{passwordErrorLength || passwordErrorLowerCase || passwordErrorNumber ? (
Password should contain at least:
{passwordErrorLength ? ( ) : ( )}
14 characters
{passwordErrorLowerCase ? ( ) : ( )}
1 lowercase character
{passwordErrorNumber ? ( ) : ( )}
1 number
) : (
)}

Emergency Kit

Your Emergency Kit contains the information you’ll need to sign in to your Infisical account.

Only the latest issued Emergency Kit remains valid. To get a new Emergency Kit, verify your password.

); } PersonalSettings.requireAuth = true;