mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-13 22:54:42 -04:00

* Refactor login components and adjust API routes Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Adjust API /me response and redux state Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Fix moved function Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Update cypress tests Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Adjust mock response Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Integrate new common fields and hook into profile page Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Remove openid Signed-off-by: Erik Michelson <github@erik.michelson.eu> * Fix config mock Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de> Co-authored-by: Tilman Vatteroth <git@tilmanvatteroth.de>
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import React, { useMemo } from 'react'
|
|
import type { CommonFieldProps } from './fields'
|
|
import { Form } from 'react-bootstrap'
|
|
import { Trans, useTranslation } from 'react-i18next'
|
|
|
|
interface PasswordAgainFieldProps extends CommonFieldProps {
|
|
password: string
|
|
}
|
|
|
|
/**
|
|
* Renders an input field for typing the new password again when registering.
|
|
* @param onChange Hook that is called when the entered retype of the password changes.
|
|
* @param value The currently entered retype of the password.
|
|
* @param password The password entered into the password input field.
|
|
*/
|
|
export const PasswordAgainField: React.FC<PasswordAgainFieldProps> = ({ onChange, value, password }) => {
|
|
const { t } = useTranslation()
|
|
|
|
const isInvalid = useMemo(() => {
|
|
return value !== '' && password !== value
|
|
}, [password, value])
|
|
|
|
const isValid = useMemo(() => {
|
|
return password !== '' && password === value
|
|
}, [password, value])
|
|
|
|
return (
|
|
<Form.Group>
|
|
<Form.Label>
|
|
<Trans i18nKey='login.register.passwordAgain' />
|
|
</Form.Label>
|
|
<Form.Control
|
|
type='password'
|
|
size='sm'
|
|
isInvalid={isInvalid}
|
|
isValid={isValid}
|
|
onChange={onChange}
|
|
placeholder={t('login.register.passwordAgain')}
|
|
className='bg-dark text-light'
|
|
autoComplete='new-password'
|
|
required
|
|
/>
|
|
</Form.Group>
|
|
)
|
|
}
|