Add support for password reset links
This commit is contained in:
parent
54cfe7e981
commit
4eeec58c59
12 changed files with 266 additions and 43 deletions
|
@ -4,13 +4,18 @@ import classNames from 'classnames';
|
|||
type Props = React.InputHTMLAttributes<HTMLInputElement> & {
|
||||
label: string;
|
||||
description?: string;
|
||||
value?: string;
|
||||
};
|
||||
|
||||
export default React.forwardRef<HTMLInputElement, Props>(({ className, description, onChange, label, ...props }, ref) => {
|
||||
const [ value, setValue ] = React.useState('');
|
||||
export default React.forwardRef<HTMLInputElement, Props>(({ className, description, onChange, label, value, ...props }, ref) => {
|
||||
const [ stateValue, setStateValue ] = React.useState(value);
|
||||
|
||||
if (value !== stateValue) {
|
||||
setStateValue(value);
|
||||
}
|
||||
|
||||
const classes = classNames('input open-label', {
|
||||
'has-content': value && value.length > 0,
|
||||
'has-content': stateValue && stateValue.length > 0,
|
||||
});
|
||||
|
||||
return (
|
||||
|
@ -19,16 +24,17 @@ export default React.forwardRef<HTMLInputElement, Props>(({ className, descripti
|
|||
ref={ref}
|
||||
className={classes}
|
||||
onChange={e => {
|
||||
setValue(e.target.value);
|
||||
setStateValue(e.target.value);
|
||||
if (onChange) {
|
||||
onChange(e);
|
||||
}
|
||||
}}
|
||||
value={typeof value !== 'undefined' ? (stateValue || '') : undefined}
|
||||
{...props}
|
||||
/>
|
||||
<label htmlFor={props.id}>{label}</label>
|
||||
{description &&
|
||||
<p className={'text-xs text-neutral-500'}>
|
||||
<p className={'mt-2 text-xs text-neutral-500'}>
|
||||
{description}
|
||||
</p>
|
||||
}
|
||||
|
|
Reference in a new issue