Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mathias Engelbrecht Pilegård
Pipit
Commits
2c3853a1
Commit
2c3853a1
authored
Sep 02, 2021
by
Mathias Engelbrecht Pilegård
Browse files
added ability to change password from the account page + some refactoring
parent
c9ac64c1
Changes
108
Expand all
Hide whitespace changes
Inline
Side-by-side
client/node_modules/.cache/.eslintcache
View file @
2c3853a1
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/02c66d64ee66801e5d0a07f6e6dc711d.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = ({
\n
userInfo
\n
}) => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const accessToken = oktaAuth.getAccessToken();
\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null);
\n\n
const handleOldPasswordChange = e => {
\n
setOldPassword(e.target.value);
\n
};
\n\n
const handleNewPasswordChange = e => {
\n
setNewPassword(e.target.value);
\n
};
\n\n
const handleConfirmNewPasswordChange = e => {
\n
setConfirmNewPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
oldPassword: `${oldPassword}`,
\n
newPassword: `${newPassword}`
\n
});
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: userInputData
\n
};
\n\n
const handleChangePasswordFormSubmit = e => {
\n
e.preventDefault();
\n\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\n
window.alert(
\"
A password field is blank
\"
);
\n
return;
\n
}
\n\n
if (!(confirmNewPassword.length >= 7)) {
\n
window.alert(
\"
Password must consist of 8 characters or more
\"
);
\n
return;
\n
}
\n\n
if (!(newPassword == confirmNewPassword)) {
\n
window.alert(
\"
Passwords do not match
\"
);
\n
return;
\n
} else {
\n
fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Old password is not correct
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
setSubmitOkMessageModalState(true);
\n
}
\n
});
\n
}
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Old password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 97,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
oldPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: oldPassword,
\n
onChange: handleOldPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 100,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 106,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
newPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: newPassword,
\n
onChange: handleNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 105,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 115,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
confirmNewPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: confirmNewPassword,
\n
onChange: handleConfirmNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 118,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 114,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 126,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 124,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 123,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(MessageModal, {
\n
removeModal: () => setSubmitOkMessageModalState(false),
\n
headerMessage:
\"
Password has been changed
\"
,
\n
bodyMessage:
\"
You can now sign in using your new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 133,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 132,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
IFh0de2or+oR0L9rclAKOf5gZnU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"config"
,
"ChangePassword"
,
"userInfo"
,
"authState"
,
"oktaAuth"
,
"accessToken"
,
"getAccessToken"
,
"submitOkMessageModalState"
,
"setSubmitOkMessageModalState"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"confirmNewPassword"
,
"setConfirmNewPassword"
,
"handleOldPasswordChange"
,
"e"
,
"target"
,
"value"
,
"handleNewPasswordChange"
,
"handleConfirmNewPasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"handleChangePasswordFormSubmit"
,
"preventDefault"
,
"window"
,
"alert"
,
"length"
,
"fetch"
,
"serviceAPI"
,
"changePasswordURL"
,
"then"
,
"res"
,
"ok"
,
"Promise"
,
"reject"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n
import config from '../../config';
\r\n\r\n
const ChangePassword = ({ userInfo }) => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\r\n\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null)
\r\n\r\n
const handleOldPasswordChange = (e) => {
\r\n
setOldPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleNewPasswordChange = (e) => {
\r\n
setNewPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleConfirmNewPasswordChange = (e) => {
\r\n
setConfirmNewPassword(e.target.value);
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
oldPassword: `${oldPassword}`,
\r\n
newPassword: `${newPassword}`
\r\n
})
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: userInputData
\r\n
}
\r\n\r\n
const handleChangePasswordFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\r\n
window.alert(
\"
A password field is blank
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(confirmNewPassword.length >= 7)) {
\r\n
window.alert(
\"
Password must consist of 8 characters or more
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(newPassword == confirmNewPassword)) {
\r\n
window.alert(
\"
Passwords do not match
\"
)
\r\n
return
\r\n
}
\r\n\r\n
else {
\r\n
fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions)
\r\n
.then((res) => {
\r\n
if (!res.ok) {
\r\n
window.alert(
\"
Old password is not correct
\"
)
\r\n
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
setSubmitOkMessageModalState(true)
\r\n
}
\r\n
})
\r\n
}
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
oldPassword
\"
type=
\"
password
\"\r\n
value={oldPassword}
\r\n
onChange={handleOldPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
newPassword
\"
type=
\"
password
\"\r\n
value={newPassword}
\r\n
onChange={handleNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
confirmNewPassword
\"
type=
\"
password
\"\r\n
value={confirmNewPassword}
\r\n
onChange={handleConfirmNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
<div className={`modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<MessageModal removeModal={() => setSubmitOkMessageModalState(false)} headerMessage={
\"
Password has been changed
\"
} bodyMessage={
\"
You can now sign in using your new password
\"
} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/032d2de3e9dd330994a6c50df1e3fbd2.json
0 → 100644
View file @
2c3853a1
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/08eee5e4eccf3dc3543c1b16cb56d55d.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
account
\\\\
Account.jsx
\"
;
\n
// rfce
\n
import React, { useState, useEffect } from 'react';
\n
import
\"
./Account.css
\"
;
\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"
;
\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
function Account() {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children:
\"
Account information
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountpage-content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(UserDataInfo, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(ChangePassword, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(RemoveAccount, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 5
\n
}, this);
\n
}
\n\n
_c = Account;
\n
export default Account;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Account
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/account/Account.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"ConfirmRemoveAccountModal"
,
"ChangePassword"
,
"RemoveAccount"
,
"UserDataInfo"
,
"Account"
],
"mappings"
:
";AAAA;AACA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,OAAO,eAAP;AAEA,OAAOC,yBAAP,MAAsC,oFAAtC;AACA,OAAOC,cAAP,MAA2B,gDAA3B;AACA,OAAOC,aAAP,MAA0B,8CAA1B;AACA,OAAOC,YAAP,MAAyB,8CAAzB;;;AAEA,SAASC,OAAT,GAAmB;AACjB,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,6BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,SAAS,EAAC,qBAAf;AAAA,8BAEE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,cAAD;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAcD;;KAfQA,O;AAiBT,eAAeA,OAAf"
,
"sourcesContent"
:[
"// rfce
\r\n
import React, { useState, useEffect } from 'react'
\r\n
import
\"
./Account.css
\"\r\n\r\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"\r\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\r\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\r\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\r\n\r\n
function Account() {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Account information</h2>
\r\n
</div>
\r\n
<div className=
\"
accountpage-content
\"
>
\r\n\r\n
<UserDataInfo />
\r\n
<ChangePassword />
\r\n
<RemoveAccount />
\r\n\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Account
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0c535c3325047c1f6f50c7c27a805a73.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = ({
\n
accessToken,
\n
userInfo
\n
}) => {
\n
_s();
\n\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
oldPassword: `${oldPassword}`,
\n
newPassword: `${newPassword}`
\n
})
\n
};
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 25,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Old password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
1/P+Ubwx+q9Gj6fjtSw+3K6XSt4=
\"
);
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"ChangePassword"
,
"accessToken"
,
"userInfo"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n\r\n
const ChangePassword = ({ accessToken, userInfo }) => {
\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: JSON.stringify(
\r\n
{
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
oldPassword: `${oldPassword}`,
\r\n
newPassword: `${newPassword}`
\r\n
}
\r\n
)
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/11929c23811a75114fe77b4f5021caac.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = ({
\n
accessToken,
\n
userInfo
\n
}) => {
\n
_s();
\n\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
oldPassword: `${oldPassword}`,
\n
newPassword: `${newPassword}`
\n
})
\n
};
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 25,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Old password +
\"
, userInfo]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
1/P+Ubwx+q9Gj6fjtSw+3K6XSt4=
\"
);
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"ChangePassword"
,
"accessToken"
,
"userInfo"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n\r\n
const ChangePassword = ({ accessToken, userInfo }) => {
\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: JSON.stringify(
\r\n
{
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
oldPassword: `${oldPassword}`,
\r\n
newPassword: `${newPassword}`
\r\n
}
\r\n
)
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password + {userInfo}
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/15b88bd69be67f5aa6aa69e22672c1c5.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
updateUserData
\\\\
updateUserDataModal
\\\\
UpdateUserDataModal.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import
\"
./UpdateUserDataModal.css
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const UpdateUserDataModal = ({
\n
removeModal
\n
}) => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const accessToken = oktaAuth.getAccessToken();
\n\n
const stopProp = e => {
\n
e.stopPropagation();
\n
};
\n\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
useEffect(() => {
\n
userInfo && setFirstname(userInfo.given_name);
\n
userInfo && setLastname(userInfo.family_name);
\n
userInfo && setUsername(userInfo.email);
\n
}, [userInfo]);
\n
const [firstname, setFirstname] = useState('');
\n
const [lastname, setLastname] = useState('');
\n
const [username, setUsername] = useState('');
\n\n
const handlefirstnameChange = e => {
\n
setFirstname(e.target.value);
\n
};
\n\n
const handlelastnameChange = e => {
\n
setLastname(e.target.value);
\n
};
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
firstname: `${firstname}`,
\n
lastname: `${lastname}`,
\n
email: `${username}`
\n
});
\n
const updateUserDataRequestOptions = {
\n
method: 'PUT',
\n
body: userInputData
\n
};
\n\n
const handleUpdateUserDataFormSubmit = e => {
\n
e.preventDefault();
\n
fetch(config.serviceAPI.updateUserDataURL, updateUserDataRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
removeModal();
\n
}
\n
});
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
updateUserDataModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Update information
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
userDataSubmitForm: true,
\n
children: /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleUpdateUserDataFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
First name:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
firstname
\"
,
\n
type:
\"
text
\"
,
\n
value: firstname,
\n
onChange: handlefirstnameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Last Name:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
lastname
\"
,
\n
type:
\"
text
\"
,
\n
value: lastname,
\n
onChange: handlelastnameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
email
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 105,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 103,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
buttonContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
noButton
\"
,
\n
onClick: e => removeModal(),
\n
children:
\"
Cancel
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 111,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
yesButton
\"
,
\n
type:
\"
submit
\"
,
\n
children:
\"
Update
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 114,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 110,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 85,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(UpdateUserDataModal,
\"
AxzdzHC979Yq9E6/6HJDjeCl4CA=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = UpdateUserDataModal;
\n
export default UpdateUserDataModal;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
UpdateUserDataModal
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/updateUserData/updateUserDataModal/UpdateUserDataModal.js"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"UpdateUserDataModal"
,
"removeModal"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"accessToken"
,
"getAccessToken"
,
"stopProp"
,
"e"
,
"stopPropagation"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"setFirstname"
,
"given_name"
,
"setLastname"
,
"family_name"
,
"setUsername"
,
"email"
,
"firstname"
,
"lastname"
,
"username"
,
"handlefirstnameChange"
,
"target"
,
"value"
,
"handlelastnameChange"
,
"handleUsernameChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"updateUserDataRequestOptions"
,
"method"
,
"body"
,
"handleUpdateUserDataFormSubmit"
,
"preventDefault"
,
"fetch"
,
"serviceAPI"
,
"updateUserDataURL"
,
"res"
,
"ok"
,
"window"
,
"alert"
,
"Promise"
,
"reject"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import
\"
./UpdateUserDataModal.css
\"\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import config from '../../../config';
\r\n\r\n
const UpdateUserDataModal = ({ removeModal }) => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n\r\n
const stopProp = e => {
\r\n
e.stopPropagation()
\r\n
}
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
useEffect(() => {
\r\n
userInfo && (
\r\n
setFirstname(userInfo.given_name)
\r\n
)
\r\n\r\n
userInfo && (
\r\n
setLastname(userInfo.family_name)
\r\n
)
\r\n\r\n
userInfo && (
\r\n
setUsername(userInfo.email)
\r\n
)
\r\n
}, [userInfo])
\r\n\r\n
const [firstname, setFirstname] = useState('')
\r\n
const [lastname, setLastname] = useState('')
\r\n
const [username, setUsername] = useState('');
\r\n\r\n
const handlefirstnameChange = (e) => {
\r\n
setFirstname(e.target.value)
\r\n
}
\r\n\r\n
const handlelastnameChange = (e) => {
\r\n
setLastname(e.target.value)
\r\n
}
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
firstname: `${firstname}`,
\r\n
lastname: `${lastname}`,
\r\n
email: `${username}`
\r\n
})
\r\n\r\n
const updateUserDataRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleUpdateUserDataFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
fetch(config.serviceAPI.updateUserDataURL, updateUserDataRequestOptions)
\r\n
.then((res) => {
\r\n
if (!res.ok) {
\r\n
window.alert(
\"
Error
\"
)
\r\n
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
removeModal()
\r\n
}
\r\n
})
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
modal-content
\"
>
\r\n
<div className=
\"
updateUserDataModal
\"
>
\r\n
<h2>Update information</h2>
\r\n
<div userDataSubmitForm>
\r\n
<form onSubmit={handleUpdateUserDataFormSubmit}>
\r\n
<label>
\r\n
First name:
\r\n
<input
\r\n
id=
\"
firstname
\"
type=
\"
text
\"\r\n
value={firstname}
\r\n
onChange={handlefirstnameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Last Name:
\r\n
<input
\r\n
id=
\"
lastname
\"
type=
\"
text
\"\r\n
value={lastname}
\r\n
onChange={handlelastnameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
email
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<div className=
\"
buttonContainer
\"
>
\r\n
<button className=
\"
noButton
\"
onClick={e => removeModal()}>
\r\n
Cancel
\r\n
</button>
\r\n
<button className=
\"
yesButton
\"
type=
\"
submit
\"
>
\r\n
Update
\r\n
</button>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default UpdateUserDataModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/197daac71dda12dc11b674cc15c39d82.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
account
\\\\
Account.js
\"
,
\n
_s = $RefreshSig$();
\n\n
// rfce
\n
import React, { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Account.css
\"
;
\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"
;
\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
function Account() {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const accessToken = oktaAuth.getAccessToken();
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children:
\"
Account information
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountpage-content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(UserDataInfo, {
\n
useAuthState: authState,
\n
useOktaAuth: oktaAuth,
\n
userInfo: userInfo,
\n
accessToken: accessToken
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 34,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(ChangePassword, {
\n
accessToken: accessToken,
\n
userInfo: userInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(RemoveAccount, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 5
\n
}, this);
\n
}
\n\n
_s(Account,
\"
/7FunoA1ejJNU8uKGTy1GZFqU2I=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Account;
\n
export default Account;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Account
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/account/Account.js"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"ConfirmRemoveAccountModal"
,
"ChangePassword"
,
"RemoveAccount"
,
"UserDataInfo"
,
"Account"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"accessToken"
,
"getAccessToken"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
],
"mappings"
:
";;;AAAA;AACA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,eAAP;AAEA,OAAOC,yBAAP,MAAsC,oFAAtC;AACA,OAAOC,cAAP,MAA2B,gDAA3B;AACA,OAAOC,aAAP,MAA0B,8CAA1B;AACA,OAAOC,YAAP,MAAyB,8CAAzB;;;AAEA,SAASC,OAAT,GAAmB;AAAA;;AACjB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BP,WAAW,EAA3C;AACA,QAAM,CAACQ,QAAD,EAAWC,WAAX,IAA0BX,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMY,WAAW,GAAGH,QAAQ,CAACI,cAAT,EAApB;AAEAZ,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACO,SAAS,CAACM,eAAf,EAAgC;AAC9B;AACAH,MAAAA,WAAW,CAAC,IAAD,CAAX;AACD,KAHD,MAGO;AACLF,MAAAA,QAAQ,CAACM,OAAT,GAAmBC,IAAnB,CAAwBC,IAAI,IAAI;AAC9BN,QAAAA,WAAW,CAACM,IAAD,CAAX;AACD,OAFD;AAGD;AACF,GATQ,EASN,CAACT,SAAD,EAAYC,QAAZ,CATM,CAAT,CALiB,CAcU;;AAE3B,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,6BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,SAAS,EAAC,qBAAf;AAAA,8BAEE,QAAC,YAAD;AAAc,QAAA,YAAY,EAAED,SAA5B;AAAuC,QAAA,WAAW,EAAEC,QAApD;AAA8D,QAAA,QAAQ,EAAEC,QAAxE;AAAkF,QAAA,WAAW,EAAEE;AAA/F;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,cAAD;AAAgB,QAAA,WAAW,EAAEA,WAA7B;AAA0C,QAAA,QAAQ,EAAEF;AAApD;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAcD;;GA9BQH,O;UACyBL,W;;;KADzBK,O;AAgCT,eAAeA,OAAf"
,
"sourcesContent"
:[
"// rfce
\r\n
import React, { useState, useEffect } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Account.css
\"\r\n\r\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"\r\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\r\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\r\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\r\n\r\n
function Account() {
\r\n
const { authState, oktaAuth } = useOktaAuth()
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const accessToken = oktaAuth.getAccessToken()
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Account information</h2>
\r\n
</div>
\r\n
<div className=
\"
accountpage-content
\"
>
\r\n\r\n
<UserDataInfo useAuthState={authState} useOktaAuth={oktaAuth} userInfo={userInfo} accessToken={accessToken} />
\r\n
<ChangePassword accessToken={accessToken} userInfo={userInfo} />
\r\n
<RemoveAccount />
\r\n\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Account
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1efd576a56a1f244e36cf7515d1fc5ca.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = ({
\n
userInfo
\n
}) => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const accessToken = oktaAuth.getAccessToken();
\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null);
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
oldPassword: `${oldPassword}`,
\n
newPassword: `${newPassword}`
\n
})
\n
};
\n\n
const handleOldPasswordChange = e => {
\n
setOldPassword(e.target.value);
\n
};
\n\n
const handleNewPasswordChange = e => {
\n
setNewPassword(e.target.value);
\n
};
\n\n
const handleConfirmNewPasswordChange = e => {
\n
setConfirmNewPassword(e.target.value);
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Old password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
oldPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: oldPassword,
\n
onChange: handleOldPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
newPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: newPassword,
\n
onChange: handleNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
confirmNewPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: confirmNewPassword,
\n
onChange: handleConfirmNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
0FTOpqqPETEY2KV7VaQF4QlgLu8=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"ChangePassword"
,
"userInfo"
,
"authState"
,
"oktaAuth"
,
"accessToken"
,
"getAccessToken"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"confirmNewPassword"
,
"setConfirmNewPassword"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
,
"handleOldPasswordChange"
,
"e"
,
"target"
,
"value"
,
"handleNewPasswordChange"
,
"handleConfirmNewPasswordChange"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n\r\n
const ChangePassword = ({ userInfo }) => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null)
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: JSON.stringify(
\r\n
{
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
oldPassword: `${oldPassword}`,
\r\n
newPassword: `${newPassword}`
\r\n
}
\r\n
)
\r\n
}
\r\n\r\n
const handleOldPasswordChange = (e) => {
\r\n
setOldPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleNewPasswordChange = (e) => {
\r\n
setNewPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleConfirmNewPasswordChange = (e) => {
\r\n
setConfirmNewPassword(e.target.value);
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
oldPassword
\"
type=
\"
password
\"\r\n
value={oldPassword}
\r\n
onChange={handleOldPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
newPassword
\"
type=
\"
password
\"\r\n
value={newPassword}
\r\n
onChange={handleNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
confirmNewPassword
\"
type=
\"
password
\"\r\n
value={confirmNewPassword}
\r\n
onChange={handleConfirmNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2052f28402b8b8f1c75e78a6301f0b45.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
navLinks
\\\\
NavLinks.js
\"
;
\n
import React from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import
\"
./NavLinks.css
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const NavLinks = () => {
\n
return /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
className:
\"
left-unstyled-navbar
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
report-bug-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/reportissue
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Report issues
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 9,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 8,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
manage-projects-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/projects
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Projects
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
manage-team-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/teams
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Teams
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 7,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = NavLinks;
\n
export default NavLinks;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
NavLinks
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/navLinks/NavLinks.js"
],
"names"
:[
"React"
,
"NavLink"
,
"NavLinks"
],
"mappings"
:
";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,gBAAP;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AACrB,sBACE;AAAI,IAAA,SAAS,EAAC,sBAAd;AAAA,4BACE;AAAI,MAAA,SAAS,EAAC,gCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAA2B,QAAA,eAAe,EAAC,kBAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAI,MAAA,SAAS,EAAC,qCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAwB,QAAA,eAAe,EAAC,kBAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJF,eAOE;AAAI,MAAA,SAAS,EAAC,iCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,QAAZ;AAAqB,QAAA,eAAe,EAAC,kBAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAPF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAaD,CAdD;;KAAMA,Q;AAgBN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import
\"
./NavLinks.css
\"\r\n\r\n
const NavLinks = () => {
\r\n
return (
\r\n
<ul className=
\"
left-unstyled-navbar
\"
>
\r\n
<li className=
\"
report-bug-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/reportissue
\"
activeClassName=
\"
activeUnderlined
\"
>Report issues</NavLink>
\r\n
</li>
\r\n
<li className=
\"
manage-projects-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/projects
\"
activeClassName=
\"
activeUnderlined
\"
>Projects</NavLink>
\r\n
</li>
\r\n
<li className=
\"
manage-team-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/teams
\"
activeClassName=
\"
activeUnderlined
\"
>Teams</NavLink>
\r\n
</li>
\r\n
</ul>
\r\n
)
\r\n
}
\r\n\r\n
export default NavLinks"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/255c4e32dc482af3d465ca7ac72e8b58.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
updateUserData
\\\\
updateUserDataModal
\\\\
UpdateUserDataModal.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import
\"
./UpdateUserDataModal.css
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const UpdateUserDataModal = ({
\n
removeModal
\n
}) => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const accessToken = oktaAuth.getAccessToken();
\n\n
const stopProp = e => {
\n
e.stopPropagation();
\n
};
\n\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
useEffect(() => {
\n
userInfo && setFirstname(userInfo.given_name);
\n
userInfo && setLastname(userInfo.family_name);
\n
userInfo && setUsername(userInfo.email);
\n
}, [userInfo]);
\n
const [firstname, setFirstname] = useState('');
\n
const [lastname, setLastname] = useState('');
\n
const [username, setUsername] = useState('');
\n\n
const handleFirstnameChange = e => {
\n
setFirstname(e.target.value);
\n
};
\n\n
const handleLastnameChange = e => {
\n
setLastname(e.target.value);
\n
};
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
firstname: `${firstname}`,
\n
lastname: `${lastname}`,
\n
email: `${username}`
\n
});
\n
const updateUserDataRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: userInputData
\n
};
\n\n
const handleUpdateUserDataFormSubmit = e => {
\n
e.preventDefault();
\n
fetch(config.serviceAPI.updateUserDataURL, updateUserDataRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
removeModal();
\n
}
\n
});
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
updateUserDataModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Update information
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
userDataSubmitForm: true,
\n
children: /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleUpdateUserDataFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
First name:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
firstname
\"
,
\n
type:
\"
text
\"
,
\n
value: firstname,
\n
onChange: handleFirstnameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 92,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Last Name:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
lastname
\"
,
\n
type:
\"
text
\"
,
\n
value: lastname,
\n
onChange: handleLastnameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 101,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
email
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 108,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 106,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
buttonContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
noButton
\"
,
\n
onClick: e => removeModal(),
\n
children:
\"
Cancel
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 114,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
yesButton
\"
,
\n
type:
\"
submit
\"
,
\n
children:
\"
Update
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 117,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 113,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(UpdateUserDataModal,
\"
AxzdzHC979Yq9E6/6HJDjeCl4CA=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = UpdateUserDataModal;
\n
export default UpdateUserDataModal;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
UpdateUserDataModal
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/updateUserData/updateUserDataModal/UpdateUserDataModal.js"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"UpdateUserDataModal"
,
"removeModal"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"accessToken"
,
"getAccessToken"
,
"stopProp"
,
"e"
,
"stopPropagation"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"setFirstname"
,
"given_name"
,
"setLastname"
,
"family_name"
,
"setUsername"
,
"email"
,
"firstname"
,
"lastname"
,
"username"
,
"handleFirstnameChange"
,
"target"
,
"value"
,
"handleLastnameChange"
,
"handleUsernameChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"updateUserDataRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"handleUpdateUserDataFormSubmit"
,
"preventDefault"
,
"fetch"
,
"serviceAPI"
,
"updateUserDataURL"
,
"res"
,
"ok"
,
"window"
,
"alert"
,
"Promise"
,
"reject"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import
\"
./UpdateUserDataModal.css
\"\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import config from '../../../config';
\r\n\r\n
const UpdateUserDataModal = ({ removeModal }) => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n\r\n
const stopProp = e => {
\r\n
e.stopPropagation()
\r\n
}
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
useEffect(() => {
\r\n
userInfo && (
\r\n
setFirstname(userInfo.given_name)
\r\n
)
\r\n\r\n
userInfo && (
\r\n
setLastname(userInfo.family_name)
\r\n
)
\r\n\r\n
userInfo && (
\r\n
setUsername(userInfo.email)
\r\n
)
\r\n
}, [userInfo])
\r\n\r\n
const [firstname, setFirstname] = useState('')
\r\n
const [lastname, setLastname] = useState('')
\r\n
const [username, setUsername] = useState('');
\r\n\r\n
const handleFirstnameChange = (e) => {
\r\n
setFirstname(e.target.value)
\r\n
}
\r\n\r\n
const handleLastnameChange = (e) => {
\r\n
setLastname(e.target.value)
\r\n
}
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
firstname: `${firstname}`,
\r\n
lastname: `${lastname}`,
\r\n
email: `${username}`
\r\n
})
\r\n\r\n
const updateUserDataRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleUpdateUserDataFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
fetch(config.serviceAPI.updateUserDataURL, updateUserDataRequestOptions)
\r\n
.then((res) => {
\r\n
if (!res.ok) {
\r\n
window.alert(
\"
Error
\"
)
\r\n
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
removeModal()
\r\n
}
\r\n
})
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
modal-content
\"
>
\r\n
<div className=
\"
updateUserDataModal
\"
>
\r\n
<h2>Update information</h2>
\r\n
<div userDataSubmitForm>
\r\n
<form onSubmit={handleUpdateUserDataFormSubmit}>
\r\n
<label>
\r\n
First name:
\r\n
<input
\r\n
id=
\"
firstname
\"
type=
\"
text
\"\r\n
value={firstname}
\r\n
onChange={handleFirstnameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Last Name:
\r\n
<input
\r\n
id=
\"
lastname
\"
type=
\"
text
\"\r\n
value={lastname}
\r\n
onChange={handleLastnameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
email
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<div className=
\"
buttonContainer
\"
>
\r\n
<button className=
\"
noButton
\"
onClick={e => removeModal()}>
\r\n
Cancel
\r\n
</button>
\r\n
<button className=
\"
yesButton
\"
type=
\"
submit
\"
>
\r\n
Update
\r\n
</button>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default UpdateUserDataModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2b3fbd7523a0ebe134da50e415a66184.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useRef, useEffect } from 'react';
\n
import config from '../../../config';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import
\"
./PasswordForgotModal.css
\"
;
\n
import MessageModal from '../../../components/messageModal/MessageModal'; // TODO : Clean up and make more like the message modal component
\n\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => setForgotPasswordFormVisibilityState(!forgotPasswordFormVisibilityState);
\n\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\n
const [username, setUsername] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (forgotPasswordFormRef.current !== null && !forgotPasswordFormRef.current.contains(e.target)) {
\n
toggleForgotPasswordFormVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (forgotPasswordFormVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [forgotPasswordFormVisibilityState]);
\n
const userInputData = JSON.stringify({
\n
email: `${username}`
\n
});
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: userInputData
\n
};
\n\n
const handlePasswordForgot = e => {
\n
e.preventDefault();
\n
fetch(config.serviceAPI.forgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
console.log(res);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
toggleForgotPasswordFormVisible();
\n
setSubmitOkMessageModalState(true);
\n
}
\n
});
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
password-forgot-prompt
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: toggleForgotPasswordFormVisible,
\n
children:
\"
Forgot password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${forgotPasswordFormVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: forgotPasswordFormRef,
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
recoverPasswordForm
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Recover password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handlePasswordForgot,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
email
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
An email with a password recovery link will be sent if it is registered in our system
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 93,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(MessageModal, {
\n
removeModal: () => setSubmitOkMessageModalState(false),
\n
headerMessage:
\"
Email submitted!
\"
,
\n
bodyMessage:
\"
An email with a password recovery link will be sent if it is registered in our system
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 100,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
g4WkMIawwrBahYMYonVecg/0JA0=
\"
);
\n\n
_c = PasswordForgotModal;
\n
export default PasswordForgotModal;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
PasswordForgotModal
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/passwordReset/PasswordForgotModal.js"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"PasswordForgotModal"
,
"forgotPasswordFormVisibilityState"
,
"setForgotPasswordFormVisibilityState"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"submitOkMessageModalState"
,
"setSubmitOkMessageModalState"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"preventDefault"
,
"fetch"
,
"serviceAPI"
,
"forgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"console"
,
"log"
,
"Promise"
,
"reject"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useRef, useEffect } from 'react'
\r\n
import config from '../../../config'
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\r\n
import
\"
./PasswordForgotModal.css
\"\r\n
import MessageModal from '../../../components/messageModal/MessageModal';
\r\n\r\n\r\n
// TODO : Clean up and make more like the message modal component
\r\n
const PasswordForgotModal = () => {
\r\n
const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => setForgotPasswordFormVisibilityState(!forgotPasswordFormVisibilityState)
\r\n\r\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\r\n\r\n
const [username, setUsername] = useState('');
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (forgotPasswordFormRef.current !== null && !forgotPasswordFormRef.current.contains(e.target)) {
\r\n
toggleForgotPasswordFormVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (forgotPasswordFormVisibilityState) {
\r\n
window.addEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
return () => {
\r\n
window.removeEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
}, [forgotPasswordFormVisibilityState]);
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${username}`,
\r\n
})
\r\n\r\n
const ForgotPasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: userInputData
\r\n
}
\r\n\r\n
const handlePasswordForgot = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
fetch(config.serviceAPI.forgotPasswordURL, ForgotPasswordRequestOptions)
\r\n
.then((res) => {
\r\n
if (!res.ok) {
\r\n
window.alert(
\"
Error: something went wrong
\"
)
\r\n
console.log(res)
\r\n
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
toggleForgotPasswordFormVisible()
\r\n
setSubmitOkMessageModalState(true)
\r\n
}
\r\n
})
\r\n
}
\r\n\r\n
return (
\r\n
<div>
\r\n
<div className=
\"
password-forgot-prompt
\"
>
\r\n
<span>
\r\n
<a onClick={toggleForgotPasswordFormVisible}>Forgot password</a>
\r\n
</span>
\r\n
</div>
\r\n\r\n
{/* Forgot password modal */}
\r\n
<div className={`modal ${forgotPasswordFormVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<div ref={forgotPasswordFormRef} className=
\"
modal-content
\"
>
\r\n
<div className=
\"
recoverPasswordForm
\"
>
\r\n
<h2>Recover password</h2>
\r\n
<form onSubmit={handlePasswordForgot}>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
email
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<label>
\r\n
An email with a password recovery link will be sent if it is registered in our system
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
<div className={`modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<MessageModal removeModal={() => setSubmitOkMessageModalState(false)} headerMessage={
\"
Email submitted!
\"
} bodyMessage={
\"
An email with a password recovery link will be sent if it is registered in our system
\"
} />
\r\n
</div>
\r\n
</div>
\r\n\r\n
)
\r\n
}
\r\n\r\n
export default PasswordForgotModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2b650f1a2fee92a6b7ba2af9d45227d1.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const accessToken = oktaAuth.getAccessToken();
\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\n
const [userInfo, setUserInfo] = useState(null);
\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const handleOldPasswordChange = e => {
\n
setOldPassword(e.target.value);
\n
};
\n\n
const handleNewPasswordChange = e => {
\n
setNewPassword(e.target.value);
\n
};
\n\n
const handleConfirmNewPasswordChange = e => {
\n
setConfirmNewPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${userInfo.email}`,
\n
newPassword: `${newPassword}`
\n
});
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: userInputData
\n
};
\n\n
const handleChangePasswordFormSubmit = e => {
\n
e.preventDefault();
\n\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\n
window.alert(
\"
A password field is blank
\"
);
\n
return;
\n
}
\n\n
if (!(confirmNewPassword.length >= 7)) {
\n
window.alert(
\"
Password must consist of 8 characters or more
\"
);
\n
return;
\n
}
\n\n
if (!(newPassword == confirmNewPassword)) {
\n
window.alert(
\"
Passwords do not match
\"
);
\n
return;
\n
} else {
\n
window.alert(userInfo.email); // fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Old password is not correct
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// setSubmitOkMessageModalState(true)
\n
// setOldPassword('')
\n
// setNewPassword('')
\n
// setConfirmNewPassword('')
\n
// }
\n
// })
\n
}
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 93,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 92,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 97,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 102,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 105,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleChangePasswordFormSubmit,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Old password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 112,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
oldPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: oldPassword,
\n
onChange: handleOldPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 115,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 111,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 121,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
newPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: newPassword,
\n
onChange: handleNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 124,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 120,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 130,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
confirmNewPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: confirmNewPassword,
\n
onChange: handleConfirmNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 133,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 129,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 141,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 139,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 138,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 110,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(MessageModal, {
\n
removeModal: () => setSubmitOkMessageModalState(false),
\n
headerMessage:
\"
Password has been changed
\"
,
\n
bodyMessage:
\"
You can now sign in using your new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 148,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 147,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
Xnl+NTauGVDCVlSJN6leYUI37T8=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"config"
,
"ChangePassword"
,
"authState"
,
"oktaAuth"
,
"accessToken"
,
"getAccessToken"
,
"submitOkMessageModalState"
,
"setSubmitOkMessageModalState"
,
"userInfo"
,
"setUserInfo"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"confirmNewPassword"
,
"setConfirmNewPassword"
,
"useEffect"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"handleOldPasswordChange"
,
"e"
,
"target"
,
"value"
,
"handleNewPasswordChange"
,
"handleConfirmNewPasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"handleChangePasswordFormSubmit"
,
"preventDefault"
,
"window"
,
"alert"
,
"length"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n
import config from '../../config';
\r\n\r\n
const ChangePassword = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\r\n\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null)
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const handleOldPasswordChange = (e) => {
\r\n
setOldPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleNewPasswordChange = (e) => {
\r\n
setNewPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleConfirmNewPasswordChange = (e) => {
\r\n
setConfirmNewPassword(e.target.value);
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${userInfo.email}`,
\r\n
newPassword: `${newPassword}`
\r\n
})
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: userInputData
\r\n
}
\r\n\r\n
const handleChangePasswordFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\r\n
window.alert(
\"
A password field is blank
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(confirmNewPassword.length >= 7)) {
\r\n
window.alert(
\"
Password must consist of 8 characters or more
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(newPassword == confirmNewPassword)) {
\r\n
window.alert(
\"
Passwords do not match
\"
)
\r\n
return
\r\n
}
\r\n\r\n
else {
\r\n
window.alert(userInfo.email)
\r\n
// fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions)
\r\n
// .then((res) => {
\r\n
// if (!res.ok) {
\r\n
// window.alert(
\"
Old password is not correct
\"
)
\r\n
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// setSubmitOkMessageModalState(true)
\r\n
// setOldPassword('')
\r\n
// setNewPassword('')
\r\n
// setConfirmNewPassword('')
\r\n
// }
\r\n
// })
\r\n
}
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters { }
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form onSubmit={handleChangePasswordFormSubmit}>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
oldPassword
\"
type=
\"
password
\"\r\n
value={oldPassword}
\r\n
onChange={handleOldPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
newPassword
\"
type=
\"
password
\"\r\n
value={newPassword}
\r\n
onChange={handleNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
confirmNewPassword
\"
type=
\"
password
\"\r\n
value={confirmNewPassword}
\r\n
onChange={handleConfirmNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
<div className={`modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<MessageModal removeModal={() => setSubmitOkMessageModalState(false)} headerMessage={
\"
Password has been changed
\"
} bodyMessage={
\"
You can now sign in using your new password
\"
} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2fda03d891944a9c9178ea9291bc5318.json
0 → 100644
View file @
2c3853a1
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/3cf267ef2d1a7ee15594833b15d4614e.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
project
\\\\
projectInfo
\\\\
ProjectInfo.js
\"
;
\n
import React from 'react';
\n
import
\"
./ProjectInfo.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import ActivityChart from './activityChart/ActivityChart';
\n
import ActivitiesDisplay from './activitiesDisplay/ActivitiesDisplay';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ProjectInfo = () => {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
projectInformationPage-content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-text
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
projectInformationPage-title
\"
,
\n
children:
\"
ReactApp > Activity Dashboard
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-project-buttons
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
users
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 17,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0Members
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
cog
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0Settings
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
dashboard-activity-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(ActivityChart, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(ActivitiesDisplay, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = ProjectInfo;
\n
export default ProjectInfo;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ProjectInfo
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/project/projectInfo/ProjectInfo.js"
],
"names"
:[
"React"
,
"FontAwesomeIcon"
,
"ActivityChart"
,
"ActivitiesDisplay"
,
"ProjectInfo"
],
"mappings"
:
";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAO,mBAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,aAAP,MAA0B,+BAA1B;AACA,OAAOC,iBAAP,MAA8B,uCAA9B;;;AAGA,MAAMC,WAAW,GAAG,MAAM;AACxB,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,uCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,aAAf;AAAA,+BACE;AAAI,UAAA,SAAS,EAAC,8BAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cADF,eAIE;AAAK,QAAA,SAAS,EAAC,wBAAf;AAAA,gCACE;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAME;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF;AAAA;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAkBE;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,8BACE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,iBAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAlBF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD,CA1BD;;KAAMA,W;AA4BN,eAAeA,WAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import
\"
./ProjectInfo.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import ActivityChart from './activityChart/ActivityChart'
\r\n
import ActivitiesDisplay from './activitiesDisplay/ActivitiesDisplay'
\r\n\r\n\r\n
const ProjectInfo = () => {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
projectInformationPage-content-header
\"
>
\r\n
<div className=
\"
header-text
\"
>
\r\n
<h2 className=
\"
projectInformationPage-title
\"
>ReactApp > Activity Dashboard</h2>
\r\n
</div>
\r\n
<div className=
\"
header-project-buttons
\"
>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
users
\"
></FontAwesomeIcon>
\r\n
Members
\r\n\r\n
</button>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
cog
\"
></FontAwesomeIcon>
\r\n
Settings
\r\n\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
dashboard-activity-container
\"
>
\r\n
<ActivityChart />
\r\n
<ActivitiesDisplay />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ProjectInfo"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/409a22d71bf1f90b6c8aad9b775756bc.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
account
\\\\
Account.js
\"
;
\n
// rfce
\n
import React, { useState, useEffect } from 'react';
\n
import
\"
./Account.css
\"
;
\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"
;
\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
function Account() {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children:
\"
Account information
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountpage-content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(UserDataInfo, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(ChangePassword, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(RemoveAccount, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 5
\n
}, this);
\n
}
\n\n
_c = Account;
\n
export default Account;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Account
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/account/Account.js"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"ConfirmRemoveAccountModal"
,
"ChangePassword"
,
"RemoveAccount"
,
"UserDataInfo"
,
"Account"
],
"mappings"
:
";AAAA;AACA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,OAAO,eAAP;AAEA,OAAOC,yBAAP,MAAsC,oFAAtC;AACA,OAAOC,cAAP,MAA2B,gDAA3B;AACA,OAAOC,aAAP,MAA0B,8CAA1B;AACA,OAAOC,YAAP,MAAyB,8CAAzB;;;AAEA,SAASC,OAAT,GAAmB;AACjB,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,6BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAK,MAAA,SAAS,EAAC,qBAAf;AAAA,8BAEE,QAAC,YAAD;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,cAAD;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YAJF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAcD;;KAfQA,O;AAiBT,eAAeA,OAAf"
,
"sourcesContent"
:[
"// rfce
\r\n
import React, { useState, useEffect } from 'react'
\r\n
import
\"
./Account.css
\"\r\n\r\n
import ConfirmRemoveAccountModal from
\"
../../components/removeAccount/confirmRemoveAccountModal/ConfirmRemoveAccountModal
\"\r\n
import ChangePassword from '../../components/changePassword/ChangePassword';
\r\n
import RemoveAccount from '../../components/removeAccount/RemoveAccount';
\r\n
import UserDataInfo from '../../components/updateUserData/UserDataInfo';
\r\n\r\n
function Account() {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Account information</h2>
\r\n
</div>
\r\n
<div className=
\"
accountpage-content
\"
>
\r\n\r\n
<UserDataInfo />
\r\n
<ChangePassword />
\r\n
<RemoveAccount />
\r\n\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Account
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/41ca562bd2194072f17492fb57d00d87.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = ({
\n
accessToken,
\n
userInfo
\n
}) => {
\n
_s();
\n\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
oldPassword: `${oldPassword}`,
\n
newPassword: `${newPassword}`
\n
})
\n
};
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 25,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Old password +
\"
, userInfo.name]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
type:
\"
password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
1/P+Ubwx+q9Gj6fjtSw+3K6XSt4=
\"
);
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"ChangePassword"
,
"accessToken"
,
"userInfo"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
,
"name"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n\r\n
const ChangePassword = ({ accessToken, userInfo }) => {
\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: JSON.stringify(
\r\n
{
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
oldPassword: `${oldPassword}`,
\r\n
newPassword: `${newPassword}`
\r\n
}
\r\n
)
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password + {userInfo.name}
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input type=
\"
password
\"
></input>
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/423d6abebbb0303883ab1946bf49aa13.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"export default {
\n
oidc: {
\n
clientId: '0oa1f4zfeiiZPB6DF5d7',
\n
issuer: 'https://dev-91882654.okta.com/oauth2/default',
\n
redirectUri: window.location.origin + '/login/callback',
\n
scopes: ['openid', 'profile', 'email'],
\n
pkce: true
\n
},
\n
serviceAPI: {
\n
messagesURL: 'http://localhost:3030/api/messages',
\n
createNewUserURL: 'http://localhost:3030/api/create-user',
\n
forgotPasswordURL: 'http://localhost:3030/api/recover-user-password',
\n
removeAccountURL: 'http://localhost:3030/api/remove-user',
\n
updateUserDataURL: 'http://localhost:3030/api/update-user-data',
\n
changePasswordURL: 'http://localhost:3030/api/change-password'
\n
}
\n
};"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/config.js"
],
"names"
:[
"oidc"
,
"clientId"
,
"issuer"
,
"redirectUri"
,
"window"
,
"location"
,
"origin"
,
"scopes"
,
"pkce"
,
"serviceAPI"
,
"messagesURL"
,
"createNewUserURL"
,
"forgotPasswordURL"
,
"removeAccountURL"
,
"updateUserDataURL"
,
"changePasswordURL"
],
"mappings"
:
"AAAA,eAAe;AACbA,EAAAA,IAAI,EAAE;AACJC,IAAAA,QAAQ,EAAE,sBADN;AAEJC,IAAAA,MAAM,EAAE,8CAFJ;AAGJC,IAAAA,WAAW,EAAEC,MAAM,CAACC,QAAP,CAAgBC,MAAhB,GAAyB,iBAHlC;AAIJC,IAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,SAAX,EAAsB,OAAtB,CAJJ;AAKJC,IAAAA,IAAI,EAAE;AALF,GADO;AAQbC,EAAAA,UAAU,EAAE;AACVC,IAAAA,WAAW,EAAE,oCADH;AAEVC,IAAAA,gBAAgB,EAAE,uCAFR;AAGVC,IAAAA,iBAAiB,EAAE,iDAHT;AAIVC,IAAAA,gBAAgB,EAAE,uCAJR;AAKVC,IAAAA,iBAAiB,EAAE,4CALT;AAMVC,IAAAA,iBAAiB,EAAE;AANT;AARC,CAAf"
,
"sourcesContent"
:[
"export default {
\r\n
oidc: {
\r\n
clientId: '0oa1f4zfeiiZPB6DF5d7',
\r\n
issuer: 'https://dev-91882654.okta.com/oauth2/default',
\r\n
redirectUri: window.location.origin + '/login/callback',
\r\n
scopes: ['openid', 'profile', 'email'],
\r\n
pkce: true
\r\n
},
\r\n
serviceAPI: {
\r\n
messagesURL: 'http://localhost:3030/api/messages',
\r\n
createNewUserURL: 'http://localhost:3030/api/create-user',
\r\n
forgotPasswordURL: 'http://localhost:3030/api/recover-user-password',
\r\n
removeAccountURL: 'http://localhost:3030/api/remove-user',
\r\n
updateUserDataURL: 'http://localhost:3030/api/update-user-data',
\r\n
changePasswordURL: 'http://localhost:3030/api/change-password'
\r\n
}
\r\n
};"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/48c82d8ba05733622fb37dd17dc3b6c7.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
team
\\\\
teamOverview
\\\\
TeamOverview.js
\"
;
\n
import React from 'react';
\n
import { NavLink } from 'react-router-dom';
\n
import
\"
./TeamOverview.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const TeamOverview = () => {
\n
const personalProjects = [{
\n
id:
\"
MyApp
\"
,
\n
type:
\"
personal
\"\n
}, {
\n
id:
\"
MyOtherApp
\"
,
\n
type:
\"
personal
\"\n
}];
\n
const sharedProjects = [{
\n
id:
\"
ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Henriks Meme Machine
\"\n
}, {
\n
name:
\"
Teskeholdet
\"\n
}]
\n
}, {
\n
id:
\"
Very big ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Aubergine
\"\n
}]
\n
}];
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
teamlist-title
\"
,
\n
children:
\"
Teams
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
buttons-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
join-team-button
\"
,
\n
children:
\"
Join Team
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
create-new-team-button
\"
,
\n
children:
\"
New team
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
teamlist
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-entry
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
image-team-name
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/HenriksMemeMachine
\"
,
\n
className:
\"
team-image-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
team-icon
\"
,
\n
icon:
\"
dice-d6
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/HenriksMemeMachine
\"
,
\n
children: [
\"
Henriks meme machine - ReactApp
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-status-info-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
New messages
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
projects-maintained-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
project-diagram
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Projects maintained
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-members-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
users
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Team members
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
last-updated-info
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Date created:
\\
xA021/ 07/ 2021
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 34,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = TeamOverview;
\n
export default TeamOverview;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
TeamOverview
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/team/teamOverview/TeamOverview.js"
],
"names"
:[
"React"
,
"NavLink"
,
"FontAwesomeIcon"
,
"TeamOverview"
,
"personalProjects"
,
"id"
,
"type"
,
"sharedProjects"
,
"teams"
,
"name"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import { NavLink } from 'react-router-dom'
\r\n
import
\"
./TeamOverview.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n
const TeamOverview = () => {
\r\n\r\n
const personalProjects = [
\r\n
{ id:
\"
MyApp
\"
, type:
\"
personal
\"
},
\r\n
{ id:
\"
MyOtherApp
\"
, type:
\"
personal
\"
}
\r\n
]
\r\n\r\n
const sharedProjects = [
\r\n
{ id:
\"
ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Henriks Meme Machine
\"
}, { name:
\"
Teskeholdet
\"
}] },
\r\n
{ id:
\"
Very big ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Aubergine
\"
}] }
\r\n
]
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
teamlist-title
\"
>Teams</h2>
\r\n
<div className=
\"
buttons-container
\"
>
\r\n
<button className=
\"
join-team-button
\"
>
\r\n
Join Team
\r\n
</button>
\r\n
<button className=
\"
create-new-team-button
\"
>
\r\n
New team
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
teamlist
\"
>
\r\n
<ul>
\r\n
<li>
\r\n
<div className=
\"
team-entry
\"
>
\r\n
<div className=
\"
image-team-name
\"
>
\r\n
<NavLink to=
\"
/HenriksMemeMachine
\"
className=
\"
team-image-container
\"
>
\r\n
<FontAwesomeIcon className=
\"
team-icon
\"
icon=
\"
dice-d6
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
<NavLink to=
\"
/HenriksMemeMachine
\"
>Henriks meme machine - ReactApp
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
team-status-info-container
\"
>
\r\n
<div className=
\"
new-messages-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>New messages</span>
\r\n
</div>
\r\n
<div className=
\"
projects-maintained-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
project-diagram
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Projects maintained</span>
\r\n
</div>
\r\n
<div className=
\"
team-members-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
users
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Team members</span>
\r\n
</div>
\r\n
<div className=
\"
last-updated-info
\"
>
\r\n
<p>Date created: 21/ 07/ 2021</p>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default TeamOverview"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/494d1acace527f6c1b557364ef6ee432.json
0 → 100644
View file @
2c3853a1
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
changePassword
\\\\
ChangePassword.js
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import MessageModal from '../messageModal/MessageModal';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ChangePassword = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const accessToken = oktaAuth.getAccessToken();
\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\n
const [userInfo, setUserInfo] = useState(null);
\n
const [oldPassword, setOldPassword] = useState(null);
\n
const [newPassword, setNewPassword] = useState(null);
\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const handleOldPasswordChange = e => {
\n
setOldPassword(e.target.value);
\n
};
\n\n
const handleNewPasswordChange = e => {
\n
setNewPassword(e.target.value);
\n
};
\n\n
const handleConfirmNewPasswordChange = e => {
\n
setConfirmNewPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${userInfo && userInfo.email}`,
\n
newPassword: `${newPassword}`
\n
});
\n
const ChangePasswordRequestOptions = {
\n
method: 'PUT',
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
},
\n
body: userInputData
\n
};
\n\n
const handleChangePasswordFormSubmit = e => {
\n
e.preventDefault();
\n\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\n
window.alert(
\"
A password field is blank
\"
);
\n
return;
\n
}
\n\n
if (!(confirmNewPassword.length >= 7)) {
\n
window.alert(
\"
Password must consist of 8 characters or more
\"
);
\n
return;
\n
}
\n\n
if (!(newPassword == confirmNewPassword)) {
\n
window.alert(
\"
Passwords do not match
\"
);
\n
return;
\n
} else {
\n
window.alert(userInfo.email); // fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Old password is not correct
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// setSubmitOkMessageModalState(true)
\n
// setOldPassword('')
\n
// setNewPassword('')
\n
// setConfirmNewPassword('')
\n
// }
\n
// })
\n
}
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
change-password-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
container-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
lock
\"
,
\n
className:
\"
lock-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 93,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
h5
\"
, {
\n
children:
\"
Change password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 92,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Password requirements:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 97,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
At least 8 characters
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
No parts of username may be included
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 102,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children:
\"
Your password cannot be any of the last 4 passwords
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 105,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleChangePasswordFormSubmit,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
reset-password-form-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Old password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 112,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
oldPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: oldPassword,
\n
onChange: handleOldPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 115,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 111,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
New password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 121,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
newPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: newPassword,
\n
onChange: handleNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 124,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 120,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
Confirm new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 130,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
confirmNewPassword
\"
,
\n
type:
\"
password
\"
,
\n
value: confirmNewPassword,
\n
onChange: handleConfirmNewPasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 133,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 129,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
form-item
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
passwordResetSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Submit
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 141,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 139,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 138,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 110,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(MessageModal, {
\n
removeModal: () => setSubmitOkMessageModalState(false),
\n
headerMessage:
\"
Password has been changed
\"
,
\n
bodyMessage:
\"
You can now sign in using your new password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 148,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 147,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ChangePassword,
\"
Xnl+NTauGVDCVlSJN6leYUI37T8=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = ChangePassword;
\n
export default ChangePassword;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ChangePassword
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/changePassword/ChangePassword.js"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"config"
,
"ChangePassword"
,
"authState"
,
"oktaAuth"
,
"accessToken"
,
"getAccessToken"
,
"submitOkMessageModalState"
,
"setSubmitOkMessageModalState"
,
"userInfo"
,
"setUserInfo"
,
"oldPassword"
,
"setOldPassword"
,
"newPassword"
,
"setNewPassword"
,
"confirmNewPassword"
,
"setConfirmNewPassword"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"handleOldPasswordChange"
,
"e"
,
"target"
,
"value"
,
"handleNewPasswordChange"
,
"handleConfirmNewPasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ChangePasswordRequestOptions"
,
"method"
,
"headers"
,
"Authorization"
,
"body"
,
"handleChangePasswordFormSubmit"
,
"preventDefault"
,
"window"
,
"alert"
,
"length"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import MessageModal from '../messageModal/MessageModal'
\r\n
import config from '../../config';
\r\n\r\n
const ChangePassword = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\r\n\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const [oldPassword, setOldPassword] = useState(null)
\r\n
const [newPassword, setNewPassword] = useState(null)
\r\n
const [confirmNewPassword, setConfirmNewPassword] = useState(null)
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const handleOldPasswordChange = (e) => {
\r\n
setOldPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleNewPasswordChange = (e) => {
\r\n
setNewPassword(e.target.value)
\r\n
}
\r\n\r\n
const handleConfirmNewPasswordChange = (e) => {
\r\n
setConfirmNewPassword(e.target.value);
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${userInfo && userInfo.email}`,
\r\n
newPassword: `${newPassword}`
\r\n
})
\r\n\r\n
const ChangePasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
body: userInputData
\r\n
}
\r\n\r\n
const handleChangePasswordFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
if (!oldPassword || !newPassword || !confirmNewPassword) {
\r\n
window.alert(
\"
A password field is blank
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(confirmNewPassword.length >= 7)) {
\r\n
window.alert(
\"
Password must consist of 8 characters or more
\"
)
\r\n
return
\r\n
}
\r\n\r\n
if (!(newPassword == confirmNewPassword)) {
\r\n
window.alert(
\"
Passwords do not match
\"
)
\r\n
return
\r\n
}
\r\n\r\n
else {
\r\n
window.alert(userInfo.email)
\r\n
// fetch(config.serviceAPI.changePasswordURL, ChangePasswordRequestOptions)
\r\n
// .then((res) => {
\r\n
// if (!res.ok) {
\r\n
// window.alert(
\"
Old password is not correct
\"
)
\r\n
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// setSubmitOkMessageModalState(true)
\r\n
// setOldPassword('')
\r\n
// setNewPassword('')
\r\n
// setConfirmNewPassword('')
\r\n
// }
\r\n
// })
\r\n
}
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
change-password-container
\"
>
\r\n
<div className=
\"
container-header
\"
>
\r\n
<FontAwesomeIcon icon=
\"
lock
\"
className=
\"
lock-icon
\"
></FontAwesomeIcon>
\r\n
<h5>Change password</h5>
\r\n
</div>
\r\n
<div className=
\"
content
\"
>
\r\n
<p>Password requirements:</p>
\r\n
<ul>
\r\n
<li>
\r\n
At least 8 characters { }
\r\n
</li>
\r\n
<li>
\r\n
No parts of username may be included
\r\n
</li>
\r\n
<li>
\r\n
Your password cannot be any of the last 4 passwords
\r\n
</li>
\r\n
</ul>
\r\n
<form onSubmit={handleChangePasswordFormSubmit}>
\r\n
<div className=
\"
reset-password-form-container
\"
>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Old password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
oldPassword
\"
type=
\"
password
\"\r\n
value={oldPassword}
\r\n
onChange={handleOldPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
New password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
newPassword
\"
type=
\"
password
\"\r\n
value={newPassword}
\r\n
onChange={handleNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<label>
\r\n
Confirm new password
\r\n
</label>
\r\n
<input
\r\n
id=
\"
confirmNewPassword
\"
type=
\"
password
\"\r\n
value={confirmNewPassword}
\r\n
onChange={handleConfirmNewPasswordChange} />
\r\n
</div>
\r\n
<div className=
\"
form-item
\"
>
\r\n
<button className=
\"
passwordResetSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Submit
\r\n
<FontAwesomeIcon icon=
\"
arrow-right
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</form>
\r\n
</div>
\r\n
<div className={`modal ${submitOkMessageModalState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<MessageModal removeModal={() => setSubmitOkMessageModalState(false)} headerMessage={
\"
Password has been changed
\"
} bodyMessage={
\"
You can now sign in using your new password
\"
} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ChangePassword
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
Prev
1
2
3
4
5
6
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment