Skip to content

Commit 7b7eabb

Browse files
authored
Merge pull request #41 from CodeDead/feature/refactoring
feature/refactoring
2 parents d11e203 + cf6196a commit 7b7eabb

File tree

10 files changed

+172
-74
lines changed

10 files changed

+172
-74
lines changed

src/components/App/index.jsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import React, {
2-
useContext, useEffect, useState, lazy, Suspense,
2+
useContext,
3+
useEffect,
4+
useState,
5+
lazy,
6+
Suspense,
37
} from 'react';
48
import CssBaseline from '@mui/material/CssBaseline';
59
import { createTheme, ThemeProvider } from '@mui/material/styles';
@@ -17,7 +21,11 @@ import TopBar from '../TopBar';
1721
import ClippedDrawer from '../ClippedDrawer';
1822
import UpdateDialog from '../UpdateDialog';
1923
import {
20-
openWebSite, setCheckedForUpdates, setError, setLoading, setUpdate,
24+
openWebSite,
25+
setCheckedForUpdates,
26+
setError,
27+
setLoading,
28+
setUpdate,
2129
} from '../../reducers/MainReducer/Actions';
2230
import Updater from '../../utils/Updater';
2331
import AlertDialog from '../AlertDialog';
@@ -176,7 +184,7 @@ const App = () => {
176184
{language.downloadApp}
177185
</Typography>
178186
<Button
179-
onClick={() => window.open('https://codedead.com/software/advanced-passgen')}
187+
onClick={() => openWebSite('https://codedead.com/software/advanced-passgen')}
180188
size="small"
181189
color="secondary"
182190
>

src/components/CreatePasswordDialog/index.jsx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@ const CreatePasswordDialog = ({ open, onCreate, onClose }) => {
4242
const [password, setPassword] = useState('');
4343
const [showPassword, setShowPassword] = useState(false);
4444

45+
const simpleCharacterSet = getFullCharacterSet(
46+
characterSet,
47+
useAdvanced,
48+
smallLetters,
49+
capitalLetters,
50+
spaces,
51+
numbers,
52+
specialCharacters,
53+
brackets,
54+
);
55+
56+
const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0
57+
|| min > max || max < min;
58+
4559
/**
4660
* Close the dialog
4761
*/
@@ -79,17 +93,7 @@ const CreatePasswordDialog = ({ open, onCreate, onClose }) => {
7993
* Generate passwords
8094
*/
8195
const generatePassword = () => {
82-
const simpleCharacterSet = getFullCharacterSet(
83-
characterSet,
84-
useAdvanced,
85-
smallLetters,
86-
capitalLetters,
87-
spaces,
88-
numbers,
89-
specialCharacters,
90-
brackets,
91-
);
92-
if (!simpleCharacterSet || simpleCharacterSet.length === 0 || min > max || max < min) {
96+
if (cannotGenerate) {
9397
return;
9498
}
9599

@@ -179,6 +183,7 @@ const CreatePasswordDialog = ({ open, onCreate, onClose }) => {
179183
color="primary"
180184
size="large"
181185
sx={{ width: '100%', height: '100%' }}
186+
disabled={cannotGenerate}
182187
onClick={generatePassword}
183188
>
184189
<RefreshIcon fontSize="inherit" />

src/components/EditPasswordDialog/index.jsx

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,20 @@ const EditPasswordDialog = ({
4444
const [password, setPassword] = useState(data && data.password ? data.password : '');
4545
const [showPassword, setShowPassword] = useState(false);
4646

47+
const simpleCharacterSet = getFullCharacterSet(
48+
characterSet,
49+
useAdvanced,
50+
smallLetters,
51+
capitalLetters,
52+
spaces,
53+
numbers,
54+
specialCharacters,
55+
brackets,
56+
);
57+
58+
const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0
59+
|| min > max || max < min;
60+
4761
/**
4862
* Close the dialog
4963
*/
@@ -77,17 +91,7 @@ const EditPasswordDialog = ({
7791
* Generate passwords
7892
*/
7993
const generatePassword = () => {
80-
const simpleCharacterSet = getFullCharacterSet(
81-
characterSet,
82-
useAdvanced,
83-
smallLetters,
84-
capitalLetters,
85-
spaces,
86-
numbers,
87-
specialCharacters,
88-
brackets,
89-
);
90-
if (!simpleCharacterSet || simpleCharacterSet.length === 0 || min > max || max < min) {
94+
if (cannotGenerate) {
9195
return;
9296
}
9397

@@ -177,6 +181,7 @@ const EditPasswordDialog = ({
177181
color="primary"
178182
size="large"
179183
sx={{ width: '100%', height: '100%' }}
184+
disabled={cannotGenerate}
180185
onClick={generatePassword}
181186
>
182187
<RefreshIcon fontSize="inherit" />

src/components/LinearProgressWithLabel/index.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const LinearProgressWithLabel = ({ value }) => (
88
<Box sx={{ display: 'flex', alignItems: 'center' }}>
99
<Box sx={{ width: '100%', mr: 1 }}>
1010
<LinearProgress
11+
style={{ height: 10 }}
1112
variant="determinate"
1213
value={value}
1314
/>

src/components/SelectFileDialog/index.jsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ const SelectFileDialog = ({
2121
}
2222
};
2323

24+
/**
25+
* Accept and read the file
26+
* @param e The event argument
27+
*/
2428
const handleFileChange = (e) => {
2529
e.preventDefault();
2630
const reader = new FileReader();

src/routes/About/index.jsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,20 @@ const About = () => {
1414
const { languageIndex } = state;
1515
const language = state.languages[languageIndex];
1616

17+
/**
18+
* Open the license page
19+
*/
20+
const openLicense = () => {
21+
openWebSite('https://codedead.com/Software/Advanced%20PassGen/gpl.pdf');
22+
};
23+
24+
/**
25+
* Open the home page
26+
*/
27+
const openHomePage = () => {
28+
openWebSite('https://codedead.com/');
29+
};
30+
1731
useEffect(() => {
1832
d1(setPageIndex(6));
1933
}, []);
@@ -34,15 +48,15 @@ const About = () => {
3448
variant="contained"
3549
style={{ float: 'left' }}
3650
sx={{ mt: 2 }}
37-
onClick={() => openWebSite('https://codedead.com/Software/Advanced%20PassGen/gpl.pdf')}
51+
onClick={openLicense}
3852
>
3953
{language.license}
4054
</Button>
4155
<Button
4256
variant="contained"
4357
style={{ float: 'right' }}
4458
sx={{ mt: 2 }}
45-
onClick={() => openWebSite('https://codedead.com/')}
59+
onClick={openHomePage}
4660
>
4761
{language.website}
4862
</Button>

src/routes/Advanced/index.jsx

Lines changed: 55 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ import { setError, setLoading, setPageIndex } from '../../reducers/MainReducer/A
1414
import { MainContext } from '../../contexts/MainContextProvider';
1515
import { PasswordContext } from '../../contexts/PasswordContextProvider';
1616
import {
17-
generatePasswordArray, getFullCharacterSet,
17+
generatePasswordArray,
18+
getFullCharacterSet,
1819
setAllowDuplicates,
19-
setCharacterSet, setPasswords,
20+
setCharacterSet,
21+
setPasswords,
2022
setUseAdvanced,
2123
} from '../../reducers/PasswordReducer/Actions';
2224
import LoadingBar from '../../components/LoadingBar';
@@ -38,22 +40,25 @@ const Advanced = () => {
3840
const navigate = useNavigate();
3941
const worker = useWorker(createWorker);
4042

43+
const simpleCharacterSet = getFullCharacterSet(
44+
characterSet,
45+
useAdvanced,
46+
smallLetters,
47+
capitalLetters,
48+
spaces,
49+
numbers,
50+
specialCharacters,
51+
brackets,
52+
);
53+
54+
const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0
55+
|| min > max || max < min;
56+
4157
/**
4258
* Generate passwords
4359
*/
4460
const generatePasswords = () => {
45-
const simpleCharacterSet = getFullCharacterSet(
46-
characterSet,
47-
useAdvanced,
48-
smallLetters,
49-
capitalLetters,
50-
spaces,
51-
numbers,
52-
specialCharacters,
53-
brackets,
54-
);
55-
56-
if (!simpleCharacterSet || simpleCharacterSet.length === 0 || min > max || max < min) {
61+
if (cannotGenerate) {
5762
return;
5863
}
5964

@@ -71,6 +76,37 @@ const Advanced = () => {
7176
});
7277
};
7378

79+
/**
80+
* Change whether duplicates are allowed or not
81+
* @param event The event argument
82+
*/
83+
const handleDuplicateChange = (event) => {
84+
d2(setAllowDuplicates(event.target.checked));
85+
};
86+
87+
/**
88+
* Change wether advanced options are being used or not
89+
* @param event The event argument
90+
*/
91+
const handleAdvancedChange = (event) => {
92+
d2(setUseAdvanced(event.target.checked));
93+
};
94+
95+
/**
96+
* Change the character set
97+
* @param event The event argument
98+
*/
99+
const handleCharacterSetChange = (event) => {
100+
d2(setCharacterSet(event.target.value));
101+
};
102+
103+
/**
104+
* Go to the home page
105+
*/
106+
const goHome = () => {
107+
navigate('/');
108+
};
109+
74110
useEffect(() => {
75111
d1(setPageIndex(1));
76112
}, []);
@@ -92,7 +128,7 @@ const Advanced = () => {
92128
control={(
93129
<Checkbox
94130
checked={allowDuplicates}
95-
onChange={(e) => d2(setAllowDuplicates(e.target.checked))}
131+
onChange={handleDuplicateChange}
96132
/>
97133
)}
98134
label={language.allowDuplicates}
@@ -101,7 +137,7 @@ const Advanced = () => {
101137
control={(
102138
<Checkbox
103139
checked={useAdvanced}
104-
onChange={(e) => d2(setUseAdvanced(e.target.checked))}
140+
onChange={handleAdvancedChange}
105141
/>
106142
)}
107143
label={language.useCustomCharacterSet}
@@ -114,7 +150,7 @@ const Advanced = () => {
114150
disabled={!useAdvanced}
115151
value={characterSet}
116152
fullWidth
117-
onChange={(e) => d2(setCharacterSet(e.target.value))}
153+
onChange={handleCharacterSetChange}
118154
/>
119155
</Grid>
120156
</Grid>
@@ -125,7 +161,7 @@ const Advanced = () => {
125161
color="primary"
126162
style={{ float: 'left' }}
127163
sx={{ mt: 2 }}
128-
onClick={() => navigate('/')}
164+
onClick={goHome}
129165
>
130166
{language.general}
131167
</Button>
@@ -134,6 +170,7 @@ const Advanced = () => {
134170
color="primary"
135171
style={{ float: 'right' }}
136172
sx={{ mt: 2 }}
173+
disabled={cannotGenerate}
137174
onClick={generatePasswords}
138175
>
139176
{language.generate}

src/routes/Advisor/index.jsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ const Advisor = () => {
1818

1919
const [password, setPassword] = useState('');
2020

21+
/**
22+
* Update the password
23+
* @param event The event argument
24+
*/
25+
const handlePasswordChange = (event) => {
26+
setPassword(event.target.value);
27+
};
28+
2129
useEffect(() => {
2230
d1(setPageIndex(3));
2331
}, []);
@@ -33,7 +41,7 @@ const Advisor = () => {
3341
<Grid item xs={12} md={12} lg={12}>
3442
<TextField
3543
value={password}
36-
onChange={(e) => setPassword(e.target.value)}
44+
onChange={handlePasswordChange}
3745
label={language.password}
3846
fullWidth
3947
type="password"

0 commit comments

Comments
 (0)