Untitled
unknown
plain_text
a year ago
5.7 kB
10
Indexable
import React from 'react';
import { Password } from 'primereact/password';
import PrimeWrapper from '../primeWrapper/primewrapper';
import PropTypes from 'prop-types';
import classNames from 'classnames';
const PrimePassword = (props) => {
const getHelperTextLabel = () => {
if (typeof props.helperTextLabelKey !== 'undefined') {
return props.evalLangText(props);
} else if (typeof props.helperText !== 'undefined') {
return props.helperText;
} else {
return '';
}
};
return (
(props.showif !== undefined ? props.showif : true) && (
<span className="prime-input-text-wrapper">
<div>
<label className={props.labelClassName}> {props.evalLangText(props)}</label>
</div>
<Password
id={props.id}
value={props.value || ''}
onChange={props.onChange}
onInput={props.onInput}
className={props.className}
inputClassName={props.inputClassName}
style={props.style}
inputStyle={props.inputStyle}
placeholder={props.placeholder}
disabled={props.disabled}
autoFocus={props.autoFocus}
autoComplete={props.autoComplete}
maxLength={props.maxLength}
keyfilter={props.keyfilter}
feedback={props.feedback}
promptLabel={props.promptLabel}
panelClassName={props.panelClassName}
panelStyle={props.panelStyle}
weakLabel={props.weakLabel}
mediumLabel={props.mediumLabel}
strongLabel={props.strongLabel}
mediumRegex={props.mediumRegex}
strongRegex={props.strongRegex}
toggleMask={props.toggleMask}
icon={props.icon} // Custom icon should be passed here, not toggleMaskIcon
tooltip={props.tooltip}
tooltipOptions={props.tooltipOptions}
header={props.header}
footer={props.footer}
tabIndex={props.tabIndex}
required={props.required}
ariaLabel={props.ariaLabel} // corrected prop name
ariaLabelledBy={props.ariaLabelledBy} // corrected prop name
onBlur={props.onBlur}
onFocus={props.onFocus}
onHide={props.onHide}
onShow={props.onShow}
{...props}>
{props.children}
</Password>
{props.helperTextShowIf && (props.helperText || props.helperTextLabelKey) && (
<div>
<small
className={classNames(
'ux-input-helper-text',
props.helperTextClassName,
)}
>
{getHelperTextLabel()}
</small>
</div>
)}
</span>
)
);
};
PrimePassword.propTypes = {
id: PropTypes.string,
inputId: PropTypes.string, // Removed: not applicable for PrimeReact Password component
value: PropTypes.string,
onChange: PropTypes.func.isRequired,
onInput: PropTypes.func,
className: PropTypes.string,
inputClassName: PropTypes.string,
style: PropTypes.object,
inputStyle: PropTypes.object,
placeholder: PropTypes.string,
disabled: PropTypes.bool,
autoFocus: PropTypes.bool,
autoComplete: PropTypes.string,
maxLength: PropTypes.number,
keyfilter: PropTypes.any, // Adjusted type to any for keyFilter, since PrimeReact keyfilter takes multiple types
feedback: PropTypes.bool,
promptLabel: PropTypes.string,
weakLabel: PropTypes.string,
mediumLabel: PropTypes.string,
strongLabel: PropTypes.string,
mediumRegex: PropTypes.string,
strongRegex: PropTypes.string,
toggleMask: PropTypes.bool,
icon: PropTypes.any, // Corrected usage of icon instead of toggleMaskIcon
tooltip: PropTypes.string,
tooltipOptions: PropTypes.object,
panelClassName: PropTypes.string,
panelStyle: PropTypes.object,
header: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
footer: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
tabIndex: PropTypes.number,
required: PropTypes.bool,
ariaLabel: PropTypes.string, // Corrected from `arialabel` to `ariaLabel`
ariaLabelledBy: PropTypes.string, // Corrected from `arialabelledby` to `ariaLabelledBy`
onBlur: PropTypes.func,
onFocus: PropTypes.func,
onHide: PropTypes.func,
onShow: PropTypes.func,
showif: PropTypes.bool,
labelClassName: PropTypes.string,
helperText: PropTypes.string,
helperTextLabelKey: PropTypes.string,
helperTextClassName: PropTypes.string,
helperTextShowIf: PropTypes.bool,
};
PrimePassword.defaultProps = {
value: '',
feedback: true,
autoComplete: 'off',
promptLabel: 'Please enter a password',
weakLabel: 'Weak',
mediumLabel: 'Medium',
strongLabel: 'Strong',
mediumRegex:
'^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,}).',
strongRegex: '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})',
};
export default PrimeWrapper(PrimePassword);
Editor is loading...
Leave a Comment