2021-03-10 07:57:42 +00:00
|
|
|
import React, { useState, useEffect } from "react";
|
2020-10-16 13:16:01 +00:00
|
|
|
import PasswordInput from ".";
|
|
|
|
import TextInput from "../text-input";
|
2019-09-05 07:20:12 +00:00
|
|
|
|
2021-03-10 07:57:42 +00:00
|
|
|
const Template = ({
|
|
|
|
settingMinLength,
|
|
|
|
settingsUpperCase,
|
|
|
|
settingsDigits,
|
|
|
|
settingsSpecSymbols,
|
|
|
|
tooltipPasswordLength,
|
|
|
|
onChange,
|
|
|
|
onValidateInput,
|
|
|
|
onCopyToClipboard,
|
|
|
|
...args
|
|
|
|
}) => {
|
|
|
|
const [value, setValue] = useState("");
|
|
|
|
const [fakeSettings, setFakSettings] = useState();
|
2019-09-05 07:20:12 +00:00
|
|
|
|
2021-03-10 07:57:42 +00:00
|
|
|
useEffect(() => {
|
|
|
|
setFakSettings({
|
|
|
|
minLength: settingMinLength,
|
2019-09-05 07:20:12 +00:00
|
|
|
upperCase: settingsUpperCase,
|
|
|
|
digits: settingsDigits,
|
2020-10-16 13:16:01 +00:00
|
|
|
specSymbols: settingsSpecSymbols,
|
2021-03-10 07:57:42 +00:00
|
|
|
});
|
|
|
|
setValue("");
|
|
|
|
}, [
|
|
|
|
settingMinLength,
|
|
|
|
settingsUpperCase,
|
|
|
|
settingsDigits,
|
|
|
|
settingsSpecSymbols,
|
|
|
|
]);
|
2019-09-05 07:20:12 +00:00
|
|
|
|
2021-03-10 07:57:42 +00:00
|
|
|
const onChangeHandler = (e) => {
|
|
|
|
onChange(e.currentTarget.value);
|
|
|
|
setValue(e.currentTarget.value);
|
|
|
|
};
|
2019-09-05 07:20:12 +00:00
|
|
|
|
2021-03-10 07:57:42 +00:00
|
|
|
const onValidateInputHandler = (e) => {
|
|
|
|
onValidateInput(e);
|
|
|
|
};
|
|
|
|
|
|
|
|
const onCopyToClipboardHandler = (e) => {
|
|
|
|
onCopyToClipboard(`Data ${e} copied to clipboard`);
|
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div style={{ height: "110px", display: "grid", gridGap: "24px" }}>
|
|
|
|
<TextInput
|
|
|
|
name="demoEmailInput"
|
|
|
|
size="base"
|
|
|
|
isDisabled={args.isDisabled}
|
|
|
|
isReadOnly={true}
|
|
|
|
scale={true}
|
|
|
|
value="demo@gmail.com"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<PasswordInput
|
|
|
|
{...args}
|
|
|
|
inputValue={value}
|
|
|
|
onChange={onChangeHandler}
|
|
|
|
tooltipPasswordLength={`${tooltipPasswordLength} ${settingMinLength}`}
|
|
|
|
passwordSettings={fakeSettings}
|
|
|
|
onValidateInput={onValidateInputHandler}
|
|
|
|
onCopyToClipboard={onCopyToClipboardHandler}
|
|
|
|
tooltipOffsetLeft={150}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export const basic = Template.bind({});
|
|
|
|
basic.args = {
|
|
|
|
isDisabled: false,
|
|
|
|
settingMinLength: 6,
|
|
|
|
settingsUpperCase: false,
|
|
|
|
settingsDigits: false,
|
|
|
|
settingsSpecSymbols: false,
|
|
|
|
simpleView: false,
|
|
|
|
inputName: "demoPasswordInput",
|
|
|
|
emailInputName: "demoEmailInput",
|
|
|
|
hideNewPasswordButton: false,
|
|
|
|
isDisableTooltip: false,
|
|
|
|
isTextTooltipVisible: false,
|
|
|
|
clipActionResource: "Copy e-mail and password",
|
|
|
|
clipEmailResource: "E-mail: ",
|
|
|
|
clipPasswordResource: "Password: ",
|
|
|
|
clipCopiedResource: "Copied",
|
|
|
|
tooltipPasswordTitle: "Password must contain:",
|
|
|
|
tooltipPasswordLength: "minimum length: ",
|
|
|
|
tooltipPasswordDigits: "digits",
|
|
|
|
tooltipPasswordCapital: "capital letters",
|
|
|
|
tooltipPasswordSpecial: "special characters (!@#$%^&*)",
|
|
|
|
generatorSpecial: "!@#$%^&*",
|
|
|
|
placeholder: "password",
|
|
|
|
maxLength: 30,
|
|
|
|
};
|