'use client' import React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import Link from 'next/link' import { useRouter } from 'next/navigation' import Toast from '../components/base/toast' import { setup } from '@/service/common' const validEmailReg = /^[\w\.-]+@([\w-]+\.)+[\w-]{2,}$/ const validPassword = /^(?=.*[a-zA-Z])(?=.*\d).{8,}$/ const InstallForm = () => { const { t } = useTranslation() const router = useRouter() const [email, setEmail] = React.useState('') const [name, setName] = React.useState('') const [password, setPassword] = React.useState('') const showErrorMessage = (message: string) => { Toast.notify({ type: 'error', message, }) } const valid = () => { if (!email) { showErrorMessage(t('login.error.emailEmpty')) return false } if (!validEmailReg.test(email)) { showErrorMessage(t('login.error.emailInValid')) return false } if (!name.trim()) { showErrorMessage(t('login.error.nameEmpty')) return false } if (!password.trim()) { showErrorMessage(t('login.error.passwordEmpty')) return false } if (!validPassword.test(password)) { showErrorMessage(t('login.error.passwordInvalid')) } return true } const handleSetting = async () => { if (!valid()) return await setup({ body: { email, name, password } }) router.push('/signin') } return ( <>
{t('login.setAdminAccountDesc')}