Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mathias Engelbrecht Pilegård
Pipit
Commits
e4f09cae
Commit
e4f09cae
authored
Aug 27, 2021
by
Mathias Engelbrecht Pilegård
Browse files
added redirect to home when oktaAuth detects user as already logged in
parent
47e062ec
Changes
209
Expand all
Hide whitespace changes
Inline
Side-by-side
client/node_modules/.cache/.eslintcache
View file @
e4f09cae
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/007828e935e1cbe708e0c0b2f93a87c9.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
App.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from
\"
react
\"
;
\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { library } from '@fortawesome/fontawesome-svg-core';
\n
import { fas } from '@fortawesome/free-solid-svg-icons';
\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"
;
\n
import
\"
./style.css
\"
;
\n
import config from
\"
./config
\"
; //Components
\n\n
import Login from
\"
./pages/login/Login
\"
;
\n
import Navbar from
\"
./components/navbar/Navbar
\"
;
\n
import Home from
\"
./pages/home/Home
\"
;
\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"
;
\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"
;
\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"
;
\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"
;
\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"
;
\n
import Messages from
\"
./pages/Messages/Messages
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n
library.add(fas);
\n
const oktaAuth = new OktaAuth(config.oidc);
\n
const CALLBACK_PATH = '/login/callback';
\n\n
const App = () => {
\n
_s();
\n\n
const history = useHistory();
\n
const {
\n
authState
\n
} = oktaAuth.isAuthenticated;
\n\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin));
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(Security, {
\n
oktaAuth: oktaAuth,
\n
restoreOriginalUri: restoreOriginalUri,
\n
children: [/*#__PURE__*/_jsxDEV(Navbar, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(Switch, {
\n
children: [/*#__PURE__*/_jsxDEV(Route, {
\n
exact: true,
\n
path:
\"
/
\"
,
\n
component: Login
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(Route, {
\n
path: CALLBACK_PATH,
\n
component: LoginCallback
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/home
\"
,
\n
component: Home
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/reportissue
\"
,
\n
component: ReportForm
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/projects
\"
,
\n
component: ProjectOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/ReactApp
\"
,
\n
component: ProjectInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/teams
\"
,
\n
component: TeamOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/HenriksMemeMachine
\"
,
\n
component: TeamInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/messages
\"
,
\n
component: Messages
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(App,
\"
9cZfZ04734qoCGIctmKX7+sX6eU=
\"
, false, function () {
\n
return [useHistory];
\n
});
\n\n
_c = App;
\n
export default App;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
App
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/App.jsx"
],
"names"
:[
"React"
,
"Route"
,
"Switch"
,
"useHistory"
,
"useOktaAuth"
,
"library"
,
"fas"
,
"OktaAuth"
,
"toRelativeUrl"
,
"Security"
,
"SecureRoute"
,
"LoginCallback"
,
"config"
,
"Login"
,
"Navbar"
,
"Home"
,
"ReportForm"
,
"ProjectOverview"
,
"ProjectInfo"
,
"TeamOverview"
,
"TeamInfo"
,
"Messages"
,
"add"
,
"oktaAuth"
,
"oidc"
,
"CALLBACK_PATH"
,
"App"
,
"history"
,
"authState"
,
"isAuthenticated"
,
"restoreOriginalUri"
,
"_oktaAuth"
,
"originalUri"
,
"replace"
,
"window"
,
"location"
,
"origin"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,EAAgBC,MAAhB,EAAwBC,UAAxB,QAA0C,kBAA1C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,SAASC,OAAT,QAAwB,mCAAxB;AACA,SAASC,GAAT,QAAoB,mCAApB;AACA,SAASC,QAAT,EAAmBC,aAAnB,QAAwC,oBAAxC;AACA,SAASC,QAAT,EAAmBC,WAAnB,EAAgCC,aAAhC,QAAqD,kBAArD;AACA,OAAO,aAAP;AACA,OAAOC,MAAP,MAAmB,UAAnB,C,CAEA;;AACA,OAAOC,KAAP,MAAkB,qBAAlB;AACA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,IAAP,MAAiB,mBAAjB;AACA,OAAOC,UAAP,MAAuB,+BAAvB;AACA,OAAOC,eAAP,MAA4B,iDAA5B;AACA,OAAOC,WAAP,MAAwB,yCAAxB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,QAAP,MAAqB,gCAArB;AACA,OAAOC,QAAP,MAAqB,2BAArB;;AAEAhB,OAAO,CAACiB,GAAR,CAAYhB,GAAZ;AAEA,MAAMiB,QAAQ,GAAG,IAAIhB,QAAJ,CAAaK,MAAM,CAACY,IAApB,CAAjB;AACA,MAAMC,aAAa,GAAG,iBAAtB;;AAEA,MAAMC,GAAG,GAAG,MAAM;AAAA;;AAChB,QAAMC,OAAO,GAAGxB,UAAU,EAA1B;AACA,QAAM;AAAEyB,IAAAA;AAAF,MAAgBL,QAAQ,CAACM,eAA/B;;AACA,QAAMC,kBAAkB,GAAG,OAAOC,SAAP,EAAkBC,WAAlB,KAAkC;AAC3DL,IAAAA,OAAO,CAACM,OAAR,CAAgBzB,aAAa,CAACwB,WAAW,IAAI,GAAhB,EAAqBE,MAAM,CAACC,QAAP,CAAgBC,MAArC,CAA7B;AACD,GAFD;;AAIA,sBACE,QAAC,QAAD;AAAU,IAAA,QAAQ,EAAEb,QAApB;AAA8B,IAAA,kBAAkB,EAAEO,kBAAlD;AAAA,4BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA,YADF,eAEE,QAAC,MAAD;AAAA,8BACE,QAAC,KAAD;AAAO,QAAA,KAAK,MAAZ;AAAa,QAAA,IAAI,EAAC,GAAlB;AAAsB,QAAA,SAAS,EAAEjB;AAAjC;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAO,QAAA,IAAI,EAAEY,aAAb;AAA4B,QAAA,SAAS,EAAEd;AAAvC;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,OAAlB;AAA0B,QAAA,SAAS,EAAEI;AAArC;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,cAAlB;AAAiC,QAAA,SAAS,EAAEC;AAA5C;AAAA;AAAA;AAAA;AAAA,cAJF,eAKE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cALF,eAME,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cANF,eAOE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,QAAlB;AAA2B,QAAA,SAAS,EAAEC;AAAtC;AAAA;AAAA;AAAA;AAAA,cAPF,eAQE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,qBAAlB;AAAwC,QAAA,SAAS,EAAEC;AAAnD;AAAA;AAAA;AAAA;AAAA,cARF,eASE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cATF;AAAA;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAvBD;;GAAMK,G;UACYvB,U;;;KADZuB,G;AAyBN,eAAeA,GAAf"
,
"sourcesContent"
:[
"import React from
\"
react
\"\r\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { library } from '@fortawesome/fontawesome-svg-core'
\r\n
import { fas } from '@fortawesome/free-solid-svg-icons'
\r\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\r\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"\r\n
import
\"
./style.css
\"\r\n
import config from
\"
./config
\"\r\n\r\n
//Components
\r\n
import Login from
\"
./pages/login/Login
\"\r\n
import Navbar from
\"
./components/navbar/Navbar
\"\r\n
import Home from
\"
./pages/home/Home
\"\r\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"\r\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"\r\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"\r\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"\r\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"\r\n
import Messages from
\"
./pages/Messages/Messages
\"\r\n\r\n
library.add(fas)
\r\n\r\n
const oktaAuth = new OktaAuth(config.oidc);
\r\n
const CALLBACK_PATH = '/login/callback';
\r\n\r\n
const App = () => {
\r\n
const history = useHistory()
\r\n
const { authState } = oktaAuth.isAuthenticated
\r\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\r\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin))
\r\n
}
\r\n\r\n
return (
\r\n
<Security oktaAuth={oktaAuth} restoreOriginalUri={restoreOriginalUri}>
\r\n
<Navbar />
\r\n
<Switch>
\r\n
<Route exact path=
\"
/
\"
component={Login} />
\r\n
<Route path={CALLBACK_PATH} component={LoginCallback} />
\r\n
<SecureRoute path=
\"
/home
\"
component={Home} />
\r\n
<SecureRoute path=
\"
/reportissue
\"
component={ReportForm} />
\r\n
<SecureRoute path=
\"
/projects
\"
component={ProjectOverview} />
\r\n
<SecureRoute path=
\"
/ReactApp
\"
component={ProjectInfo} />
\r\n
<SecureRoute path=
\"
/teams
\"
component={TeamOverview} />
\r\n
<SecureRoute path=
\"
/HenriksMemeMachine
\"
component={TeamInfo} />
\r\n
<SecureRoute path=
\"
/messages
\"
component={Messages} />
\r\n
</Switch>
\r\n
</Security>
\r\n
)
\r\n
}
\r\n\r\n
export default App"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0174b146845a88ddd4debd49f25b481c.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text-top
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link-bottom
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
item-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text-top
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Messages
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
item-icon
\"
,
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 102,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div className=
\"
item-text-top
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Account
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link-bottom
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</NavLink>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
item-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div className=
\"
item-text-top
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Messages
\r\n
</NavLink>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
item-icon
\"
icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
{/* <NavLink to=
\"
/messages
\"
>
\r\n
\r\n
</NavLink> */}
\r\n
</li>
\r\n\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
item-icon-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
{/* <a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a> */}
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/06382b1b91bad22f1457963dbc6aa31c.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
onClick: onClick,
\n
className:
\"
top-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<NavLink to=
\"
/account
\"
onClick={onClick} className=
\"
top-item
\"
>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
></FontAwesomeIcon>
\r\n
<span>
\r\n
<p>Account</p>
\r\n
<p>{userInfo ? userInfo.email :
\"
...
\"
}</p>
\r\n
</span>
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
onClick={onClick}>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/06bd9c8ffb70f08d3d5a4570d4e2e4a6.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
App.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from
\"
react
\"
;
\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { library } from '@fortawesome/fontawesome-svg-core';
\n
import { fas } from '@fortawesome/free-solid-svg-icons';
\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"
;
\n
import
\"
./style.css
\"
;
\n
import config from
\"
./config
\"
; //Components
\n\n
import Login from
\"
./pages/login/Login
\"
;
\n
import Navbar from
\"
./components/navbar/Navbar
\"
;
\n
import Home from
\"
./pages/home/Home
\"
;
\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"
;
\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"
;
\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"
;
\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"
;
\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"
;
\n
import Messages from
\"
./pages/Messages/Messages
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n
library.add(fas);
\n
const oktaAuth = new OktaAuth(config.oidc);
\n
const CALLBACK_PATH = '/login/callback';
\n\n
const App = () => {
\n
_s();
\n\n
const history = useHistory();
\n
const {
\n
authState
\n
} = oktaAuth.isAuthenticated;
\n\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin));
\n
};
\n\n
if (!authState) {
\n
console.log(
\"
Is logged in
\"
);
\n
}
\n\n
return /*#__PURE__*/_jsxDEV(Security, {
\n
oktaAuth: oktaAuth,
\n
restoreOriginalUri: restoreOriginalUri,
\n
children: [/*#__PURE__*/_jsxDEV(Navbar, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(Switch, {
\n
children: [/*#__PURE__*/_jsxDEV(Route, {
\n
path:
\"
/
\"
,
\n
exact: true,
\n
component: Login
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(Route, {
\n
path: CALLBACK_PATH,
\n
component: LoginCallback
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/home
\"
,
\n
component: Home
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/reportissue
\"
,
\n
component: ReportForm
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/projects
\"
,
\n
component: ProjectOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/ReactApp
\"
,
\n
component: ProjectInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/teams
\"
,
\n
component: TeamOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/HenriksMemeMachine
\"
,
\n
component: TeamInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/messages
\"
,
\n
component: Messages
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(App,
\"
9cZfZ04734qoCGIctmKX7+sX6eU=
\"
, false, function () {
\n
return [useHistory];
\n
});
\n\n
_c = App;
\n
export default App;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
App
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/App.jsx"
],
"names"
:[
"React"
,
"Route"
,
"Switch"
,
"useHistory"
,
"useOktaAuth"
,
"library"
,
"fas"
,
"OktaAuth"
,
"toRelativeUrl"
,
"Security"
,
"SecureRoute"
,
"LoginCallback"
,
"config"
,
"Login"
,
"Navbar"
,
"Home"
,
"ReportForm"
,
"ProjectOverview"
,
"ProjectInfo"
,
"TeamOverview"
,
"TeamInfo"
,
"Messages"
,
"add"
,
"oktaAuth"
,
"oidc"
,
"CALLBACK_PATH"
,
"App"
,
"history"
,
"authState"
,
"isAuthenticated"
,
"restoreOriginalUri"
,
"_oktaAuth"
,
"originalUri"
,
"replace"
,
"window"
,
"location"
,
"origin"
,
"console"
,
"log"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,EAAgBC,MAAhB,EAAwBC,UAAxB,QAA0C,kBAA1C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,SAASC,OAAT,QAAwB,mCAAxB;AACA,SAASC,GAAT,QAAoB,mCAApB;AACA,SAASC,QAAT,EAAmBC,aAAnB,QAAwC,oBAAxC;AACA,SAASC,QAAT,EAAmBC,WAAnB,EAAgCC,aAAhC,QAAqD,kBAArD;AACA,OAAO,aAAP;AACA,OAAOC,MAAP,MAAmB,UAAnB,C,CAEA;;AACA,OAAOC,KAAP,MAAkB,qBAAlB;AACA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,IAAP,MAAiB,mBAAjB;AACA,OAAOC,UAAP,MAAuB,+BAAvB;AACA,OAAOC,eAAP,MAA4B,iDAA5B;AACA,OAAOC,WAAP,MAAwB,yCAAxB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,QAAP,MAAqB,gCAArB;AACA,OAAOC,QAAP,MAAqB,2BAArB;;AAEAhB,OAAO,CAACiB,GAAR,CAAYhB,GAAZ;AAEA,MAAMiB,QAAQ,GAAG,IAAIhB,QAAJ,CAAaK,MAAM,CAACY,IAApB,CAAjB;AACA,MAAMC,aAAa,GAAG,iBAAtB;;AAEA,MAAMC,GAAG,GAAG,MAAM;AAAA;;AAChB,QAAMC,OAAO,GAAGxB,UAAU,EAA1B;AACA,QAAM;AAAEyB,IAAAA;AAAF,MAAgBL,QAAQ,CAACM,eAA/B;;AACA,QAAMC,kBAAkB,GAAG,OAAOC,SAAP,EAAkBC,WAAlB,KAAkC;AAC3DL,IAAAA,OAAO,CAACM,OAAR,CAAgBzB,aAAa,CAACwB,WAAW,IAAI,GAAhB,EAAqBE,MAAM,CAACC,QAAP,CAAgBC,MAArC,CAA7B;AACD,GAFD;;AAIA,MAAI,CAACR,SAAL,EAAgB;AACdS,IAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ;AACD;;AAED,sBACE,QAAC,QAAD;AAAU,IAAA,QAAQ,EAAEf,QAApB;AAA8B,IAAA,kBAAkB,EAAEO,kBAAlD;AAAA,4BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA,YADF,eAEE,QAAC,MAAD;AAAA,8BACE,QAAC,KAAD;AAAO,QAAA,IAAI,EAAC,GAAZ;AAAgB,QAAA,KAAK,MAArB;AAAsB,QAAA,SAAS,EAAEjB;AAAjC;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAO,QAAA,IAAI,EAAEY,aAAb;AAA4B,QAAA,SAAS,EAAEd;AAAvC;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,OAAlB;AAA0B,QAAA,SAAS,EAAEI;AAArC;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,cAAlB;AAAiC,QAAA,SAAS,EAAEC;AAA5C;AAAA;AAAA;AAAA;AAAA,cAJF,eAKE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cALF,eAME,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cANF,eAOE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,QAAlB;AAA2B,QAAA,SAAS,EAAEC;AAAtC;AAAA;AAAA;AAAA;AAAA,cAPF,eAQE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,qBAAlB;AAAwC,QAAA,SAAS,EAAEC;AAAnD;AAAA;AAAA;AAAA;AAAA,cARF,eASE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cATF;AAAA;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CA3BD;;GAAMK,G;UACYvB,U;;;KADZuB,G;AA6BN,eAAeA,GAAf"
,
"sourcesContent"
:[
"import React from
\"
react
\"\r\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { library } from '@fortawesome/fontawesome-svg-core'
\r\n
import { fas } from '@fortawesome/free-solid-svg-icons'
\r\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\r\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"\r\n
import
\"
./style.css
\"\r\n
import config from
\"
./config
\"\r\n\r\n
//Components
\r\n
import Login from
\"
./pages/login/Login
\"\r\n
import Navbar from
\"
./components/navbar/Navbar
\"\r\n
import Home from
\"
./pages/home/Home
\"\r\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"\r\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"\r\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"\r\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"\r\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"\r\n
import Messages from
\"
./pages/Messages/Messages
\"\r\n\r\n
library.add(fas)
\r\n\r\n
const oktaAuth = new OktaAuth(config.oidc);
\r\n
const CALLBACK_PATH = '/login/callback';
\r\n\r\n
const App = () => {
\r\n
const history = useHistory()
\r\n
const { authState } = oktaAuth.isAuthenticated
\r\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\r\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin))
\r\n
}
\r\n\r\n
if (!authState) {
\r\n
console.log(
\"
Is logged in
\"
)
\r\n
}
\r\n\r\n
return (
\r\n
<Security oktaAuth={oktaAuth} restoreOriginalUri={restoreOriginalUri}>
\r\n
<Navbar />
\r\n
<Switch>
\r\n
<Route path=
\"
/
\"
exact component={Login} />
\r\n
<Route path={CALLBACK_PATH} component={LoginCallback} />
\r\n
<SecureRoute path=
\"
/home
\"
component={Home} />
\r\n
<SecureRoute path=
\"
/reportissue
\"
component={ReportForm} />
\r\n
<SecureRoute path=
\"
/projects
\"
component={ProjectOverview} />
\r\n
<SecureRoute path=
\"
/ReactApp
\"
component={ProjectInfo} />
\r\n
<SecureRoute path=
\"
/teams
\"
component={TeamOverview} />
\r\n
<SecureRoute path=
\"
/HenriksMemeMachine
\"
component={TeamInfo} />
\r\n
<SecureRoute path=
\"
/messages
\"
component={Messages} />
\r\n
</Switch>
\r\n
</Security>
\r\n
)
\r\n
}
\r\n\r\n
export default App"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0988dcb328ce6132101066cf9d1ee383.json
0 → 100644
View file @
e4f09cae
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/0b12bda3b6f9096e5f27733276f8ef2e.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text-top
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link-bottom
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
item-icon-top
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Messages
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
item-icon
\"
,
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 102,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,MAAhB,EAAwBC,QAAxB,EAAkCC,SAAlC,QAAmD,OAAnD;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,0BAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;;;AAGA,MAAMC,YAAY,GAAG,MAAM;AAAA;;AACzB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BT,QAAQ,CAAC,IAAD,CAAxC;AAEA,QAAMU,WAAW,GAAGX,MAAM,CAAC,IAAD,CAA1B;AACA,QAAM,CAACY,QAAD,EAAWC,WAAX,IAA0BZ,QAAQ,CAAC,KAAD,CAAxC;;AACA,QAAMa,OAAO,GAAG,MAAMD,WAAW,CAAC,CAACD,QAAF,CAAjC;;AAEAV,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMa,cAAc,GAAIC,CAAD,IAAO;AAC5B,UAAIL,WAAW,CAACM,OAAZ,KAAwB,IAAxB,IAAgC,CAACN,WAAW,CAACM,OAAZ,CAAoBC,QAApB,CAA6BF,CAAC,CAACG,MAA/B,CAArC,EAA6E;AAC3EN,QAAAA,WAAW,CAAC,CAACD,QAAF,CAAX;AACD;AACF,KAJD,CADc,CAOd;;;AACA,QAAIA,QAAJ,EAAc;AACZQ,MAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCN,cAAjC;AACD;;AAED,WAAO,MAAM;AACXK,MAAAA,MAAM,CAACE,mBAAP,CAA2B,OAA3B,EAAoCP,cAApC;AACD,KAFD;AAID,GAhBQ,EAgBN,CAACH,QAAD,CAhBM,CAAT;AAkBAV,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACK,SAAS,CAACgB,eAAf,EAAgC;AAC9B;AACAb,MAAAA,WAAW,CAAC,IAAD,CAAX;AACD,KAHD,MAGO;AACLF,MAAAA,QAAQ,CAACgB,OAAT,GAAmBC,IAAnB,CAAwBC,IAAI,IAAI;AAC9BhB,QAAAA,WAAW,CAACgB,IAAD,CAAX;AACD,OAFD;AAGD;AACF,GATQ,EASN,CAACnB,SAAD,EAAYC,QAAZ,CATM,CAAT,CA1ByB,CAmCE;;AAE3B,QAAMmB,MAAM,GAAG,MAAM;AACnBnB,IAAAA,QAAQ,CAACoB,OAAT;AACD,GAFD;;AAIA,sBACE;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,gCAAf;AAAA,8BACE;AAAQ,QAAA,SAAS,EAAG,oCAAmChB,QAAQ,GAAG,QAAH,GAAc,UAAW,EAAxF;AAA2F,QAAA,OAAO,EAAEE,OAApG;AAAA,gCACE,QAAC,eAAD;AAAiB,UAAA,SAAS,EAAC,WAA3B;AAAuC,UAAA,IAAI,EAAC;AAA5C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE,QAAC,eAAD;AAAiB,UAAA,SAAS,EAAC,YAA3B;AAAwC,UAAA,IAAI,EAAC;AAA7C;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAME;AAAK,QAAA,GAAG,EAAEH,WAAV;AAAuB,QAAA,SAAS,EAAG,8BAA6BC,QAAQ,GAAG,QAAH,GAAc,UAAW,EAAjG;AAAA,+BACE;AAAA,kCAEE;AAAA,mCACE;AAAK,cAAA,SAAS,EAAC,WAAf;AAAA,sCACE;AAAK,gBAAA,SAAS,EAAC,eAAf;AAAA,wCACE;AAAK,kBAAA,SAAS,EAAC,WAAf;AAAA,yCACE,QAAC,OAAD;AAAS,oBAAA,EAAE,EAAC,UAAZ;AAAuB,oBAAA,SAAS,EAAC,gBAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,wBADF,eAME;AAAK,kBAAA,SAAS,EAAC,YAAf;AAAA,yCACE,QAAC,OAAD;AAAS,oBAAA,EAAE,EAAC,UAAZ;AAAuB,oBAAA,SAAS,EAAC,uBAAjC;AAAA,8BACGH,QAAQ,GAAGA,QAAQ,CAACoB,KAAZ,GAAoB;AAD/B;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,wBANF;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAaE;AAAA,uCACE,QAAC,eAAD;AAAiB,kBAAA,SAAS,EAAC,eAA3B;AAA2C,kBAAA,IAAI,EAAC;AAAhD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,sBAbF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAFF,eAsBE;AAAA,mCACE;AAAK,cAAA,SAAS,EAAC,WAAf;AAAA,sCACE;AAAK,gBAAA,SAAS,EAAC,WAAf;AAAA,uCACE,QAAC,OAAD;AAAS,kBAAA,EAAE,EAAC,UAAZ;AAAuB,kBAAA,SAAS,EAAC,gBAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,sBADF,eAME;AAAA,uCACE,QAAC,eAAD;AAAiB,kBAAA,SAAS,EAAC,WAA3B;AAAuC,kBAAA,IAAI,EAAC;AAA5C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,sBANF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAtBF,eA4CE;AAAA;AAAA;AAAA;AAAA,kBA5CF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cANF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AA+DD,CAxGD;;GAAMvB,Y;UAC4BF,W;;;KAD5BE,Y;AA0GN,eAAeA,YAAf"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div className=
\"
item-text-top
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Account
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link-bottom
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</NavLink>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
item-icon-top
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div className=
\"
item-text
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Messages
\r\n
</NavLink>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
item-icon
\"
icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
{/* <NavLink to=
\"
/messages
\"
>
\r\n
\r\n
</NavLink> */}
\r\n
</li>
\r\n\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
item-icon-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
{/* <a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a> */}
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0bf9d43066bed95ce82ef08e30ffa8f3.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountLink
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right-icon-top
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<div >
\r\n
<NavLink to=
\"
/account
\"
>
\r\n
<div className=
\"
accountLink
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
Account
\r\n
</div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right-icon-top
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</div>
\r\n
</div>
\r\n
</NavLink>
\r\n
</div>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0c1a79704ab03d5eeb561659893f0a1c.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountLink
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<div >
\r\n
<NavLink to=
\"
/account
\"
>
\r\n
<div className=
\"
accountLink
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
Account
\r\n\r\n
</div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</div>
\r\n
</div>
\r\n
</NavLink>
\r\n
</div>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0c318209fafc4e6f9ec8ac0574e3d129.json
0 → 100644
View file @
e4f09cae
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/0de4f17ee74923a0a3714d7588fae4a9.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
navbar
\\\\
Navbar.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./Navbar.css
\"
;
\n
import Logo from './logo/Logo';
\n
import NavLinks from './navLinks/NavLinks';
\n
import Searchbar from './searchbar/Searchbar';
\n
import NavbarDropdownMenu from './dropdownMenu/NavbarDropdownMenu';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Navbar = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n\n
if (!authState || !authState.isAuthenticated) {
\n
return null;
\n
}
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-content
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
title-navigation-links-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(Logo, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(NavLinks, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
searchbar-profile-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
className:
\"
right-unstyled-navbar
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(Searchbar, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 25,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(NavbarDropdownMenu, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 17,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Navbar,
\"
XFnfjrqktn2GIu+f3Siekv/ekaU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Navbar;
\n
export default Navbar;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Navbar
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/navbar/Navbar.jsx"
],
"names"
:[
"React"
,
"useOktaAuth"
,
"Logo"
,
"NavLinks"
,
"Searchbar"
,
"NavbarDropdownMenu"
,
"Navbar"
,
"authState"
,
"oktaAuth"
,
"isAuthenticated"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,cAAP;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,kBAAP,MAA+B,mCAA/B;;;AAEA,MAAMC,MAAM,GAAG,MAAM;AAAA;;AACnB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BP,WAAW,EAA3C;;AAEA,MAAI,CAACM,SAAD,IAAc,CAACA,SAAS,CAACE,eAA7B,EAA8C;AAC5C,WAAO,IAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAC,QAAf;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,kCAAf;AAAA,gCACE,QAAC,IAAD;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAKE;AAAK,QAAA,SAAS,EAAC,6BAAf;AAAA,+BACE;AAAI,UAAA,SAAS,EAAC,uBAAd;AAAA,kCACE,QAAC,SAAD;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE,QAAC,kBAAD;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cALF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAvBD;;GAAMH,M;UAC4BL,W;;;KAD5BK,M;AAyBN,eAAeA,MAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./Navbar.css
\"\r\n
import Logo from './logo/Logo'
\r\n
import NavLinks from './navLinks/NavLinks'
\r\n
import Searchbar from './searchbar/Searchbar'
\r\n
import NavbarDropdownMenu from './dropdownMenu/NavbarDropdownMenu'
\r\n\r\n
const Navbar = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n\r\n
if (!authState || !authState.isAuthenticated) {
\r\n
return null;
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
navbar
\"
>
\r\n
<div className=
\"
header-content
\"
>
\r\n
<div className=
\"
title-navigation-links-container
\"
>
\r\n
<Logo />
\r\n
<NavLinks />
\r\n
</div>
\r\n
<div className=
\"
searchbar-profile-container
\"
>
\r\n
<ul className=
\"
right-unstyled-navbar
\"
>
\r\n
<Searchbar />
\r\n
<NavbarDropdownMenu />
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default Navbar"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/0f290eb3afefd122bcdbc775627faa32.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
pages
\\\\
project
\\\\
projectInfo
\\\\
activitiesDisplay
\\\\
ActivitiesDisplay.jsx
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import React from 'react';
\n
import
\"
./ActivitiesDisplay.css
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ActivitiesDisplay = () => {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
activity-new-issues-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issues-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issues-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
inbox
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0New issue reports
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issues-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issue-report-entry
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
entry-text
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children:
\"
[Severity] [type]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children:
\"
[project] [time]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 25,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
entry-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 17,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 9,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
activity-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
activity-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sticky-note
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0Recent Team activities
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
activity-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issue-report-entry
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
entry-text
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children:
\"
[Name] [action]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children:
\"
[project] [time]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
entry-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 7,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = ActivitiesDisplay;
\n
export default ActivitiesDisplay;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ActivitiesDisplay
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/project/projectInfo/activitiesDisplay/ActivitiesDisplay.jsx"
],
"names"
:[
"FontAwesomeIcon"
,
"React"
,
"ActivitiesDisplay"
],
"mappings"
:
";AAAA,SAASA,eAAT,QAAgC,gCAAhC;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAO,yBAAP;;;AAEA,MAAMC,iBAAiB,GAAG,MAAM;AAC9B,sBACE;AAAK,IAAA,SAAS,EAAC,uCAAf;AAAA,4BAEE;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,2BAAf;AAAA,+BACE;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cADF,eAOE;AAAK,QAAA,SAAS,EAAC,4BAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,wBAAf;AAAA,kCACE;AAAK,YAAA,SAAS,EAAC,YAAf;AAAA,oCACE;AAAK,cAAA,SAAS,EAAC,WAAf;AAAA,qCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,oBADF,eAME;AAAK,cAAA,SAAS,EAAC,YAAf;AAAA,qCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,oBANF;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF,eAaE;AAAA,mCACE,QAAC,eAAD;AAAiB,cAAA,SAAS,EAAC,YAA3B;AAAwC,cAAA,IAAI,EAAC;AAA7C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAbF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAPF;AAAA;AAAA;AAAA;AAAA;AAAA,YAFF,eA8BE;AAAK,MAAA,SAAS,EAAC,4BAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,yBAAf;AAAA,+BACE;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cADF,eAOE;AAAK,QAAA,SAAS,EAAC,0BAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,wBAAf;AAAA,kCACE;AAAK,YAAA,SAAS,EAAC,YAAf;AAAA,oCACE;AAAK,cAAA,SAAS,EAAC,WAAf;AAAA,qCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,oBADF,eAME;AAAK,cAAA,SAAS,EAAC,YAAf;AAAA,qCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,oBANF;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF,eAaE;AAAA,mCACE,QAAC,eAAD;AAAiB,cAAA,SAAS,EAAC,YAA3B;AAAwC,cAAA,IAAI,EAAC;AAA7C;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAbF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAPF;AAAA;AAAA;AAAA;AAAA;AAAA,YA9BF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA4DD,CA7DD;;KAAMA,iB;AA+DN,eAAeA,iBAAf"
,
"sourcesContent"
:[
"import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import React from 'react'
\r\n
import
\"
./ActivitiesDisplay.css
\"\r\n\r\n
const ActivitiesDisplay = () => {
\r\n
return (
\r\n
<div className=
\"
activity-new-issues-display-container
\"
>
\r\n\r\n
<div className=
\"
new-issues-display-container
\"
>
\r\n
<div className=
\"
new-issues-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
inbox
\"
></FontAwesomeIcon>
\r\n
New issue reports
\r\n
</p>
\r\n
</div>
\r\n
<div className=
\"
new-issues-display-content
\"
>
\r\n
<div className=
\"
new-issue-report-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[Severity] [type]
\r\n
</a>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<a>
\r\n
[project] [time]
\r\n
</a>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
entry-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n\r\n
<div className=
\"
activity-display-container
\"
>
\r\n
<div className=
\"
activity-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
sticky-note
\"
></FontAwesomeIcon>
\r\n
Recent Team activities
\r\n
</p>
\r\n
</div>
\r\n
<div className=
\"
activity-display-content
\"
>
\r\n
<div className=
\"
new-issue-report-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[Name] [action]
\r\n
</a>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<a>
\r\n
[project] [time]
\r\n
</a>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
entry-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ActivitiesDisplay"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/13b20cfe8babf8ff695871020d7c3e13.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
accountLink
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<div >
\r\n
<NavLink to=
\"
/account
\"
>
\r\n
<div className=
\"
accountLink
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
Account
\r\n
</div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</div>
\r\n
</div>
\r\n
</NavLink>
\r\n
</div>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1658ed7b020299a5e39b827ac7fa8ee2.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Account
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
K/H+pngTJ7UqSrk/MkDOYkpAmdU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"logout"
,
"signOut"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<NavLink to=
\"
/account
\"
>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
></FontAwesomeIcon> Account
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1706d46f1c6bc1a9a6d670a04a52513b.json
0 → 100644
View file @
e4f09cae
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/199de0fffad5f8f731f2f7d0dd83bda7.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
App.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from
\"
react
\"
;
\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import { library } from '@fortawesome/fontawesome-svg-core';
\n
import { fas } from '@fortawesome/free-solid-svg-icons';
\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"
;
\n
import
\"
./style.css
\"
;
\n
import config from
\"
./config
\"
; //Components
\n\n
import Login from
\"
./pages/login/Login
\"
;
\n
import Navbar from
\"
./components/navbar/Navbar
\"
;
\n
import Home from
\"
./pages/home/Home
\"
;
\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"
;
\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"
;
\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"
;
\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"
;
\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"
;
\n
import Messages from
\"
./pages/Messages/Messages
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n
library.add(fas);
\n
const oktaAuth = new OktaAuth(config.oidc);
\n
const CALLBACK_PATH = '/login/callback';
\n\n
const App = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const history = useHistory();
\n\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin));
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(Security, {
\n
oktaAuth: oktaAuth,
\n
restoreOriginalUri: restoreOriginalUri,
\n
children: [/*#__PURE__*/_jsxDEV(Navbar, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(Switch, {
\n
children: [/*#__PURE__*/_jsxDEV(Route, {
\n
path:
\"
/
\"
,
\n
exact: true,
\n
component: !authState.isAuthenticated ? Login : Home
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(Route, {
\n
path: CALLBACK_PATH,
\n
component: LoginCallback
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/home
\"
,
\n
component: Home
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/reportissue
\"
,
\n
component: ReportForm
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/projects
\"
,
\n
component: ProjectOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/ReactApp
\"
,
\n
component: ProjectInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/teams
\"
,
\n
component: TeamOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/HenriksMemeMachine
\"
,
\n
component: TeamInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/messages
\"
,
\n
component: Messages
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(App,
\"
gN2vl07t+HjO0zaRWUqe1tMASe8=
\"
, false, function () {
\n
return [useOktaAuth, useHistory];
\n
});
\n\n
_c = App;
\n
export default App;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
App
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/App.jsx"
],
"names"
:[
"React"
,
"Route"
,
"Switch"
,
"useHistory"
,
"useOktaAuth"
,
"library"
,
"fas"
,
"OktaAuth"
,
"toRelativeUrl"
,
"Security"
,
"SecureRoute"
,
"LoginCallback"
,
"config"
,
"Login"
,
"Navbar"
,
"Home"
,
"ReportForm"
,
"ProjectOverview"
,
"ProjectInfo"
,
"TeamOverview"
,
"TeamInfo"
,
"Messages"
,
"add"
,
"oktaAuth"
,
"oidc"
,
"CALLBACK_PATH"
,
"App"
,
"authState"
,
"history"
,
"restoreOriginalUri"
,
"_oktaAuth"
,
"originalUri"
,
"replace"
,
"window"
,
"location"
,
"origin"
,
"isAuthenticated"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,EAAgBC,MAAhB,EAAwBC,UAAxB,QAA0C,kBAA1C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,SAASC,OAAT,QAAwB,mCAAxB;AACA,SAASC,GAAT,QAAoB,mCAApB;AACA,SAASC,QAAT,EAAmBC,aAAnB,QAAwC,oBAAxC;AACA,SAASC,QAAT,EAAmBC,WAAnB,EAAgCC,aAAhC,QAAqD,kBAArD;AACA,OAAO,aAAP;AACA,OAAOC,MAAP,MAAmB,UAAnB,C,CAEA;;AACA,OAAOC,KAAP,MAAkB,qBAAlB;AACA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,IAAP,MAAiB,mBAAjB;AACA,OAAOC,UAAP,MAAuB,+BAAvB;AACA,OAAOC,eAAP,MAA4B,iDAA5B;AACA,OAAOC,WAAP,MAAwB,yCAAxB;AACA,OAAOC,YAAP,MAAyB,wCAAzB;AACA,OAAOC,QAAP,MAAqB,gCAArB;AACA,OAAOC,QAAP,MAAqB,2BAArB;;AAEAhB,OAAO,CAACiB,GAAR,CAAYhB,GAAZ;AAEA,MAAMiB,QAAQ,GAAG,IAAIhB,QAAJ,CAAaK,MAAM,CAACY,IAApB,CAAjB;AACA,MAAMC,aAAa,GAAG,iBAAtB;;AAEA,MAAMC,GAAG,GAAG,MAAM;AAAA;;AAChB,QAAM;AAAEC,IAAAA,SAAF;AAAaJ,IAAAA;AAAb,MAA0BnB,WAAW,EAA3C;AACA,QAAMwB,OAAO,GAAGzB,UAAU,EAA1B;;AACA,QAAM0B,kBAAkB,GAAG,OAAOC,SAAP,EAAkBC,WAAlB,KAAkC;AAC3DH,IAAAA,OAAO,CAACI,OAAR,CAAgBxB,aAAa,CAACuB,WAAW,IAAI,GAAhB,EAAqBE,MAAM,CAACC,QAAP,CAAgBC,MAArC,CAA7B;AACD,GAFD;;AAIA,sBACE,QAAC,QAAD;AAAU,IAAA,QAAQ,EAAEZ,QAApB;AAA8B,IAAA,kBAAkB,EAAEM,kBAAlD;AAAA,4BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA,YADF,eAEE,QAAC,MAAD;AAAA,8BACE,QAAC,KAAD;AAAO,QAAA,IAAI,EAAC,GAAZ;AAAgB,QAAA,KAAK,MAArB;AAAsB,QAAA,SAAS,EAAE,CAACF,SAAS,CAACS,eAAX,GAA6BvB,KAA7B,GAAqCE;AAAtE;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,KAAD;AAAO,QAAA,IAAI,EAAEU,aAAb;AAA4B,QAAA,SAAS,EAAEd;AAAvC;AAAA;AAAA;AAAA;AAAA,cAFF,eAGE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,OAAlB;AAA0B,QAAA,SAAS,EAAEI;AAArC;AAAA;AAAA;AAAA;AAAA,cAHF,eAIE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,cAAlB;AAAiC,QAAA,SAAS,EAAEC;AAA5C;AAAA;AAAA;AAAA;AAAA,cAJF,eAKE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cALF,eAME,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cANF,eAOE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,QAAlB;AAA2B,QAAA,SAAS,EAAEC;AAAtC;AAAA;AAAA;AAAA;AAAA,cAPF,eAQE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,qBAAlB;AAAwC,QAAA,SAAS,EAAEC;AAAnD;AAAA;AAAA;AAAA;AAAA,cARF,eASE,QAAC,WAAD;AAAa,QAAA,IAAI,EAAC,WAAlB;AAA8B,QAAA,SAAS,EAAEC;AAAzC;AAAA;AAAA;AAAA;AAAA,cATF;AAAA;AAAA;AAAA;AAAA;AAAA,YAFF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAvBD;;GAAMK,G;UAC4BtB,W,EAChBD,U;;;KAFZuB,G;AAyBN,eAAeA,GAAf"
,
"sourcesContent"
:[
"import React from
\"
react
\"\r\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import { library } from '@fortawesome/fontawesome-svg-core'
\r\n
import { fas } from '@fortawesome/free-solid-svg-icons'
\r\n
import { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';
\r\n
import { Security, SecureRoute, LoginCallback } from
\"
@okta/okta-react
\"\r\n
import
\"
./style.css
\"\r\n
import config from
\"
./config
\"\r\n\r\n
//Components
\r\n
import Login from
\"
./pages/login/Login
\"\r\n
import Navbar from
\"
./components/navbar/Navbar
\"\r\n
import Home from
\"
./pages/home/Home
\"\r\n
import ReportForm from
\"
./pages/reportForm/ReportForm
\"\r\n
import ProjectOverview from
\"
./pages/project/projectOverview/ProjectOverview
\"\r\n
import ProjectInfo from
\"
./pages/project/projectInfo/ProjectInfo
\"\r\n
import TeamOverview from
\"
./pages/team/teamOverview/TeamOverview
\"\r\n
import TeamInfo from
\"
./pages/team/teamInfo/TeamInfo
\"\r\n
import Messages from
\"
./pages/Messages/Messages
\"\r\n\r\n
library.add(fas)
\r\n\r\n
const oktaAuth = new OktaAuth(config.oidc);
\r\n
const CALLBACK_PATH = '/login/callback';
\r\n\r\n
const App = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const history = useHistory()
\r\n
const restoreOriginalUri = async (_oktaAuth, originalUri) => {
\r\n
history.replace(toRelativeUrl(originalUri || '/', window.location.origin))
\r\n
}
\r\n\r\n
return (
\r\n
<Security oktaAuth={oktaAuth} restoreOriginalUri={restoreOriginalUri}>
\r\n
<Navbar />
\r\n
<Switch>
\r\n
<Route path=
\"
/
\"
exact component={!authState.isAuthenticated ? Login : Home} />
\r\n
<Route path={CALLBACK_PATH} component={LoginCallback} />
\r\n
<SecureRoute path=
\"
/home
\"
component={Home} />
\r\n
<SecureRoute path=
\"
/reportissue
\"
component={ReportForm} />
\r\n
<SecureRoute path=
\"
/projects
\"
component={ProjectOverview} />
\r\n
<SecureRoute path=
\"
/ReactApp
\"
component={ProjectInfo} />
\r\n
<SecureRoute path=
\"
/teams
\"
component={TeamOverview} />
\r\n
<SecureRoute path=
\"
/HenriksMemeMachine
\"
component={TeamInfo} />
\r\n
<SecureRoute path=
\"
/messages
\"
component={Messages} />
\r\n
</Switch>
\r\n
</Security>
\r\n
)
\r\n
}
\r\n\r\n
export default App"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1bdc5d42bc72bdf64b57692e983c278d.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link-bottom
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
menu-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"
,
\n
className:
\"
item-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 85,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-text
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link
\"
,
\n
children:
\"
Messages
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
menu-item-link-bottom
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 95,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 94,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 101,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 100,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 115,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
<div className=
\"
item-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Account
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link-bottom
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</NavLink>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n\r\n
<li>
\r\n
<div className=
\"
menu-item
\"
>
\r\n
<div>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
className=
\"
item-icon
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
<div className=
\"
item-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link
\"
>
\r\n
Messages
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
className=
\"
menu-item-link-bottom
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</NavLink>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</div>
\r\n
{/* <NavLink to=
\"
/messages
\"
>
\r\n
\r\n
</NavLink> */}
\r\n
</li>
\r\n\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
{/* <a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a> */}
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1c0bad641860c9a16bdfafd7bbd5e3d8.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
onClick: onClick,
\n
className:
\"
top-item
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"
,
\n
className:
\"
arrow-right-icon-top
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this),
\"\\
xA0
\\
xA0
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
item-top-text
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
arrow-right-icon-top
\"
,
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 70,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 87,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<NavLink to=
\"
/account
\"
onClick={onClick} className=
\"
top-item
\"
>
\r\n
<div>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
className=
\"
arrow-right-icon-top
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
<div className=
\"
item-top-text
\"
>
\r\n
<span>
\r\n
<p>Account</p>
\r\n
<p>{userInfo ? userInfo.email :
\"
...
\"
}</p>
\r\n
</span>
\r\n
</div>
\r\n
<div className=
\"
arrow-right-icon-top
\"
>
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</NavLink>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
onClick={onClick}>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1d360a2d68824251424ffc53467dbfff.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
className:
\"
accountLink
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children:
\"
Account
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: userInfo ? userInfo.email :
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
arrow-right-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 71,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\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, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 77,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 91,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
,
"email"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<div >
\r\n
<NavLink to=
\"
/account
\"
className=
\"
accountLink
\"
>
\r\n
<div >
\r\n
<div className=
\"
upper-row
\"
>
\r\n
Account
\r\n
</div>
\r\n\r\n
<div className=
\"
bottom-row
\"
>
\r\n
{userInfo ? userInfo.email :
\"
...
\"
}
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
arrow-right-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</NavLink>
\r\n
</div>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/1e6b0f147c2593c6f30f37e752f51f3c.json
0 → 100644
View file @
e4f09cae
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [userInfo, setUserInfo] = useState(null);
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
useEffect(() => {
\n
if (!authState.isAuthenticated) {
\n
// When user isn't authenticated, forget any user info
\n
setUserInfo(null);
\n
} else {
\n
oktaAuth.getUser().then(info => {
\n
setUserInfo(info);
\n
});
\n
}
\n
}, [authState, oktaAuth]); // Update if authState changes
\n\n
const logout = () => {
\n
oktaAuth.signOut();
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
entry-text
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
upper-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/account
\"
,
\n
children:
\"
[project] [new issues] [issues fixed]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 61,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
bottom-row
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children:
\"
[team] [time]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
entry-icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 72,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\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)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 90,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 89,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 88,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
fSJPYre4v1rGcIZdck7wMJJU1dU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"userInfo"
,
"setUserInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"isAuthenticated"
,
"getUser"
,
"then"
,
"info"
,
"logout"
,
"signOut"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\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
}, [isActive]);
\r\n\r\n
useEffect(() => {
\r\n
if (!authState.isAuthenticated) {
\r\n
// When user isn't authenticated, forget any user info
\r\n
setUserInfo(null);
\r\n
} else {
\r\n
oktaAuth.getUser().then(info => {
\r\n
setUserInfo(info);
\r\n
});
\r\n
}
\r\n
}, [authState, oktaAuth]); // Update if authState changes
\r\n\r\n
const logout = () => {
\r\n
oktaAuth.signOut()
\r\n
}
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<NavLink to=
\"
/account
\"
>
\r\n
[project] [new issues] [issues fixed]
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
bottom-row
\"
>
\r\n
<a>
\r\n
[team] [time]
\r\n
</a>
\r\n
</div>
\r\n
</div>
\r\n
<div>
\r\n
<FontAwesomeIcon className=
\"
entry-icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</div>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
{/* <li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li> */}
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"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
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment