@availity/change-password 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.1.1](https://github.com/Availity/availity-react/compare/@availity/change-password@0.1.0...@availity/change-password@0.1.1) (2023-07-21)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* pass additional args to onError, onHandleSubmit, passes funcs ([5412e5a](https://github.com/Availity/availity-react/commit/5412e5a247e8dc2b37307a4878a5a394f21efeb3))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
5
14
|
# 0.1.0 (2023-07-20)
|
|
6
15
|
|
|
7
16
|
|
package/package.json
CHANGED
package/src/ChangePassword.js
CHANGED
|
@@ -10,6 +10,7 @@ const ChangePassword = ({ resource, schema, conditions, children }) => {
|
|
|
10
10
|
const [loading, setLoading] = useState(false);
|
|
11
11
|
const [error, setError] = useState(null);
|
|
12
12
|
const [success, setSuccess] = useState(null);
|
|
13
|
+
const [submitted, setSubmitted] = useState(false);
|
|
13
14
|
|
|
14
15
|
const currentPasswordIconRef = useRef(null);
|
|
15
16
|
const newPasswordIconRef = useRef(null);
|
|
@@ -28,6 +29,8 @@ const ChangePassword = ({ resource, schema, conditions, children }) => {
|
|
|
28
29
|
setError,
|
|
29
30
|
success,
|
|
30
31
|
setSuccess,
|
|
32
|
+
submitted,
|
|
33
|
+
setSubmitted,
|
|
31
34
|
resource,
|
|
32
35
|
schema,
|
|
33
36
|
conditions,
|
|
@@ -5,7 +5,7 @@ import { useChangePasswordContext } from './ChangePassword';
|
|
|
5
5
|
import './ChangePasswordFeedback.scss';
|
|
6
6
|
|
|
7
7
|
const ChangePasswordFeedback = () => {
|
|
8
|
-
const { conditions = [] } = useChangePasswordContext();
|
|
8
|
+
const { conditions = [], submitted } = useChangePasswordContext();
|
|
9
9
|
|
|
10
10
|
const { values, touched } = useFormikContext();
|
|
11
11
|
const { currentPassword, newPassword, confirmNewPassword } = values;
|
|
@@ -22,6 +22,7 @@ const ChangePasswordFeedback = () => {
|
|
|
22
22
|
currentPasswordTouched: currentPassword || touched.currentPassword === true,
|
|
23
23
|
newPasswordTouched: newPassword || touched.newPassword === true,
|
|
24
24
|
confirmNewPasswordTouched: confirmNewPassword || touched.confirmNewPassword === true,
|
|
25
|
+
submitted,
|
|
25
26
|
});
|
|
26
27
|
return (
|
|
27
28
|
<div key={message} className="passwordElement pt-3">
|
|
@@ -36,21 +36,23 @@ const ChangePasswordForm = ({
|
|
|
36
36
|
setNewPasswordVisible,
|
|
37
37
|
confirmNewPasswordVisible,
|
|
38
38
|
setConfirmNewPasswordVisible,
|
|
39
|
+
setSubmitted,
|
|
39
40
|
} = useChangePasswordContext();
|
|
40
41
|
|
|
41
42
|
const handleSubmit = async ({ currentPassword, newPassword }) => {
|
|
42
43
|
setLoading(true);
|
|
44
|
+
setSubmitted(true);
|
|
43
45
|
try {
|
|
44
46
|
const result = await resource.changePassword({ currentPassword, newPassword });
|
|
45
47
|
setSuccess('Your password was successfully changed');
|
|
46
48
|
if (onHandleSubmit) {
|
|
47
|
-
await onHandleSubmit({ result });
|
|
49
|
+
await onHandleSubmit({ result, setSuccess, setError });
|
|
48
50
|
}
|
|
49
51
|
setLoading(false);
|
|
50
52
|
} catch (error) {
|
|
51
53
|
setError('An error occurred changing your password');
|
|
52
54
|
if (onError) {
|
|
53
|
-
await onError({ error });
|
|
55
|
+
await onError({ error, setSuccess, setError });
|
|
54
56
|
}
|
|
55
57
|
setLoading(false);
|
|
56
58
|
}
|
|
@@ -36,12 +36,6 @@ class AvChangePasswordApi extends AvApi {
|
|
|
36
36
|
export const Default: Story = () => {
|
|
37
37
|
const resource = new AvChangePasswordApi();
|
|
38
38
|
|
|
39
|
-
const [submitted, setSubmitted] = useState(false);
|
|
40
|
-
|
|
41
|
-
const onHandleSubmit = () => {
|
|
42
|
-
setSubmitted(true);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
39
|
const changePasswordSchema = yup.object().shape({
|
|
46
40
|
currentPassword: yup.string().required('Input your current password'),
|
|
47
41
|
newPassword: yup
|
|
@@ -83,7 +77,7 @@ export const Default: Story = () => {
|
|
|
83
77
|
const conditions = [
|
|
84
78
|
{
|
|
85
79
|
message: 'Have 8 to 15 characters',
|
|
86
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
80
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
87
81
|
if (new RegExp(/^.{8,15}$/).test(newPassword)) {
|
|
88
82
|
if (newPasswordTouched) return true;
|
|
89
83
|
return null;
|
|
@@ -94,7 +88,7 @@ export const Default: Story = () => {
|
|
|
94
88
|
},
|
|
95
89
|
{
|
|
96
90
|
message: 'Have a number',
|
|
97
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
91
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
98
92
|
if (new RegExp(/\d/).test(newPassword)) {
|
|
99
93
|
if (newPasswordTouched) return true;
|
|
100
94
|
return null;
|
|
@@ -105,7 +99,7 @@ export const Default: Story = () => {
|
|
|
105
99
|
},
|
|
106
100
|
{
|
|
107
101
|
message: 'Have an uppercase letter',
|
|
108
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
102
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
109
103
|
if (new RegExp('[A-Z]').test(newPassword)) {
|
|
110
104
|
if (newPasswordTouched) return true;
|
|
111
105
|
return null;
|
|
@@ -116,7 +110,7 @@ export const Default: Story = () => {
|
|
|
116
110
|
},
|
|
117
111
|
{
|
|
118
112
|
message: 'Have a lowercase letter',
|
|
119
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
113
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
120
114
|
if (new RegExp('[a-z]').test(newPassword)) {
|
|
121
115
|
if (newPasswordTouched) return true;
|
|
122
116
|
return null;
|
|
@@ -127,7 +121,7 @@ export const Default: Story = () => {
|
|
|
127
121
|
},
|
|
128
122
|
{
|
|
129
123
|
message: 'Have a special character',
|
|
130
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
124
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
131
125
|
if (new RegExp(/[!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]/).test(newPassword)) {
|
|
132
126
|
if (newPasswordTouched) return true;
|
|
133
127
|
return null;
|
|
@@ -138,7 +132,7 @@ export const Default: Story = () => {
|
|
|
138
132
|
},
|
|
139
133
|
{
|
|
140
134
|
message: 'Not contain your user Id',
|
|
141
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
135
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
142
136
|
if (new RegExp(`^((?!${me.userId}).)*$`).test(newPassword)) {
|
|
143
137
|
if (newPasswordTouched) return true;
|
|
144
138
|
return null;
|
|
@@ -149,7 +143,7 @@ export const Default: Story = () => {
|
|
|
149
143
|
},
|
|
150
144
|
{
|
|
151
145
|
message: 'Not contain spaces',
|
|
152
|
-
passes: ({ newPassword, newPasswordTouched }) => {
|
|
146
|
+
passes: ({ newPassword, newPasswordTouched, submitted }) => {
|
|
153
147
|
if (new RegExp('^\\S*$').test(newPassword)) {
|
|
154
148
|
if (newPasswordTouched) return true;
|
|
155
149
|
return null;
|
|
@@ -162,7 +156,7 @@ export const Default: Story = () => {
|
|
|
162
156
|
|
|
163
157
|
return (
|
|
164
158
|
<ChangePassword resource={resource} schema={changePasswordSchema} conditions={conditions}>
|
|
165
|
-
<ChangePasswordForm
|
|
159
|
+
<ChangePasswordForm />
|
|
166
160
|
</ChangePassword>
|
|
167
161
|
);
|
|
168
162
|
};
|