|
@@ -17,6 +17,7 @@ const InstallForm = () => {
|
|
|
const [email, setEmail] = React.useState('')
|
|
|
const [name, setName] = React.useState('')
|
|
|
const [password, setPassword] = React.useState('')
|
|
|
+ const [showPassword, setShowPassword] = React.useState(false)
|
|
|
const showErrorMessage = (message: string) => {
|
|
|
Toast.notify({
|
|
|
type: 'error',
|
|
@@ -108,12 +109,21 @@ const InstallForm = () => {
|
|
|
<div className="mt-1 relative rounded-md shadow-sm">
|
|
|
<input
|
|
|
id="password"
|
|
|
- type='password'
|
|
|
+ type={showPassword ? 'text' : 'password'}
|
|
|
value={password}
|
|
|
onChange={e => setPassword(e.target.value)}
|
|
|
placeholder={t('login.passwordPlaceholder') || ''}
|
|
|
className={'appearance-none block w-full rounded-lg pl-[14px] px-3 py-2 border border-gray-200 hover:border-gray-300 hover:shadow-sm focus:outline-none focus:ring-primary-500 focus:border-primary-500 placeholder-gray-400 caret-primary-600 sm:text-sm pr-10'}
|
|
|
/>
|
|
|
+ <div className="absolute inset-y-0 right-0 flex items-center pr-3">
|
|
|
+ <button
|
|
|
+ type="button"
|
|
|
+ onClick={() => setShowPassword(!showPassword)}
|
|
|
+ className="text-gray-400 hover:text-gray-500 focus:outline-none focus:text-gray-500"
|
|
|
+ >
|
|
|
+ {showPassword ? '👀' : '😝'}
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div className='mt-1 text-xs text-gray-500'>{t('login.error.passwordInvalid')}</div>
|
|
|
|