'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.setAdminAccount')}

{t('login.setAdminAccountDesc')}

{ }}>
setEmail(e.target.value)} className={'appearance-none block w-full px-3 py-2 border border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 rounded-md shadow-sm placeholder-gray-400 sm:text-sm'} />
setName(e.target.value)} className={'appearance-none block w-full px-3 py-2 border border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 rounded-md shadow-sm placeholder-gray-400 sm:text-sm pr-10'} />
setPassword(e.target.value)} className={'appearance-none block w-full px-3 py-2 border border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 rounded-md shadow-sm placeholder-gray-400 sm:text-sm pr-10'} />
{t('login.error.passwordInvalid')}
{/*
*/} {/* agree to our Terms and Privacy Policy. */}
{t('login.tosDesc')}   {t('login.tos')}  &  {t('login.pp')}
) } export default InstallForm