Skip to content
GitLab
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
a26e7d3e
Commit
a26e7d3e
authored
Aug 30, 2021
by
Mathias Engelbrecht Pilegård
Browse files
fixed forgot password modal popup flow
parent
5690006f
Changes
209
Expand all
Hide whitespace changes
Inline
Side-by-side
client/node_modules/.cache/.eslintcache
View file @
a26e7d3e
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/00d916ec449316b41a399d99f3a51bd6.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\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
toggleForgotPasswordFormVisible();
\n
setSubmitOkMessageModalState(true); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\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: 68,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\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: 76,
\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: 80,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\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: 85,
\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: 90,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${forgotPasswordFormVisibilityState ?
\"
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: 97,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\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.jsx"
],
"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"
],
"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
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
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
toggleForgotPasswordFormVisible()
\r\n
setSubmitOkMessageModalState(true)
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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 ${forgotPasswordFormVisibilityState ?
\"
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/02794e58757097962d70726e27df676c.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => {
\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n
};
\n\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\n
const userInputData = JSON.stringify({
\n
email: `${username}`
\n
});
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: userInputData
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
toggleSubmitOkModalVisible();
\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: 89,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\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: 97,
\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: 101,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\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: 106,
\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: 111,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 7
\n
}, this), submitOkModalVisibilityState && /*#__PURE__*/_jsxDEV(MessageModal, {
\n
ref: submitOkModalRef,
\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: 118,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
JewdldMzKvoWUXPBjhAQ4J+HRI8=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"PasswordForgotModal"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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
const PasswordForgotModal = () => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => {
\r\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n
}
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\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 = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
toggleSubmitOkModalVisible()
\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
{submitOkModalVisibilityState && (
\r\n
<MessageModal ref={submitOkModalRef} headerMessage={
\"
Email submitted!
\"
} bodyMessage={
\"
An email with a password recovery link will be sent if it is registered in our system
\"
} />
\r\n
)}
\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/02a59571b7b38629bfecf2c3bc8885d2.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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 { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => {
\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n
};
\n\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\n
const userInputData = JSON.stringify({
\n
firstname: '',
\n
lastname: '',
\n
email: `${username}`,
\n
password: ''
\n
});
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: userInputData
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
toggleSubmitOkModalVisible();
\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: 91,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\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: 99,
\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: 103,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 101,
\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: 108,
\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: 113,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 111,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 100,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 97,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: submitOkModalRef,
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
submitOkModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Email submitted!
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 124,
\n
columnNumber: 13
\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: 125,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children:
\"
Ok
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 128,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 123,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 122,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 121,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
JewdldMzKvoWUXPBjhAQ4J+HRI8=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"PasswordForgotModal"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"firstname"
,
"lastname"
,
"email"
,
"password"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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\r\n
const PasswordForgotModal = () => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => {
\r\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n
}
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
firstname: '',
\r\n
lastname: '',
\r\n
email: `${username}`,
\r\n
password: ''
\r\n
})
\r\n\r\n
const ForgotPasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: userInputData
\r\n
}
\r\n\r\n
const handlePasswordForgot = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
toggleSubmitOkModalVisible()
\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\r\n
{/* SubmitOk modal */}
\r\n
<div className={`modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<div ref={submitOkModalRef} className=
\"
modal-content
\"
>
\r\n
<div className=
\"
submitOkModal
\"
>
\r\n
<h2>Email submitted!</h2>
\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
Ok
\r\n
</button>
\r\n
</div>
\r\n
</div>
\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/04092ccca329ab6cbea0e2e17f39fa66.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\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
toggleForgotPasswordFormVisible();
\n
setSubmitOkMessageModalState(true); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\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: 68,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\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: 76,
\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: 80,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\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: 85,
\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: 90,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\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: 97,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\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.jsx"
],
"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"
],
"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
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
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
toggleForgotPasswordFormVisible()
\r\n
setSubmitOkMessageModalState(true)
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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/043d6bfcb9cf4ff57f3c575878ef299f.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = ({
\n
removeFormModal
\n
}) => {
\n
_s();
\n\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\n\n
const stopProp = e => {
\n
e.stopPropagation();
\n
};
\n\n
const [username, setUsername] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\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
removeFormModal();
\n
setSubmitOkMessageModalState(true); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\n
// }
\n
// })
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal-background
\"
,
\n
onClick: e => removeFormModal(),
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\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: 50,
\n
columnNumber: 11
\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: 54,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 13
\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: 61,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
ccs9TXv4Z39DCQsrqL8dXg2nBZI=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"PasswordForgotModal"
,
"removeFormModal"
,
"submitOkMessageModalState"
,
"setSubmitOkMessageModalState"
,
"stopProp"
,
"e"
,
"stopPropagation"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"target"
,
"value"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"preventDefault"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,SAAlC,QAAmD,OAAnD;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAO,2BAAP;AACA,OAAOC,YAAP,MAAyB,+CAAzB;;;AAEA,MAAMC,mBAAmB,GAAG,CAAC;AAAEC,EAAAA;AAAF,CAAD,KAAyB;AAAA;;AACnD,QAAM,CAACC,yBAAD,EAA4BC,4BAA5B,IAA4DT,QAAQ,CAAC,KAAD,CAA1E;;AAEA,QAAMU,QAAQ,GAAGC,CAAC,IAAI;AACpBA,IAAAA,CAAC,CAACC,eAAF;AACD,GAFD;;AAIA,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0Bd,QAAQ,CAAC,EAAD,CAAxC;;AACA,QAAMe,oBAAoB,GAAIJ,CAAD,IAAO;AAClCG,IAAAA,WAAW,CAACH,CAAC,CAACK,MAAF,CAASC,KAAV,CAAX;AACD,GAFD;;AAIA,QAAMC,aAAa,GAAGC,IAAI,CAACC,SAAL,CAAe;AACnCC,IAAAA,KAAK,EAAG,GAAER,QAAS;AADgB,GAAf,CAAtB;AAIA,QAAMS,4BAA4B,GAAG;AACnCC,IAAAA,MAAM,EAAE,KAD2B;AAEnCC,IAAAA,IAAI,EAAEN;AAF6B,GAArC;;AAKA,QAAMO,oBAAoB,GAAId,CAAD,IAAO;AAClCA,IAAAA,CAAC,CAACe,cAAF;AAEAnB,IAAAA,eAAe;AACfE,IAAAA,4BAA4B,CAAC,IAAD,CAA5B,CAJkC,CAKlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD,GAhBD;;AAkBA,sBACE;AAAK,IAAA,SAAS,EAAC,kBAAf;AAAkC,IAAA,OAAO,EAAEE,CAAC,IAAIJ,eAAe,EAA/D;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,eAAf;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,qBAAf;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAM,UAAA,QAAQ,EAAEkB,oBAAhB;AAAA,kCACE;AAAA,8CAEE;AACE,cAAA,EAAE,EAAC,OADL;AACa,cAAA,IAAI,EAAC,MADlB;AAEE,cAAA,KAAK,EAAEZ,QAFT;AAGE,cAAA,QAAQ,EAAEE;AAHZ;AAAA;AAAA;AAAA;AAAA,oBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF,eAQE;AAAQ,YAAA,SAAS,EAAC,kBAAlB;AAAqC,YAAA,IAAI,EAAC,QAA1C;AAAA,sDAEE,QAAC,eAAD;AAAiB,cAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,oBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,kBARF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD,CAhED;;GAAMT,mB;;KAAAA,mB;AAkEN,eAAeA,mBAAf"
,
"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
const PasswordForgotModal = ({ removeFormModal }) => {
\r\n
const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);
\r\n\r\n
const stopProp = e => {
\r\n
e.stopPropagation()
\r\n
}
\r\n\r\n
const [username, setUsername] = useState('');
\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\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
removeFormModal()
\r\n
setSubmitOkMessageModalState(true)
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\r\n
// }
\r\n
// })
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
modal-background
\"
onClick={e => removeFormModal()}>
\r\n
<div 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
<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 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
export default PasswordForgotModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/064093c28affbcd07cc2933bbe925461.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
Login.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect, useRef } from 'react';
\n
import { Redirect } from 'react-router-dom';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Login.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { NavLink } from 'react-router-dom';
\n
import signUp from './signUp/SignUp';
\n
import config from '../../config';
\n
import SignUp from './signUp/SignUp';
\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Login = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [sessionToken, setSessionToken] = useState();
\n
const [username, setUsername] = useState('');
\n
const [password, setPassword] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const handlePasswordChange = e => {
\n
setPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${username}`,
\n
password: `${password}`
\n
});
\n
const loginRequestOptions = {
\n
method: 'POST',
\n
body: userInputData
\n
};
\n\n
const handleSignInFormSubmit = e => {
\n
e.preventDefault();
\n
oktaAuth.signInWithCredentials({
\n
username,
\n
password
\n
}).then(res => {
\n
const sessionToken = res.sessionToken;
\n
setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once
\n\n
oktaAuth.signInWithRedirect({
\n
sessionToken,
\n
originalUri: '/home'
\n
});
\n
}).catch(err => console.log('Found an error', err));
\n
};
\n\n
if (sessionToken) {
\n
// Hide form while sessionToken is converted into id/access tokens
\n
return null;
\n
}
\n\n
if (!authState || !authState.isAuthenticated) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
pageContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(SignUp, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
signInForm
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Sign in to PipIt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleSignInFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
username
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Password:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
password
\"
,
\n
type:
\"
password
\"
,
\n
value: password,
\n
onChange: handlePasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Sign in
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-in-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(PasswordForgotModal, {
\n
loginFormUsername: parseFloat(username)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 7
\n
}, this);
\n
} else {
\n
return /*#__PURE__*/_jsxDEV(Redirect, {
\n
to:
\"
/home
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 12
\n
}, this);
\n
}
\n
};
\n\n
_s(Login,
\"
u8yY6NlW4PSOG6xgLhGhaVL5lVE=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Login;
\n
export default Login;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Login
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/Login.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useRef"
,
"Redirect"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"NavLink"
,
"signUp"
,
"config"
,
"SignUp"
,
"PasswordForgotModal"
,
"Login"
,
"authState"
,
"oktaAuth"
,
"sessionToken"
,
"setSessionToken"
,
"username"
,
"setUsername"
,
"password"
,
"setPassword"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"handlePasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"loginRequestOptions"
,
"method"
,
"body"
,
"handleSignInFormSubmit"
,
"preventDefault"
,
"signInWithCredentials"
,
"then"
,
"res"
,
"signInWithRedirect"
,
"originalUri"
,
"catch"
,
"err"
,
"console"
,
"log"
,
"isAuthenticated"
,
"parseFloat"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect, useRef } from 'react';
\r\n
import { Redirect } from 'react-router-dom'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Login.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import { NavLink } from 'react-router-dom';
\r\n
import signUp from './signUp/SignUp';
\r\n
import config from '../../config';
\r\n
import SignUp from './signUp/SignUp';
\r\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\r\n\r\n
const Login = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [sessionToken, setSessionToken] = useState()
\r\n\r\n
const [username, setUsername] = useState('');
\r\n
const [password, setPassword] = useState('');
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
const handlePasswordChange = (e) => {
\r\n
setPassword(e.target.value)
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${username}`,
\r\n
password: `${password}`
\r\n
})
\r\n\r\n
const loginRequestOptions = {
\r\n
method: 'POST',
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleSignInFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
oktaAuth.signInWithCredentials({ username, password })
\r\n
.then(res => {
\r\n
const sessionToken = res.sessionToken;
\r\n
setSessionToken(sessionToken);
\r\n
// sessionToken is a one-use token, so make sure this is only called once
\r\n
oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });
\r\n
})
\r\n
.catch(err => console.log('Found an error', err));
\r\n
};
\r\n\r\n
if (sessionToken) {
\r\n
// Hide form while sessionToken is converted into id/access tokens
\r\n
return null;
\r\n
}
\r\n\r\n
if (!authState || !authState.isAuthenticated) {
\r\n
return (
\r\n
<div className=
\"
pageContainer
\"
>
\r\n
<SignUp />
\r\n\r\n
<div className=
\"
signInForm
\"
>
\r\n
<h2>Sign in to PipIt</h2>
\r\n
<form onSubmit={handleSignInFormSubmit}>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
username
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Password:
\r\n
<input
\r\n
id=
\"
password
\"
type=
\"
password
\"\r\n
value={password}
\r\n
onChange={handlePasswordChange} />
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Sign in
\r\n
<FontAwesomeIcon icon=
\"
sign-in-alt
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</form>
\r\n
<PasswordForgotModal loginFormUsername={parseFloat(username)} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
} else {
\r\n
return <Redirect to=
\"
/home
\"
/>
\r\n
}
\r\n
}
\r\n\r\n
export default Login"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/094bd105da9ed9c4ed1b373b3428f44c.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\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
window.alert(userInputData);
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\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: 69,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\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: 77,
\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: 81,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\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: 86,
\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: 91,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\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: 98,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 97,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\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.jsx"
],
"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"
,
"alert"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"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
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
window.alert(userInputData)
\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
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/0b78da76fda3607976341e47eeb2203f.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => {
\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n
};
\n\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\n
const userInputData = JSON.stringify({
\n
email: `${username}`
\n
});
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: userInputData
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {
\n
toggleSubmitOkModalVisible();
\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: 89,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\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: 97,
\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: 101,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\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: 106,
\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: 111,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(MessageModal, {
\n
ref: submitOkModalRef,
\n
headerMessage:
\"
Email submitted!
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 117,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
JewdldMzKvoWUXPBjhAQ4J+HRI8=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"PasswordForgotModal"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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
const PasswordForgotModal = () => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => {
\r\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n
}
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\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 = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
toggleSubmitOkModalVisible()
\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
<MessageModal ref={submitOkModalRef} headerMessage={
\"
Email submitted!
\"
} />
\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/0c872dfc6b53b1558e70b36a93efcc01.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\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
toggleForgotPasswordFormVisible(); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\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: 67,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\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: 75,
\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: 79,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\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: 84,
\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: 89,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(MessageModal, {
\n
activeState:
\"
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: 95,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\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.jsx"
],
"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"
],
"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
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
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
toggleForgotPasswordFormVisible()
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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
<MessageModal activeState={
\"
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\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/0de96a6adf9a1edd25e64d11d9f32c5d.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => {
\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n
};
\n\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\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
toggleForgotPasswordFormVisible();
\n
toggleSubmitOkModalVisible(); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\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: 93,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 92,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\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: 101,
\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: 105,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 103,
\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: 115,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 113,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 102,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 100,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 7
\n
}, this), submitOkModalVisibilityState && /*#__PURE__*/_jsxDEV(MessageModal, {
\n
ref: submitOkModalRef,
\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: 122,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
JewdldMzKvoWUXPBjhAQ4J+HRI8=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"MessageModal"
,
"PasswordForgotModal"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"handlePasswordForgot"
,
"preventDefault"
],
"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
const PasswordForgotModal = () => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => {
\r\n
showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n
}
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\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
toggleForgotPasswordFormVisible()
\r\n
toggleSubmitOkModalVisible()
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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
{submitOkModalVisibilityState && (
\r\n
<MessageModal ref={submitOkModalRef} headerMessage={
\"
Email submitted!
\"
} bodyMessage={
\"
An email with a password recovery link will be sent if it is registered in our system
\"
} />
\r\n
)}
\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/0e06a7e4878f6e458ebb88b670d289a2.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
Login.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect, useRef } from 'react';
\n
import { Redirect } from 'react-router-dom';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Login.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { NavLink } from 'react-router-dom';
\n
import signUp from './signUp/SignUp';
\n
import config from '../../config';
\n
import SignUp from './signUp/SignUp';
\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Login = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [sessionToken, setSessionToken] = useState();
\n
const [username, setUsername] = useState('');
\n
const [password, setPassword] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const handlePasswordChange = e => {
\n
setPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${username}`,
\n
password: `${password}`
\n
});
\n
const loginRequestOptions = {
\n
method: 'POST',
\n
body: userInputData
\n
};
\n\n
const handleSignInFormSubmit = e => {
\n
e.preventDefault();
\n
oktaAuth.signInWithCredentials({
\n
username,
\n
password
\n
}).then(res => {
\n
const sessionToken = res.sessionToken;
\n
setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once
\n\n
oktaAuth.signInWithRedirect({
\n
sessionToken,
\n
originalUri: '/home'
\n
});
\n
}).catch(err => console.log('Found an error', err));
\n
};
\n\n
if (sessionToken) {
\n
// Hide form while sessionToken is converted into id/access tokens
\n
return null;
\n
}
\n\n
if (!authState || !authState.isAuthenticated) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
pageContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(SignUp, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
signInForm
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Sign in to PipIt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleSignInFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
username
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Password:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
password
\"
,
\n
type:
\"
password
\"
,
\n
value: password,
\n
onChange: handlePasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Sign in
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-in-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(PasswordForgotModal, {
\n
loginFormUsername: parsefloat(username)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 7
\n
}, this);
\n
} else {
\n
return /*#__PURE__*/_jsxDEV(Redirect, {
\n
to:
\"
/home
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 12
\n
}, this);
\n
}
\n
};
\n\n
_s(Login,
\"
u8yY6NlW4PSOG6xgLhGhaVL5lVE=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Login;
\n
export default Login;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Login
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/Login.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useRef"
,
"Redirect"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"NavLink"
,
"signUp"
,
"config"
,
"SignUp"
,
"PasswordForgotModal"
,
"Login"
,
"authState"
,
"oktaAuth"
,
"sessionToken"
,
"setSessionToken"
,
"username"
,
"setUsername"
,
"password"
,
"setPassword"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"handlePasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"loginRequestOptions"
,
"method"
,
"body"
,
"handleSignInFormSubmit"
,
"preventDefault"
,
"signInWithCredentials"
,
"then"
,
"res"
,
"signInWithRedirect"
,
"originalUri"
,
"catch"
,
"err"
,
"console"
,
"log"
,
"isAuthenticated"
,
"parsefloat"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect, useRef } from 'react';
\r\n
import { Redirect } from 'react-router-dom'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Login.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import { NavLink } from 'react-router-dom';
\r\n
import signUp from './signUp/SignUp';
\r\n
import config from '../../config';
\r\n
import SignUp from './signUp/SignUp';
\r\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\r\n\r\n
const Login = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [sessionToken, setSessionToken] = useState()
\r\n\r\n
const [username, setUsername] = useState('');
\r\n
const [password, setPassword] = useState('');
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
const handlePasswordChange = (e) => {
\r\n
setPassword(e.target.value)
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${username}`,
\r\n
password: `${password}`
\r\n
})
\r\n\r\n
const loginRequestOptions = {
\r\n
method: 'POST',
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleSignInFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
oktaAuth.signInWithCredentials({ username, password })
\r\n
.then(res => {
\r\n
const sessionToken = res.sessionToken;
\r\n
setSessionToken(sessionToken);
\r\n
// sessionToken is a one-use token, so make sure this is only called once
\r\n
oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });
\r\n
})
\r\n
.catch(err => console.log('Found an error', err));
\r\n
};
\r\n\r\n
if (sessionToken) {
\r\n
// Hide form while sessionToken is converted into id/access tokens
\r\n
return null;
\r\n
}
\r\n\r\n
if (!authState || !authState.isAuthenticated) {
\r\n
return (
\r\n
<div className=
\"
pageContainer
\"
>
\r\n
<SignUp />
\r\n\r\n
<div className=
\"
signInForm
\"
>
\r\n
<h2>Sign in to PipIt</h2>
\r\n
<form onSubmit={handleSignInFormSubmit}>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
username
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Password:
\r\n
<input
\r\n
id=
\"
password
\"
type=
\"
password
\"\r\n
value={password}
\r\n
onChange={handlePasswordChange} />
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Sign in
\r\n
<FontAwesomeIcon icon=
\"
sign-in-alt
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</form>
\r\n
<PasswordForgotModal loginFormUsername={parsefloat(username)} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
} else {
\r\n
return <Redirect to=
\"
/home
\"
/>
\r\n
}
\r\n
}
\r\n\r\n
export default Login"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0e37a5d82278dee679cf9d6213c335fa.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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 { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = () => {
\n
_s();
\n\n
const [username, setUsername] = useState('');
\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\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 ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: JSON.stringify({
\n
email: `${username}`
\n
})
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {// do something
\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: 59,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\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: 66,
\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: 70,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children:
\"
An email with a password recovery link will be sent if registered within our system
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Sign Up
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
arrow-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
VvmgU4VTr5ZNKM/8uo86UTvcRWY=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"PasswordForgotModal"
,
"username"
,
"setUsername"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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\r\n
const PasswordForgotModal = () => {
\r\n
const [username, setUsername] = useState('');
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null);
\r\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\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 ForgotPasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: JSON.stringify({
\r\n
email: `${username}`
\r\n
})
\r\n
}
\r\n\r\n
const handlePasswordForgot = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
// do something
\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
<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 registered within our system
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Sign Up
\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>
\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/0eea3857faab067a1da60aecc79b3f85.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
Login.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect, useRef } from 'react';
\n
import { Redirect } from 'react-router-dom';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Login.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { NavLink } from 'react-router-dom';
\n
import signUp from './signUp/SignUp';
\n
import config from '../../config';
\n
import SignUp from './signUp/SignUp';
\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Login = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [sessionToken, setSessionToken] = useState();
\n
const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false);
\n
const [username, setUsername] = useState('');
\n
const [password, setPassword] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const handlePasswordChange = e => {
\n
setPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${username}`,
\n
password: `${password}`
\n
});
\n
const loginRequestOptions = {
\n
method: 'POST',
\n
body: userInputData
\n
};
\n\n
const handleSignInFormSubmit = e => {
\n
e.preventDefault();
\n
oktaAuth.signInWithCredentials({
\n
username,
\n
password
\n
}).then(res => {
\n
const sessionToken = res.sessionToken;
\n
setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once
\n\n
oktaAuth.signInWithRedirect({
\n
sessionToken,
\n
originalUri: '/home'
\n
});
\n
}).catch(err => console.log('Found an error', err));
\n
};
\n\n
if (sessionToken) {
\n
// Hide form while sessionToken is converted into id/access tokens
\n
return null;
\n
}
\n\n
if (!authState || !authState.isAuthenticated) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
pageContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(SignUp, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
signInForm
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Sign in to PipIt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleSignInFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
username
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Password:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
password
\"
,
\n
type:
\"
password
\"
,
\n
value: password,
\n
onChange: handlePasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Sign in
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-in-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
password-forgot-prompt
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: setForgotPasswordFormVisibilityState(true),
\n
children:
\"
Forgot password
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 85,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${forgotPasswordFormVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(PasswordForgotModal, {
\n
removeModal: () => setForgotPasswordFormVisibilityState(false)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 7
\n
}, this);
\n
} else {
\n
return /*#__PURE__*/_jsxDEV(Redirect, {
\n
to:
\"
/home
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 12
\n
}, this);
\n
}
\n
};
\n\n
_s(Login,
\"
XlNc2CmG/vFxCt8acIKy6LZQ9RM=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Login;
\n
export default Login;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Login
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/Login.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useRef"
,
"Redirect"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"NavLink"
,
"signUp"
,
"config"
,
"SignUp"
,
"PasswordForgotModal"
,
"Login"
,
"authState"
,
"oktaAuth"
,
"sessionToken"
,
"setSessionToken"
,
"forgotPasswordFormVisibilityState"
,
"setForgotPasswordFormVisibilityState"
,
"username"
,
"setUsername"
,
"password"
,
"setPassword"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"handlePasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"loginRequestOptions"
,
"method"
,
"body"
,
"handleSignInFormSubmit"
,
"preventDefault"
,
"signInWithCredentials"
,
"then"
,
"res"
,
"signInWithRedirect"
,
"originalUri"
,
"catch"
,
"err"
,
"console"
,
"log"
,
"isAuthenticated"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect, useRef } from 'react';
\r\n
import { Redirect } from 'react-router-dom'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Login.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import { NavLink } from 'react-router-dom';
\r\n
import signUp from './signUp/SignUp';
\r\n
import config from '../../config';
\r\n
import SignUp from './signUp/SignUp';
\r\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\r\n\r\n
const Login = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [sessionToken, setSessionToken] = useState()
\r\n\r\n
const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false)
\r\n\r\n
const [username, setUsername] = useState('');
\r\n
const [password, setPassword] = useState('');
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
const handlePasswordChange = (e) => {
\r\n
setPassword(e.target.value)
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${username}`,
\r\n
password: `${password}`
\r\n
})
\r\n\r\n
const loginRequestOptions = {
\r\n
method: 'POST',
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleSignInFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
oktaAuth.signInWithCredentials({ username, password })
\r\n
.then(res => {
\r\n
const sessionToken = res.sessionToken;
\r\n
setSessionToken(sessionToken);
\r\n
// sessionToken is a one-use token, so make sure this is only called once
\r\n
oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });
\r\n
})
\r\n
.catch(err => console.log('Found an error', err));
\r\n
};
\r\n\r\n
if (sessionToken) {
\r\n
// Hide form while sessionToken is converted into id/access tokens
\r\n
return null;
\r\n
}
\r\n\r\n
if (!authState || !authState.isAuthenticated) {
\r\n
return (
\r\n
<div className=
\"
pageContainer
\"
>
\r\n
<SignUp />
\r\n\r\n
<div className=
\"
signInForm
\"
>
\r\n
<h2>Sign in to PipIt</h2>
\r\n
<form onSubmit={handleSignInFormSubmit}>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
username
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Password:
\r\n
<input
\r\n
id=
\"
password
\"
type=
\"
password
\"\r\n
value={password}
\r\n
onChange={handlePasswordChange} />
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Sign in
\r\n
<FontAwesomeIcon icon=
\"
sign-in-alt
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</form>
\r\n
<div className=
\"
password-forgot-prompt
\"
>
\r\n
<span>
\r\n
<a onClick={setForgotPasswordFormVisibilityState(true)}>Forgot password</a>
\r\n
</span>
\r\n
</div>
\r\n
<div className={`modal ${forgotPasswordFormVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<PasswordForgotModal removeModal={() => setForgotPasswordFormVisibilityState(false)} />
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
} else {
\r\n
return <Redirect to=
\"
/home
\"
/>
\r\n
}
\r\n
}
\r\n\r\n
export default Login"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0f97e620c26889fd6da13d54417cb63c.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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 { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = props => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n\n
const [username, setUsername] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
useEffect(() => {
\n
setUsername(props.loginFormUsername);
\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: JSON.stringify({
\n
email: `${username}`
\n
})
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {// do something
\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: 89,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\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: 97,
\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: 101,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\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: 106,
\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: 111,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: submitOkModalRef,
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
submitOkModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Email has been submitted!
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 122,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children:
\"
Ok
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 123,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 121,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 120,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 119,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
6nRVeLyPRLhEC+nG9QEudfxhhrM=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"PasswordForgotModal"
,
"props"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"loginFormUsername"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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\r\n
const PasswordForgotModal = (props) => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n\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
setUsername(props.loginFormUsername)
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\r\n\r\n
const ForgotPasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: JSON.stringify({
\r\n
email: `${username}`
\r\n
})
\r\n
}
\r\n\r\n
const handlePasswordForgot = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
// do something
\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\r\n
{/* SubmitOk modal */}
\r\n
<div className={`modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<div ref={submitOkModalRef} className=
\"
modal-content
\"
>
\r\n
<div className=
\"
submitOkModal
\"
>
\r\n
<h2>Email has been submitted!</h2>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Ok
\r\n
</button>
\r\n
</div>
\r\n
</div>
\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/12c01119619eb1113b92006fb0ccc736.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
messageModal
\\\\
MessageModal.jsx
\"
;
\n
import React, { useState, useEffect, useRef } from 'react';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const MessageModal = ({
\n
removeModal,
\n
headerMessage,
\n
bodyMessage
\n
}) => {
\n
const stopProp = e => {
\n
e.stopPropagation();
\n
}; // useEffect(() => {
\n
// const pageClickEvent = (e) => {
\n
// if (messageModalRef.current !== null && !messageModalRef.current.contains(e.target)) {
\n
// toggleModalVisible()
\n
// }
\n
// };
\n
// // If the item is active (ie open) then listen for clicks
\n
// if (modalVisibilityState) {
\n
// window.addEventListener('click', pageClickEvent);
\n
// }
\n
// return () => {
\n
// window.removeEventListener('click', pageClickEvent);
\n
// }
\n
// }, [modalVisibilityState]);
\n\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal background
\"
,
\n
onClick: e => removeModal(),
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
submitOkModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children: headerMessage
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: bodyMessage
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
onClick: e => removeModal(),
\n
children:
\"
Ok
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 34,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = MessageModal;
\n
export default MessageModal;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
MessageModal
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/messageModal/MessageModal.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useRef"
,
"MessageModal"
,
"removeModal"
,
"headerMessage"
,
"bodyMessage"
,
"stopProp"
,
"e"
,
"stopPropagation"
],
"mappings"
:
";AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,EAAqCC,MAArC,QAAmD,OAAnD;;;AAEA,MAAMC,YAAY,GAAG,CAAC;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,aAAf;AAA8BC,EAAAA;AAA9B,CAAD,KAAiD;AACpE,QAAMC,QAAQ,GAAGC,CAAC,IAAI;AACpBA,IAAAA,CAAC,CAACC,eAAF;AACD,GAFD,CADoE,CAKpE;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;;;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC,kBAAf;AAAkC,IAAA,OAAO,EAAED,CAAC,IAAIJ,WAAW,EAA3D;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,eAAf;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,eAAf;AAAA,gCACE;AAAA,oBAAKC;AAAL;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,oBACGC;AADH;AAAA;AAAA;AAAA;AAAA,gBAFF,eAKE;AAAQ,UAAA,SAAS,EAAC,kBAAlB;AAAqC,UAAA,OAAO,EAAEE,CAAC,IAAIJ,WAAW,EAA9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD,CAtCD;;KAAMD,Y;AAwCN,eAAeA,YAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect, useRef } from 'react'
\r\n\r\n
const MessageModal = ({ removeModal, headerMessage, bodyMessage }) => {
\r\n
const stopProp = e => {
\r\n
e.stopPropagation()
\r\n
}
\r\n\r\n
// useEffect(() => {
\r\n
// const pageClickEvent = (e) => {
\r\n
// if (messageModalRef.current !== null && !messageModalRef.current.contains(e.target)) {
\r\n
// toggleModalVisible()
\r\n
// }
\r\n
// };
\r\n\r\n
// // If the item is active (ie open) then listen for clicks
\r\n
// if (modalVisibilityState) {
\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
// }, [modalVisibilityState]);
\r\n\r\n
return (
\r\n
<div className=
\"
modal background
\"
onClick={e => removeModal()}>
\r\n
<div className=
\"
modal-content
\"
>
\r\n
<div className=
\"
submitOkModal
\"
>
\r\n
<h2>{headerMessage}</h2>
\r\n
<label>
\r\n
{bodyMessage}
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
onClick={e => removeModal()}>
\r\n
Ok
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default MessageModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/140f76d269b939863897f586ad34fd2a.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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 { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const PasswordForgotModal = ({
\n
loginFormUsername
\n
}) => {
\n
_s();
\n\n
// Submit ok modal
\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false);
\n
const submitOkModalRef = useRef(null);
\n\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState); // Forgot password form
\n\n\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false);
\n
const forgotPasswordFormRef = useRef(null);
\n\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState);
\n\n
const [username, setUsername] = useState('');
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
useEffect(() => {
\n
setUsername(loginFormUsername.username);
\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
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\n
toggleSubmitOkModalVisible();
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (submitOkModalVisibilityState) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [submitOkModalVisibilityState]);
\n
const ForgotPasswordRequestOptions = {
\n
method: 'PUT',
\n
body: JSON.stringify({
\n
email: `${username}`
\n
})
\n
};
\n\n
const handlePasswordForgot = () => {
\n
fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions).then(res => {
\n
if (!res.ok) {
\n
window.alert(
\"
Error: something went wrong
\"
);
\n
Promise.reject(
\"\"
);
\n
return;
\n
}
\n\n
if (res.ok) {// toggleSubmitOkModalVisible()
\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: 89,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\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: 97,
\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: 101,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 99,
\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: 106,
\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: 111,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 109,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 98,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: submitOkModalRef,
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
submitOkModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Email submitted!
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 122,
\n
columnNumber: 13
\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: 123,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children:
\"
Ok
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 126,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 121,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 120,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 119,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(PasswordForgotModal,
\"
6nRVeLyPRLhEC+nG9QEudfxhhrM=
\"
);
\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.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useRef"
,
"useEffect"
,
"config"
,
"FontAwesomeIcon"
,
"PasswordForgotModal"
,
"loginFormUsername"
,
"submitOkModalVisibilityState"
,
"showSubmitOkModal"
,
"submitOkModalRef"
,
"toggleSubmitOkModalVisible"
,
"forgotPasswordFormVisibilityState"
,
"showForgotPasswordForm"
,
"forgotPasswordFormRef"
,
"toggleForgotPasswordFormVisible"
,
"username"
,
"setUsername"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"pageClickEvent"
,
"current"
,
"contains"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"ForgotPasswordRequestOptions"
,
"method"
,
"body"
,
"JSON"
,
"stringify"
,
"email"
,
"handlePasswordForgot"
,
"fetch"
,
"serviceAPI"
,
"ForgotPasswordURL"
,
"then"
,
"res"
,
"ok"
,
"alert"
,
"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\r\n
const PasswordForgotModal = ({ loginFormUsername }) => {
\r\n
// Submit ok modal
\r\n
const [submitOkModalVisibilityState, showSubmitOkModal] = useState(false)
\r\n
const submitOkModalRef = useRef(null)
\r\n
const toggleSubmitOkModalVisible = () => showSubmitOkModal(!submitOkModalVisibilityState)
\r\n\r\n
// Forgot password form
\r\n
const [forgotPasswordFormVisibilityState, showForgotPasswordForm] = useState(false)
\r\n
const forgotPasswordFormRef = useRef(null)
\r\n
const toggleForgotPasswordFormVisible = () => showForgotPasswordForm(!forgotPasswordFormVisibilityState)
\r\n\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
setUsername(loginFormUsername.username)
\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
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (submitOkModalRef.current !== null && !submitOkModalRef.current.contains(e.target)) {
\r\n
toggleSubmitOkModalVisible()
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (submitOkModalVisibilityState) {
\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
}, [submitOkModalVisibilityState]);
\r\n\r\n
const ForgotPasswordRequestOptions = {
\r\n
method: 'PUT',
\r\n
body: JSON.stringify({
\r\n
email: `${username}`
\r\n
})
\r\n
}
\r\n\r\n
const handlePasswordForgot = () => {
\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
Promise.reject(
\"\"
)
\r\n
return
\r\n
}
\r\n
if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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\r\n
{/* SubmitOk modal */}
\r\n
<div className={`modal ${submitOkModalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<div ref={submitOkModalRef} className=
\"
modal-content
\"
>
\r\n
<div className=
\"
submitOkModal
\"
>
\r\n
<h2>Email submitted!</h2>
\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
Ok
\r\n
</button>
\r\n
</div>
\r\n
</div>
\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/16a007240a5fc459ae1741d6054fa686.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
passwordReset
\\\\
PasswordForgotModal.jsx
\"
,
\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';
\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
toggleForgotPasswordFormVisible();
\n
setSubmitOkMessageModalState(true); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)
\n
// .then((res) => {
\n
// if (!res.ok) {
\n
// window.alert(
\"
Error: something went wrong
\"
)
\n
// Promise.reject(
\"\"
)
\n
// return
\n
// }
\n
// if (res.ok) {
\n
// toggleSubmitOkModalVisible()
\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: 68,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\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: 76,
\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: 80,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\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: 85,
\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: 90,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\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: 97,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 96,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\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.jsx"
],
"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"
],
"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
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
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
toggleForgotPasswordFormVisible()
\r\n
setSubmitOkMessageModalState(true)
\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
// Promise.reject(
\"\"
)
\r\n
// return
\r\n
// }
\r\n
// if (res.ok) {
\r\n
// toggleSubmitOkModalVisible()
\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>
\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/16ab15817248a09cce22117b37b8d64b.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
messageModal
\\\\
MessageModal.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from 'react';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const MessageModal = props => {
\n
_s();
\n\n
const [modalVisibilityState, showModal] = useState(true);
\n\n
const toggleModalVisible = () => showModal(!modalVisibilityState);
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className: `modal ${modalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
modal-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
submitOkModal
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children: props.headerMessage
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: props.bodyMessage
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
onClick: toggleModalVisible,
\n
children:
\"
Ok
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 9,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 8,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(MessageModal,
\"
o5WiWLNLIkTfnrQf/aeRT17JQYs=
\"
);
\n\n
_c = MessageModal;
\n
export default MessageModal;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
MessageModal
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/messageModal/MessageModal.jsx"
],
"names"
:[
"React"
,
"MessageModal"
,
"props"
,
"modalVisibilityState"
,
"showModal"
,
"useState"
,
"toggleModalVisible"
,
"headerMessage"
,
"bodyMessage"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,YAAY,GAAIC,KAAD,IAAW;AAAA;;AAC9B,QAAM,CAACC,oBAAD,EAAuBC,SAAvB,IAAoCC,QAAQ,CAAC,IAAD,CAAlD;;AACA,QAAMC,kBAAkB,GAAG,MAAMF,SAAS,CAAC,CAACD,oBAAF,CAA1C;;AAEA,sBACE;AAAK,IAAA,SAAS,EAAG,SAAQA,oBAAoB,GAAG,QAAH,GAAc,UAAW,EAAtE;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,eAAf;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,eAAf;AAAA,gCACE;AAAA,oBAAKD,KAAK,CAACK;AAAX;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,oBACGL,KAAK,CAACM;AADT;AAAA;AAAA;AAAA;AAAA,gBAFF,eAKE;AAAQ,UAAA,SAAS,EAAC,kBAAlB;AAAqC,UAAA,OAAO,EAAEF,kBAA9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBALF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAeD,CAnBD;;GAAML,Y;;KAAAA,Y;AAqBN,eAAeA,YAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n\r\n
const MessageModal = (props) => {
\r\n
const [modalVisibilityState, showModal] = useState(true)
\r\n
const toggleModalVisible = () => showModal(!modalVisibilityState)
\r\n\r\n
return (
\r\n
<div className={`modal ${modalVisibilityState ?
\"
active
\"
:
\"
inactive
\"
}`}>
\r\n
<div className=
\"
modal-content
\"
>
\r\n
<div className=
\"
submitOkModal
\"
>
\r\n
<h2>{props.headerMessage}</h2>
\r\n
<label>
\r\n
{props.bodyMessage}
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
onClick={toggleModalVisible}>
\r\n
Ok
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default MessageModal
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/184a8dabead2a93527f2c6355b7b0448.json
0 → 100644
View file @
a26e7d3e
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
login
\\\\
Login.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect, useRef } from 'react';
\n
import { Redirect } from 'react-router-dom';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Login.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { NavLink } from 'react-router-dom';
\n
import signUp from './signUp/SignUp';
\n
import config from '../../config';
\n
import SignUp from './signUp/SignUp';
\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Login = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [sessionToken, setSessionToken] = useState();
\n
const [username, setUsername] = useState('');
\n
const [password, setPassword] = useState('');
\n
const [forgotUsername, setForgotUsername] = useState('');
\n
useEffect(() => {
\n
setForgotUsername(username);
\n
console.log(forgotUsername);
\n
}, [username]);
\n\n
const handleUsernameChange = e => {
\n
setUsername(e.target.value);
\n
};
\n\n
const handlePasswordChange = e => {
\n
setPassword(e.target.value);
\n
};
\n\n
const userInputData = JSON.stringify({
\n
email: `${username}`,
\n
password: `${password}`
\n
});
\n
const loginRequestOptions = {
\n
method: 'POST',
\n
body: userInputData
\n
};
\n\n
const handleSignInFormSubmit = e => {
\n
e.preventDefault();
\n
oktaAuth.signInWithCredentials({
\n
username,
\n
password
\n
}).then(res => {
\n
const sessionToken = res.sessionToken;
\n
setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once
\n\n
oktaAuth.signInWithRedirect({
\n
sessionToken,
\n
originalUri: '/home'
\n
});
\n
}).catch(err => console.log('Found an error', err));
\n
};
\n\n
if (sessionToken) {
\n
// Hide form while sessionToken is converted into id/access tokens
\n
return null;
\n
}
\n\n
if (!authState || !authState.isAuthenticated) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
pageContainer
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(SignUp, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
signInForm
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
children:
\"
Sign in to PipIt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
form
\"
, {
\n
onSubmit: handleSignInFormSubmit,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Email:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
username
\"
,
\n
type:
\"
text
\"
,
\n
value: username,
\n
onChange: handleUsernameChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
label
\"
, {
\n
children: [
\"
Password:
\"
, /*#__PURE__*/_jsxDEV(
\"
input
\"
, {
\n
id:
\"
password
\"
,
\n
type:
\"
password
\"
,
\n
value: password,
\n
onChange: handlePasswordChange
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
formSubmitButton
\"
,
\n
type:
\"
submit
\"
,
\n
children: [
\"
Sign in
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-in-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(PasswordForgotModal, {
\n
loginFormUsername: forgotUsername
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 7
\n
}, this);
\n
} else {
\n
return /*#__PURE__*/_jsxDEV(Redirect, {
\n
to:
\"
/home
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 12
\n
}, this);
\n
}
\n
};
\n\n
_s(Login,
\"
8cak91jM2hAuqTZEX5oSChwgzO4=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Login;
\n
export default Login;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Login
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/Login.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useRef"
,
"Redirect"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"NavLink"
,
"signUp"
,
"config"
,
"SignUp"
,
"PasswordForgotModal"
,
"Login"
,
"authState"
,
"oktaAuth"
,
"sessionToken"
,
"setSessionToken"
,
"username"
,
"setUsername"
,
"password"
,
"setPassword"
,
"forgotUsername"
,
"setForgotUsername"
,
"console"
,
"log"
,
"handleUsernameChange"
,
"e"
,
"target"
,
"value"
,
"handlePasswordChange"
,
"userInputData"
,
"JSON"
,
"stringify"
,
"email"
,
"loginRequestOptions"
,
"method"
,
"body"
,
"handleSignInFormSubmit"
,
"preventDefault"
,
"signInWithCredentials"
,
"then"
,
"res"
,
"signInWithRedirect"
,
"originalUri"
,
"catch"
,
"err"
,
"isAuthenticated"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useState, useEffect, useRef } from 'react';
\r\n
import { Redirect } from 'react-router-dom'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Login.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import { NavLink } from 'react-router-dom';
\r\n
import signUp from './signUp/SignUp';
\r\n
import config from '../../config';
\r\n
import SignUp from './signUp/SignUp';
\r\n
import PasswordForgotModal from './passwordReset/PasswordForgotModal';
\r\n\r\n
const Login = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [sessionToken, setSessionToken] = useState()
\r\n\r\n
const [username, setUsername] = useState('');
\r\n
const [password, setPassword] = useState('');
\r\n
const [forgotUsername, setForgotUsername] = useState('')
\r\n\r\n\r\n
useEffect(() => {
\r\n
setForgotUsername(username)
\r\n
console.log(forgotUsername)
\r\n
}, [username])
\r\n\r\n
const handleUsernameChange = (e) => {
\r\n
setUsername(e.target.value);
\r\n
};
\r\n\r\n
const handlePasswordChange = (e) => {
\r\n
setPassword(e.target.value)
\r\n
}
\r\n\r\n
const userInputData = JSON.stringify({
\r\n
email: `${username}`,
\r\n
password: `${password}`
\r\n
})
\r\n\r\n
const loginRequestOptions = {
\r\n
method: 'POST',
\r\n
body: userInputData
\r\n
};
\r\n\r\n
const handleSignInFormSubmit = (e) => {
\r\n
e.preventDefault();
\r\n\r\n
oktaAuth.signInWithCredentials({ username, password })
\r\n
.then(res => {
\r\n
const sessionToken = res.sessionToken;
\r\n
setSessionToken(sessionToken);
\r\n
// sessionToken is a one-use token, so make sure this is only called once
\r\n
oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });
\r\n
})
\r\n
.catch(err => console.log('Found an error', err));
\r\n
};
\r\n\r\n
if (sessionToken) {
\r\n
// Hide form while sessionToken is converted into id/access tokens
\r\n
return null;
\r\n
}
\r\n\r\n
if (!authState || !authState.isAuthenticated) {
\r\n
return (
\r\n
<div className=
\"
pageContainer
\"
>
\r\n
<SignUp />
\r\n\r\n
<div className=
\"
signInForm
\"
>
\r\n
<h2>Sign in to PipIt</h2>
\r\n
<form onSubmit={handleSignInFormSubmit}>
\r\n
<label>
\r\n
Email:
\r\n
<input
\r\n
id=
\"
username
\"
type=
\"
text
\"\r\n
value={username}
\r\n
onChange={handleUsernameChange} />
\r\n
</label>
\r\n
<label>
\r\n
Password:
\r\n
<input
\r\n
id=
\"
password
\"
type=
\"
password
\"\r\n
value={password}
\r\n
onChange={handlePasswordChange} />
\r\n
</label>
\r\n
<button className=
\"
formSubmitButton
\"
type=
\"
submit
\"
>
\r\n
Sign in
\r\n
<FontAwesomeIcon icon=
\"
sign-in-alt
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</form>
\r\n
<PasswordForgotModal loginFormUsername={forgotUsername} />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
} else {
\r\n
return <Redirect to=
\"
/home
\"
/>
\r\n
}
\r\n
}
\r\n\r\n
export default Login"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
Prev
1
2
3
4
5
…
11
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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