Add support for password reset links

This commit is contained in:
Dane Everitt 2019-06-16 16:57:57 -07:00
parent 54cfe7e981
commit 4eeec58c59
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
12 changed files with 266 additions and 43 deletions

View file

@ -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>
}