Skip to content

Commit 13b9d33

Browse files
committed
chore: added password meter colors, width and colors
1 parent af8378b commit 13b9d33

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

lib/components/PasswordInput/index.tsx

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,42 @@
11
import React, { ComponentProps } from "react";
2+
import clsx from "clsx";
23
import { Input } from "../Input";
34
import "./PasswordInput.scss";
45

5-
interface PasswordInputProps extends ComponentProps<typeof Input> {}
6+
interface PasswordInputProps extends ComponentProps<typeof Input> {
7+
score: 0 | 1 | 2 | 3 | 4;
8+
}
9+
10+
export const PasswordInput = ({ score = 0, ...props }: PasswordInputProps) => {
11+
const PasswordStrengthClass: Record<PasswordInputProps["score"], string> = {
12+
0: "",
13+
1: "deriv-password-meter--bar__weak",
14+
2: "deriv-password-meter--bar__moderate",
15+
3: "deriv-password-meter--bar__strong",
16+
4: "deriv-password-meter--bar__complete",
17+
};
18+
19+
const PasswordVariant: Record<
20+
PasswordInputProps["score"],
21+
PasswordInputProps["variant"]
22+
> = {
23+
0: "general",
24+
1: "error",
25+
2: "error",
26+
3: "success",
27+
4: "success",
28+
};
629

7-
export const PasswordInput = ({ ...props }: PasswordInputProps) => {
830
return (
931
<div className="deriv-password">
10-
<Input type="password" {...props} />
32+
<Input type="password" {...props} variant={PasswordVariant[score]} />
1133
<div className="deriv-password-meter">
12-
<div className="deriv-password-meter--bar"></div>
34+
<div
35+
className={clsx(
36+
"deriv-password-meter--bar",
37+
PasswordStrengthClass[score]
38+
)}
39+
></div>
1340
</div>
1441
</div>
1542
);

0 commit comments

Comments
 (0)