diff --git a/src/projects/06-password-generator/components/PasswordGenerator.jsx b/src/projects/06-password-generator/components/PasswordGenerator.jsx
index feebc52..6cdd2ba 100644
--- a/src/projects/06-password-generator/components/PasswordGenerator.jsx
+++ b/src/projects/06-password-generator/components/PasswordGenerator.jsx
@@ -2,6 +2,7 @@ import { useState } from 'react';
import { characterData } from '../data/characterData';
import '../styles.css';
import usePasswordGenerator from '../hooks/usePasswordGenerator';
+import StrengthChecker from './StrengthChecker';
const PasswordGenerator = () => {
const [passwordLength, setPasswordLength] = useState(8);
@@ -88,10 +89,10 @@ const PasswordGenerator = () => {
{error ? (
Select at least one checkbox
) : (
-
- strength:
- good
-
+
)}
{/* generate button */}
diff --git a/src/projects/06-password-generator/components/StrengthChecker.jsx b/src/projects/06-password-generator/components/StrengthChecker.jsx
new file mode 100644
index 0000000..bb7ff23
--- /dev/null
+++ b/src/projects/06-password-generator/components/StrengthChecker.jsx
@@ -0,0 +1,39 @@
+import { useEffect, useState } from 'react';
+
+const StrengthChecker = ({ length, checkboxData }) => {
+ const [strength, setStrength] = useState('');
+
+ useEffect(() => {
+ const charTypeCount = checkboxData.reduce((acc, curr) => {
+ if (curr.state) {
+ acc++;
+ }
+ return acc;
+ }, 0);
+
+ if (length < 5 && charTypeCount === 1) {
+ setStrength('very weak');
+ } else if (length < 7 && charTypeCount <= 2) {
+ setStrength('weak');
+ } else if (length < 9 && charTypeCount <= 2) {
+ setStrength('good');
+ } else if (length <= 9 && charTypeCount <= 3) {
+ setStrength('very good');
+ } else if (length <= 15 && charTypeCount <= 1) {
+ setStrength('good');
+ } else if (length <= 15 && charTypeCount <= 3) {
+ setStrength('Excellent');
+ } else if (length <= 20 && charTypeCount <= 4) {
+ setStrength('super strong');
+ } else {
+ setStrength('');
+ }
+ }, [length, checkboxData]);
+ return (
+
+ strength:
+ {strength}
+
+ );
+};
+export default StrengthChecker;