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
d8a97120
Commit
d8a97120
authored
Aug 11, 2021
by
Mathias Engelbrecht Pilegård
Browse files
added ability to fetch messages from web-api utilizing custom hook
parent
c04cf67d
Changes
75
Expand all
Hide whitespace changes
Inline
Side-by-side
client/node_modules/.cache/.eslintcache
View file @
d8a97120
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/0bc744eec084135d8544ad41d7bd3854.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
navLinks
\\\\
NavLinks.jsx
\"
;
\n
import React from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import
\"
./NavLinks.css
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const NavLinks = () => {
\n
return /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
className:
\"
left-unstyled-navbar
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
report-bug-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/reportissue
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Report issues
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 9,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 8,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
manage-projects-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/projects
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Projects
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
className:
\"
manage-team-navbutton-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/teams
\"
,
\n
activeClassName:
\"
activeUnderlined
\"
,
\n
children:
\"
Teams
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 7,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = NavLinks;
\n
export default NavLinks;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
NavLinks
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/navLinks/NavLinks.jsx"
],
"names"
:[
"React"
,
"NavLink"
,
"NavLinks"
],
"mappings"
:
";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,gBAAP;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AACrB,sBACE;AAAI,IAAA,SAAS,EAAC,sBAAd;AAAA,4BACE;AAAI,MAAA,SAAS,EAAC,gCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAA2B,QAAA,eAAe,EAAC,kBAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF,eAIE;AAAI,MAAA,SAAS,EAAC,qCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,WAAZ;AAAwB,QAAA,eAAe,EAAC,kBAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAJF,eAOE;AAAI,MAAA,SAAS,EAAC,iCAAd;AAAA,6BACE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,QAAZ;AAAqB,QAAA,eAAe,EAAC,kBAArC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAPF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAaD,CAdD;;KAAMA,Q;AAgBN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import
\"
./NavLinks.css
\"\r\n\r\n
const NavLinks = () => {
\r\n
return (
\r\n
<ul className=
\"
left-unstyled-navbar
\"
>
\r\n
<li className=
\"
report-bug-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/reportissue
\"
activeClassName=
\"
activeUnderlined
\"
>Report issues</NavLink>
\r\n
</li>
\r\n
<li className=
\"
manage-projects-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/projects
\"
activeClassName=
\"
activeUnderlined
\"
>Projects</NavLink>
\r\n
</li>
\r\n
<li className=
\"
manage-team-navbutton-container
\"
>
\r\n
<NavLink to=
\"
/teams
\"
activeClassName=
\"
activeUnderlined
\"
>Teams</NavLink>
\r\n
</li>
\r\n
</ul>
\r\n
)
\r\n
}
\r\n\r\n
export default NavLinks"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/14653155828423703ff6557d727fe09c.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
home
\\\\
updates
\\\\
Updates.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from 'react';
\n
import
\"
./Updates.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import useMessages from '../../../util/useMessages';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Updates = () => {
\n
_s();
\n\n
const messages = useMessages();
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-new-messages-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
exclamation
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0New project updates
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-update-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:
\"
[project] [new issues] [issues fixed]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 15
\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: 28,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\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: 34,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0New messages
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 9
\n
}, this), messages.map(message => /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-message-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: [
\"
[
\"
, message.sender,
\"
] [
\"
, message.id,
\"
]
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\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: 57,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\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: 63,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 11
\n
}, this))]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Updates,
\"
XN0E2gtL1gAmm+PNrJbqZSrG6t4=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Updates;
\n
export default Updates;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Updates
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/updates/Updates.jsx"
],
"names"
:[
"React"
,
"FontAwesomeIcon"
,
"useMessages"
,
"Updates"
,
"messages"
,
"map"
,
"message"
,
"sender"
,
"id"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAO,eAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,WAAP,MAAwB,2BAAxB;;;AAEA,MAAMC,OAAO,GAAG,MAAM;AAAA;;AACpB,QAAMC,QAAQ,GAAGF,WAAW,EAA5B;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC,wCAAf;AAAA,4BAEE;AAAK,MAAA,SAAS,EAAC,mCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,gCAAf;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,iCAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,sBAAf;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,gCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,6BAAf;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,EAOGE,QAAQ,CAACC,GAAT,CAAcC,OAAD,iBACZ;AAAK,QAAA,SAAS,EAAC,8BAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,mBAAf;AAAA,kCACE;AAAK,YAAA,SAAS,EAAC,YAAf;AAAA,oCACE;AAAK,cAAA,SAAS,EAAC,WAAf;AAAA,qCACE;AAAA,gCACIA,OAAO,CAACC,MADZ,SACuBD,OAAO,CAACE,EAD/B;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,cADD,CAPH;AAAA;AAAA;AAAA;AAAA;AAAA,YA9BF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA8DD,CAjED;;GAAML,O;UACaD,W;;;KADbC,O;AAmEN,eAAeA,OAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import
\"
./Updates.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import useMessages from '../../../util/useMessages'
\r\n\r\n
const Updates = () => {
\r\n
const messages = useMessages()
\r\n\r\n
return (
\r\n
<div className=
\"
project-updates-new-messages-container
\"
>
\r\n\r\n
<div className=
\"
project-updates-display-container
\"
>
\r\n
<div className=
\"
project-updates-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
exclamation
\"
></FontAwesomeIcon>
\r\n
New project updates
\r\n
</p>
\r\n
</div>
\r\n
<div className=
\"
project-updates-display-content
\"
>
\r\n
<div className=
\"
project-update-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[project] [new issues] [issues fixed]
\r\n
</a>
\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
</div>
\r\n
</div>
\r\n
</div>
\r\n\r\n
<div className=
\"
new-messages-display-container
\"
>
\r\n
<div className=
\"
new-messages-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
New messages
\r\n
</p>
\r\n
</div>
\r\n
{messages.map((message) => (
\r\n
<div className=
\"
new-messages-display-content
\"
>
\r\n
<div className=
\"
new-message-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[{message.sender}] [{message.id}]
\r\n
</a>
\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
</div>
\r\n
</div>
\r\n
))}
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Updates"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2121951d828e0dcf1d2268505bdee55b.json
0 → 100644
View file @
d8a97120
This diff is collapsed.
Click to expand it.
client/node_modules/.cache/babel-loader/22dd8e39fbd0c73c6c750a63dfaa3744.json
0 → 100644
View file @
d8a97120
{
"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 { 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
\"
./components/login/Login
\"
;
\n
import Navbar from
\"
./components/navbar/Navbar
\"
;
\n
import Home from
\"
./components/home/Home
\"
;
\n
import ReportForm from
\"
./components/reportForm/ReportForm
\"
;
\n
import ProjectOverview from
\"
./components/project/projectOverview/ProjectOverview
\"
;
\n
import ProjectInfo from
\"
./components/project/projectInfo/ProjectInfo
\"
;
\n
import TeamOverview from
\"
./components/team/teamOverview/TeamOverview
\"
;
\n
import TeamInfo from
\"
./components/team/teamInfo/TeamInfo
\"
;
\n
import Messages from
\"
./components/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\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: 34,
\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: 36,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(Route, {
\n
path: CALLBACK_PATH,
\n
component: LoginCallback
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/home
\"
,
\n
component: Home
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/reportissue
\"
,
\n
component: ReportForm
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/projects
\"
,
\n
component: ProjectOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/ReactApp
\"
,
\n
component: ProjectInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/teams
\"
,
\n
component: TeamOverview
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/HenriksMemeMachine
\"
,
\n
component: TeamInfo
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(SecureRoute, {
\n
path:
\"
/messages
\"
,
\n
component: Messages
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\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"
,
"library"
,
"fas"
,
"OktaAuth"
,
"toRelativeUrl"
,
"Security"
,
"SecureRoute"
,
"LoginCallback"
,
"config"
,
"Login"
,
"Navbar"
,
"Home"
,
"ReportForm"
,
"ProjectOverview"
,
"ProjectInfo"
,
"TeamOverview"
,
"TeamInfo"
,
"Messages"
,
"add"
,
"oktaAuth"
,
"oidc"
,
"CALLBACK_PATH"
,
"App"
,
"history"
,
"restoreOriginalUri"
,
"_oktaAuth"
,
"originalUri"
,
"replace"
,
"window"
,
"location"
,
"origin"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React from
\"
react
\"\r\n
import { Route, Switch, useHistory } from
\"
react-router-dom
\"\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
\"
./components/login/Login
\"\r\n
import Navbar from
\"
./components/navbar/Navbar
\"\r\n
import Home from
\"
./components/home/Home
\"\r\n
import ReportForm from
\"
./components/reportForm/ReportForm
\"\r\n
import ProjectOverview from
\"
./components/project/projectOverview/ProjectOverview
\"\r\n
import ProjectInfo from
\"
./components/project/projectInfo/ProjectInfo
\"\r\n
import TeamOverview from
\"
./components/team/teamOverview/TeamOverview
\"\r\n
import TeamInfo from
\"
./components/team/teamInfo/TeamInfo
\"\r\n
import Messages from
\"
./components/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 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={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/283f8cb046aeb49835fb3003841e4d63.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
home
\\\\
Home.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { NavLink } from 'react-router-dom';
\n
import
\"
./Home.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import Updates from './updates/Updates';
\n
import useMessages from '../../util/useMessages';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Home = () => {
\n
_s();
\n\n
const [userInfo, setUserInfo] = useState(null);
\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims;
\n
const messages = useMessages();
\n
useEffect(() => {
\n
setUserInfo(idToken);
\n
}, []);
\n\n
if (userInfo) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children: [
\"
Welcome
\"
, userInfo.name,
\"
!
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/reportissue
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
report-new-issue-button
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
exclamation-triangle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 15
\n
}, this),
\"\\
xA0
\\
xA0Report issues
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
homepage-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(Updates, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 7
\n
}, this);
\n
} else {
\n
// Render a loading placeholder while user data gets loaded from localstorage
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
homepage-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h3
\"
, {
\n
children:
\"
...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 7
\n
}, this);
\n
}
\n
};
\n\n
_s(Home,
\"
hWAI/bNq0ggLUgA8loZKeLHJePQ=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Home;
\n
export default Home;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Home
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/Home.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"FontAwesomeIcon"
,
"Updates"
,
"useMessages"
,
"Home"
,
"userInfo"
,
"setUserInfo"
,
"idToken"
,
"JSON"
,
"parse"
,
"localStorage"
,
"getItem"
,
"claims"
,
"messages"
,
"name"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,YAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMS,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AACA,QAAMC,QAAQ,GAAGV,WAAW,EAA5B;AAEAJ,EAAAA,SAAS,CAAC,MAAM;AACdO,IAAAA,WAAW,CAACC,OAAD,CAAX;AACD,GAFQ,EAEN,EAFM,CAAT;;AAIA,MAAIF,QAAJ,EAAc;AACZ,wBACE;AAAK,MAAA,SAAS,EAAC,wBAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,gBAAf;AAAA,gCACE;AAAI,UAAA,SAAS,EAAC,cAAd;AAAA,iCAAsCA,QAAQ,CAACS,IAA/C;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE,QAAC,OAAD;AAAS,UAAA,EAAE,EAAC,cAAZ;AAAA,iCACE;AAAQ,YAAA,SAAS,EAAC,yBAAlB;AAAA,oCACE,QAAC,eAAD;AAAiB,cAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,oBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAUE;AAAK,QAAA,SAAS,EAAC,kBAAf;AAAA,+BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAVF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF;AAiBD,GAlBD,MAmBK;AACH;AACA,wBACE;AAAK,MAAA,SAAS,EAAC,oBAAf;AAAA,6BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF;AAKD;AAGF,CAtCD;;GAAMV,I;UAGaD,W;;;KAHbC,I;AAwCN,eAAeA,IAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { NavLink } from 'react-router-dom'
\r\n
import
\"
./Home.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import Updates from './updates/Updates'
\r\n
import useMessages from '../../util/useMessages'
\r\n\r\n
const Home = () => {
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims
\r\n
const messages = useMessages()
\r\n\r\n
useEffect(() => {
\r\n
setUserInfo(idToken)
\r\n
}, [])
\r\n\r\n
if (userInfo) {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Welcome {userInfo.name}!</h2>
\r\n
<NavLink to=
\"
/reportissue
\"
>
\r\n
<button className=
\"
report-new-issue-button
\"
>
\r\n
<FontAwesomeIcon icon=
\"
exclamation-triangle
\"
></FontAwesomeIcon>
\r\n
Report issues
\r\n
</button>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
homepage-content
\"
>
\r\n
<Updates />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n\r\n
}
\r\n
else {
\r\n
// Render a loading placeholder while user data gets loaded from localstorage
\r\n
return (
\r\n
<div className=
\"
homepage-container
\"
>
\r\n
<h3>...</h3>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n\r\n
}
\r\n\r\n
export default Home"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/2ce892ee72635e9baf08f13630fab412.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"export default {
\n
oidc: {
\n
clientId: '0oa1f4zfeiiZPB6DF5d7',
\n
issuer: 'https://dev-91882654.okta.com/oauth2/default',
\n
redirectUri: window.location.origin + '/login/callback',
\n
scopes: ['openid', 'profile', 'email'],
\n
pkce: true
\n
},
\n
resourceServer: {
\n
messagesUrl: 'http://localhost:3030/api/messages'
\n
}
\n
};"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/config.js"
],
"names"
:[
"oidc"
,
"clientId"
,
"issuer"
,
"redirectUri"
,
"window"
,
"location"
,
"origin"
,
"scopes"
,
"pkce"
,
"resourceServer"
,
"messagesUrl"
],
"mappings"
:
"AAAA,eAAe;AACbA,EAAAA,IAAI,EAAE;AACJC,IAAAA,QAAQ,EAAE,sBADN;AAEJC,IAAAA,MAAM,EAAE,8CAFJ;AAGJC,IAAAA,WAAW,EAAEC,MAAM,CAACC,QAAP,CAAgBC,MAAhB,GAAyB,iBAHlC;AAIJC,IAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,SAAX,EAAsB,OAAtB,CAJJ;AAKJC,IAAAA,IAAI,EAAE;AALF,GADO;AAQbC,EAAAA,cAAc,EAAE;AACdC,IAAAA,WAAW,EAAE;AADC;AARH,CAAf"
,
"sourcesContent"
:[
"export default {
\r\n
oidc: {
\r\n
clientId: '0oa1f4zfeiiZPB6DF5d7',
\r\n
issuer: 'https://dev-91882654.okta.com/oauth2/default',
\r\n
redirectUri: window.location.origin + '/login/callback',
\r\n
scopes: ['openid', 'profile', 'email'],
\r\n
pkce: true
\r\n
},
\r\n
resourceServer: {
\r\n
messagesUrl: 'http://localhost:3030/api/messages',
\r\n
}
\r\n
};"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/3f66a20ef863c3f9753499df82ebfba2.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
project
\\\\
projectOverview
\\\\
ProjectOverview.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import
\"
./ProjectOverview.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ProjectOverview = () => {
\n
_s();
\n\n
const personalProjects = [{
\n
id:
\"
MyApp
\"
,
\n
type:
\"
personal
\"\n
}, {
\n
id:
\"
MyOtherApp
\"
,
\n
type:
\"
personal
\"\n
}];
\n
const sharedProjects = [{
\n
id:
\"
ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Henriks Meme Machine
\"\n
}, {
\n
name:
\"
Teskeholdet
\"\n
}]
\n
}, {
\n
id:
\"
Very big ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Aubergine
\"\n
}]
\n
}];
\n
const [sharedProjectsButtonState, setSharedProjectsButtonState] = useState(true);
\n
const [personalProjectsButtonState, setPersonalProjectsButtonState] = useState(false);
\n\n
const SharedProjectsButtonActive = () => {
\n
setSharedProjectsButtonState(true);
\n
setPersonalProjectsButtonState(false);
\n
};
\n\n
const PersonalProjectsButtonActive = () => {
\n
setSharedProjectsButtonState(false);
\n
setPersonalProjectsButtonState(true);
\n
};
\n\n
const ProjectsDisplay = projects => {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
projectlist
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: projects.map((elements, index) => /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-entry
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-team-name
\"
,
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to: `/${projects[index].id}`,
\n
children: [projects[index].id,
\"\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-status-info-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-issues-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
bug
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Total issues
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
issues-solved-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
check
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 21
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Issues solved
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
last-updated-info
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Last updated:
\\
xA01 day ago
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 21
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 13
\n
}, this))
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 7
\n
}, this);
\n
};
\n\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
projectlist-title
\"
,
\n
children:
\"
Your Projects
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 68,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
create-new-project-button
\"
,
\n
children:
\"
New Project
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 69,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 67,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-sort-menu-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
personal-shared-projects-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
className: sharedProjectsButtonState ?
\"
activeUnderlined
\"
:
\"
inactive
\"
,
\n
onClick: SharedProjectsButtonActive,
\n
children:
\"
Shared Projects
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 75,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
className: personalProjectsButtonState ?
\"
activeUnderlined
\"
:
\"
inactive
\"
,
\n
onClick: PersonalProjectsButtonActive,
\n
children:
\"
Personal Projects
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 76,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 74,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-sort-select-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Sort by:
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 79,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
select
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Last updated
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 81,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Last created
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 82,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Name
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 83,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Name descending
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 84,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Oldest created
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 85,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
option
\"
, {
\n
children:
\"
Oldest updated
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 86,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 80,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 78,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 73,
\n
columnNumber: 7
\n
}, this), sharedProjectsButtonState ? ProjectsDisplay(sharedProjects) : ProjectsDisplay(personalProjects)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 66,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(ProjectOverview,
\"
WjKsI8a5YElUZRAaBk97zXZAzsg=
\"
);
\n\n
_c = ProjectOverview;
\n
export default ProjectOverview;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ProjectOverview
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/project/projectOverview/ProjectOverview.jsx"
],
"names"
:[
"React"
,
"useState"
,
"NavLink"
,
"FontAwesomeIcon"
,
"ProjectOverview"
,
"personalProjects"
,
"id"
,
"type"
,
"sharedProjects"
,
"teams"
,
"name"
,
"sharedProjectsButtonState"
,
"setSharedProjectsButtonState"
,
"personalProjectsButtonState"
,
"setPersonalProjectsButtonState"
,
"SharedProjectsButtonActive"
,
"PersonalProjectsButtonActive"
,
"ProjectsDisplay"
,
"projects"
,
"map"
,
"elements"
,
"index"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,uBAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;;;AAEA,MAAMC,eAAe,GAAG,MAAM;AAAA;;AAC5B,QAAMC,gBAAgB,GAAG,CACvB;AAAEC,IAAAA,EAAE,EAAE,OAAN;AAAeC,IAAAA,IAAI,EAAE;AAArB,GADuB,EAEvB;AAAED,IAAAA,EAAE,EAAE,YAAN;AAAoBC,IAAAA,IAAI,EAAE;AAA1B,GAFuB,CAAzB;AAKA,QAAMC,cAAc,GAAG,CACrB;AAAEF,IAAAA,EAAE,EAAE,UAAN;AAAkBC,IAAAA,IAAI,EAAE,QAAxB;AAAkCE,IAAAA,KAAK,EAAE,CAAC;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAD,EAAmC;AAAEA,MAAAA,IAAI,EAAE;AAAR,KAAnC;AAAzC,GADqB,EAErB;AAAEJ,IAAAA,EAAE,EAAE,mBAAN;AAA2BC,IAAAA,IAAI,EAAE,QAAjC;AAA2CE,IAAAA,KAAK,EAAE,CAAC;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAD;AAAlD,GAFqB,CAAvB;AAKA,QAAM,CAACC,yBAAD,EAA4BC,4BAA5B,IAA4DX,QAAQ,CAAC,IAAD,CAA1E;AACA,QAAM,CAACY,2BAAD,EAA8BC,8BAA9B,IAAgEb,QAAQ,CAAC,KAAD,CAA9E;;AAEA,QAAMc,0BAA0B,GAAG,MAAM;AACvCH,IAAAA,4BAA4B,CAAC,IAAD,CAA5B;AACAE,IAAAA,8BAA8B,CAAC,KAAD,CAA9B;AACD,GAHD;;AAKA,QAAME,4BAA4B,GAAG,MAAM;AACzCJ,IAAAA,4BAA4B,CAAC,KAAD,CAA5B;AACAE,IAAAA,8BAA8B,CAAC,IAAD,CAA9B;AACD,GAHD;;AAKA,QAAMG,eAAe,GAAIC,QAAD,IAAc;AACpC,wBACE;AAAK,MAAA,SAAS,EAAC,aAAf;AAAA,6BACE;AAAA,kBACGA,QAAQ,CAACC,GAAT,CAAa,CAACC,QAAD,EAAWC,KAAX,kBACZ;AAAA,iCACE;AAAK,YAAA,SAAS,EAAC,eAAf;AAAA,oCACE;AAAK,cAAA,SAAS,EAAC,mBAAf;AAAA,qCACE,QAAC,OAAD;AAAS,gBAAA,EAAE,EAAG,IAAGH,QAAQ,CAACG,KAAD,CAAR,CAAgBf,EAAG,EAApC;AAAA,2BAAwCY,QAAQ,CAACG,KAAD,CAAR,CAAgBf,EAAxD,uBACE,QAAC,eAAD;AAAiB,kBAAA,SAAS,EAAC,MAA3B;AAAkC,kBAAA,IAAI,EAAC;AAAvC;AAAA;AAAA;AAAA;AAAA,wBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,oBADF,eAME;AAAK,cAAA,SAAS,EAAC,+BAAf;AAAA,sCACE;AAAK,gBAAA,SAAS,EAAC,iBAAf;AAAA,wCACE,QAAC,eAAD;AAAiB,kBAAA,SAAS,EAAC,MAA3B;AAAkC,kBAAA,IAAI,EAAC;AAAvC;AAAA;AAAA;AAAA;AAAA,wBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAFF,eAGE;AAAM,kBAAA,SAAS,EAAC,cAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,sBADF,eAME;AAAK,gBAAA,SAAS,EAAC,oBAAf;AAAA,wCACE,QAAC,eAAD;AAAiB,kBAAA,SAAS,EAAC,MAA3B;AAAkC,kBAAA,IAAI,EAAC;AAAvC;AAAA;AAAA;AAAA;AAAA,wBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAFF,eAGE;AAAM,kBAAA,SAAS,EAAC,cAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAHF;AAAA;AAAA;AAAA;AAAA;AAAA,sBANF,eAWE;AAAK,gBAAA,SAAS,EAAC,mBAAf;AAAA,uCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,sBAXF;AAAA;AAAA;AAAA;AAAA;AAAA,oBANF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBADD;AADH;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YADF;AAgCD,GAjCD;;AAmCA,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,mBAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAQ,QAAA,SAAS,EAAC,2BAAlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAOE;AAAK,MAAA,SAAS,EAAC,6BAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,oCAAf;AAAA,gCACE;AAAG,UAAA,SAAS,EAAEK,yBAAyB,GAAG,kBAAH,GAAwB,UAA/D;AAA2E,UAAA,OAAO,EAAEI,0BAApF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAG,UAAA,SAAS,EAAEF,2BAA2B,GAAG,kBAAH,GAAwB,UAAjE;AAA6E,UAAA,OAAO,EAAEG,4BAAtF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAKE;AAAK,QAAA,SAAS,EAAC,+BAAf;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,kCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAFF,eAGE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAHF,eAIE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAJF,eAKE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBALF,eAME;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBANF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cALF;AAAA;AAAA;AAAA;AAAA;AAAA,YAPF,EAwBGL,yBAAyB,GAAGM,eAAe,CAACT,cAAD,CAAlB,GAAqCS,eAAe,CAACZ,gBAAD,CAxBhF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA4BD,CAvFD;;GAAMD,e;;KAAAA,e;AAyFN,eAAeA,eAAf"
,
"sourcesContent"
:[
"import React, { useState } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import
\"
./ProjectOverview.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n
const ProjectOverview = () => {
\r\n
const personalProjects = [
\r\n
{ id:
\"
MyApp
\"
, type:
\"
personal
\"
},
\r\n
{ id:
\"
MyOtherApp
\"
, type:
\"
personal
\"
}
\r\n
]
\r\n\r\n
const sharedProjects = [
\r\n
{ id:
\"
ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Henriks Meme Machine
\"
}, { name:
\"
Teskeholdet
\"
}] },
\r\n
{ id:
\"
Very big ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Aubergine
\"
}] }
\r\n
]
\r\n\r\n
const [sharedProjectsButtonState, setSharedProjectsButtonState] = useState(true);
\r\n
const [personalProjectsButtonState, setPersonalProjectsButtonState] = useState(false);
\r\n\r\n
const SharedProjectsButtonActive = () => {
\r\n
setSharedProjectsButtonState(true);
\r\n
setPersonalProjectsButtonState(false);
\r\n
};
\r\n\r\n
const PersonalProjectsButtonActive = () => {
\r\n
setSharedProjectsButtonState(false);
\r\n
setPersonalProjectsButtonState(true);
\r\n
};
\r\n\r\n
const ProjectsDisplay = (projects) => {
\r\n
return (
\r\n
<div className=
\"
projectlist
\"
>
\r\n
<ul>
\r\n
{projects.map((elements, index) => (
\r\n
<li>
\r\n
<div className=
\"
project-entry
\"
>
\r\n
<div className=
\"
project-team-name
\"
>
\r\n
<NavLink to={`/${projects[index].id}`}>{projects[index].id}
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
project-status-info-container
\"
>
\r\n
<div className=
\"
new-issues-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
bug
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Total issues</span>
\r\n
</div>
\r\n
<div className=
\"
issues-solved-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
check
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Issues solved</span>
\r\n
</div>
\r\n
<div className=
\"
last-updated-info
\"
>
\r\n
<p>Last updated: 1 day ago</p>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n
))}
\r\n
</ul>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
projectlist-title
\"
>Your Projects</h2>
\r\n
<button className=
\"
create-new-project-button
\"
>
\r\n
New Project
\r\n
</button>
\r\n
</div>
\r\n
<div className=
\"
project-sort-menu-container
\"
>
\r\n
<div className=
\"
personal-shared-projects-container
\"
>
\r\n
<a className={sharedProjectsButtonState ?
\"
activeUnderlined
\"
:
\"
inactive
\"
} onClick={SharedProjectsButtonActive}>Shared Projects</a>
\r\n
<a className={personalProjectsButtonState ?
\"
activeUnderlined
\"
:
\"
inactive
\"
} onClick={PersonalProjectsButtonActive}>Personal Projects</a>
\r\n
</div>
\r\n
<div className=
\"
project-sort-select-container
\"
>
\r\n
<p>Sort by:</p>
\r\n
<select>
\r\n
<option>Last updated</option>
\r\n
<option>Last created</option>
\r\n
<option>Name</option>
\r\n
<option>Name descending</option>
\r\n
<option>Oldest created</option>
\r\n
<option>Oldest updated</option>
\r\n
</select>
\r\n
</div>
\r\n
</div>
\r\n
{sharedProjectsButtonState ? ProjectsDisplay(sharedProjects) : ProjectsDisplay(personalProjects)}
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default ProjectOverview"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/4cea4b1c4b16403fade8110ef384c2cb.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
home
\\\\
Home.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { NavLink } from 'react-router-dom';
\n
import
\"
./Home.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import Updates from './updates/Updates';
\n
import useMessages from '../../util/useMessages';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Home = () => {
\n
_s();
\n\n
const [userInfo, setUserInfo] = useState(null);
\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims;
\n
const messages = useMessages();
\n
useEffect(() => {
\n
setUserInfo(idToken);
\n
}, []);
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children: [
\"
Welcome
\"
, userInfo ? userInfo.name :
\"
Fetching username
\"
,
\"
!
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/reportissue
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
report-new-issue-button
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
exclamation-triangle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0Report issues
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
homepage-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(Updates, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Home,
\"
hWAI/bNq0ggLUgA8loZKeLHJePQ=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Home;
\n
export default Home;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Home
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/Home.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"FontAwesomeIcon"
,
"Updates"
,
"useMessages"
,
"Home"
,
"userInfo"
,
"setUserInfo"
,
"idToken"
,
"JSON"
,
"parse"
,
"localStorage"
,
"getItem"
,
"claims"
,
"messages"
,
"name"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,YAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMS,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AACA,QAAMC,QAAQ,GAAGV,WAAW,EAA5B;AAEAJ,EAAAA,SAAS,CAAC,MAAM;AACdO,IAAAA,WAAW,CAACC,OAAD,CAAX;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA,+BAAsCF,QAAQ,GAAGA,QAAQ,CAACS,IAAZ,GAAmB,mBAAjE;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAAA,+BACE;AAAQ,UAAA,SAAS,EAAC,yBAAlB;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAUE;AAAK,MAAA,SAAS,EAAC,kBAAf;AAAA,6BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAzBD;;GAAMV,I;UAGaD,W;;;KAHbC,I;AA2BN,eAAeA,IAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { NavLink } from 'react-router-dom'
\r\n
import
\"
./Home.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import Updates from './updates/Updates'
\r\n
import useMessages from '../../util/useMessages'
\r\n\r\n
const Home = () => {
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims
\r\n
const messages = useMessages()
\r\n\r\n
useEffect(() => {
\r\n
setUserInfo(idToken)
\r\n
}, [])
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Welcome {userInfo ? userInfo.name :
\"
Fetching username
\"
}!</h2>
\r\n
<NavLink to=
\"
/reportissue
\"
>
\r\n
<button className=
\"
report-new-issue-button
\"
>
\r\n
<FontAwesomeIcon icon=
\"
exclamation-triangle
\"
></FontAwesomeIcon>
\r\n
Report issues
\r\n
</button>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
homepage-content
\"
>
\r\n
<Updates />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Home"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/4f38512635519b066af9555be56b603d.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _s = $RefreshSig$();
\n\n
import { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from
\"
../config
\"
;
\n\n
const useMessages = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [messages, setMessages] = useState(null);
\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false); // fetch messages
\n\n
useEffect(() => {
\n
if (authState && authState.isAuthenticated) {
\n
const accessToken = oktaAuth.getAccessToken();
\n
fetch(config.resourceServer.messagesUrl, {
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
}
\n
}).then(response => {
\n
if (!response.ok) {
\n
return Promise.reject();
\n
}
\n\n
return response.json();
\n
}).then(data => {
\n
let index = 0;
\n
const formattedMessages = data.messages.map(message => {
\n
const date = new Date(message.date);
\n
const day = date.toLocaleDateString();
\n
const time = date.toLocaleTimeString();
\n
index += 1;
\n
return {
\n
date: `${day} ${time}`,
\n
text: message.text,
\n
id: `message-${index}`
\n
};
\n
});
\n
setMessages(formattedMessages);
\n
setMessageFetchFailed(false);
\n
}).catch(err => {
\n
setMessageFetchFailed(true);
\n
/* eslint-disable no-console */
\n\n
console.error(err);
\n
});
\n
}
\n
}, [authState]);
\n
return messages;
\n
};
\n\n
_s(useMessages,
\"
U3xiPl25FsmufxeRxpFVBz8Cguw=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
export default useMessages;"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/util/useMessages.jsx"
],
"names"
:[
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"useMessages"
,
"authState"
,
"oktaAuth"
,
"messages"
,
"setMessages"
,
"messageFetchFailed"
,
"setMessageFetchFailed"
,
"isAuthenticated"
,
"accessToken"
,
"getAccessToken"
,
"fetch"
,
"resourceServer"
,
"messagesUrl"
,
"headers"
,
"Authorization"
,
"then"
,
"response"
,
"ok"
,
"Promise"
,
"reject"
,
"json"
,
"data"
,
"index"
,
"formattedMessages"
,
"map"
,
"message"
,
"date"
,
"Date"
,
"day"
,
"toLocaleDateString"
,
"time"
,
"toLocaleTimeString"
,
"text"
,
"id"
,
"catch"
,
"err"
,
"console"
,
"error"
],
"mappings"
:
";;AAAA,SAASA,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA,OAAOC,MAAP,MAAmB,WAAnB;;AAEA,MAAMC,WAAW,GAAG,MAAM;AAAA;;AACxB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAM,CAACS,kBAAD,EAAqBC,qBAArB,IAA8CV,QAAQ,CAAC,KAAD,CAA5D,CAHwB,CAKxB;;AACAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAII,SAAS,IAAIA,SAAS,CAACM,eAA3B,EAA4C;AAC1C,YAAMC,WAAW,GAAGN,QAAQ,CAACO,cAAT,EAApB;AACAC,MAAAA,KAAK,CAACX,MAAM,CAACY,cAAP,CAAsBC,WAAvB,EAAoC;AACvCC,QAAAA,OAAO,EAAE;AACPC,UAAAA,aAAa,EAAG,UAASN,WAAY;AAD9B;AAD8B,OAApC,CAAL,CAKGO,IALH,CAKSC,QAAD,IAAc;AAClB,YAAI,CAACA,QAAQ,CAACC,EAAd,EAAkB;AAChB,iBAAOC,OAAO,CAACC,MAAR,EAAP;AACD;;AACD,eAAOH,QAAQ,CAACI,IAAT,EAAP;AACD,OAVH,EAWGL,IAXH,CAWSM,IAAD,IAAU;AACd,YAAIC,KAAK,GAAG,CAAZ;AACA,cAAMC,iBAAiB,GAAGF,IAAI,CAAClB,QAAL,CAAcqB,GAAd,CAAmBC,OAAD,IAAa;AACvD,gBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,OAAO,CAACC,IAAjB,CAAb;AACA,gBAAME,GAAG,GAAGF,IAAI,CAACG,kBAAL,EAAZ;AACA,gBAAMC,IAAI,GAAGJ,IAAI,CAACK,kBAAL,EAAb;AACAT,UAAAA,KAAK,IAAI,CAAT;AACA,iBAAO;AACLI,YAAAA,IAAI,EAAG,GAAEE,GAAI,IAAGE,IAAK,EADhB;AAELE,YAAAA,IAAI,EAAEP,OAAO,CAACO,IAFT;AAGLC,YAAAA,EAAE,EAAG,WAAUX,KAAM;AAHhB,WAAP;AAKD,SAVyB,CAA1B;AAWAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA1BH,EA2BG4B,KA3BH,CA2BUC,GAAD,IAAS;AACd7B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA8B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OA/BH;AAgCD;AACF,GApCQ,EAoCN,CAAClC,SAAD,CApCM,CAAT;AAsCA,SAAOE,QAAP;AACD,CA7CD;;GAAMH,W;UAC4BF,W;;;AA8ClC,eAAeE,WAAf"
,
"sourcesContent"
:[
"import { useState, useEffect } from 'react';
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n\r\n
import config from
\"
../config
\"\r\n\r\n
const useMessages = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [messages, setMessages] = useState(null);
\r\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false);
\r\n\r\n
// fetch messages
\r\n
useEffect(() => {
\r\n
if (authState && authState.isAuthenticated) {
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
fetch(config.resourceServer.messagesUrl, {
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
})
\r\n
.then((response) => {
\r\n
if (!response.ok) {
\r\n
return Promise.reject();
\r\n
}
\r\n
return response.json();
\r\n
})
\r\n
.then((data) => {
\r\n
let index = 0;
\r\n
const formattedMessages = data.messages.map((message) => {
\r\n
const date = new Date(message.date);
\r\n
const day = date.toLocaleDateString();
\r\n
const time = date.toLocaleTimeString();
\r\n
index += 1;
\r\n
return {
\r\n
date: `${day} ${time}`,
\r\n
text: message.text,
\r\n
id: `message-${index}`,
\r\n
};
\r\n
});
\r\n
setMessages(formattedMessages);
\r\n
setMessageFetchFailed(false);
\r\n
})
\r\n
.catch((err) => {
\r\n
setMessageFetchFailed(true);
\r\n
/* eslint-disable no-console */
\r\n
console.error(err);
\r\n
});
\r\n
}
\r\n
}, [authState]);
\r\n\r\n
return messages
\r\n
}
\r\n\r\n
export default useMessages"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/517e047d97901482f402a5d5b40871d6.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
Messages
\\\\
Messages.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Messages = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [messages, setMessages] = useState(null);
\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false); // fetch messages
\n\n
useEffect(() => {
\n
if (authState && authState.isAuthenticated) {
\n
const accessToken = oktaAuth.getAccessToken();
\n
fetch(config.resourceServer.messagesUrl, {
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
}
\n
}).then(response => {
\n
if (!response.ok) {
\n
return Promise.reject();
\n
}
\n\n
return response.json();
\n
}).then(data => {
\n
let index = 0;
\n
const formattedMessages = data.messages.map(message => {
\n
const date = new Date(message.date);
\n
const day = date.toLocaleDateString();
\n
const time = date.toLocaleTimeString();
\n
index += 1;
\n
return {
\n
date: `${day} ${time}`,
\n
text: message.text,
\n
id: `message-${index}`
\n
};
\n
});
\n
setMessages(formattedMessages);
\n
setMessageFetchFailed(false);
\n
}).catch(err => {
\n
setMessageFetchFailed(true);
\n
/* eslint-disable no-console */
\n\n
console.error(err);
\n
});
\n
}
\n
}, [authState]);
\n\n
if (messages) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: messages.map(message => /*#__PURE__*/_jsxDEV(
\"
tr
\"
, {
\n
id: message.id,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.date
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.text
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 13
\n
}, this)]
\n
}, message.id, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this))
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 7
\n
}, this);
\n
} else return /*#__PURE__*/_jsxDEV(
\"
h3
\"
, {
\n
children:
\"
Fetching messages...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Messages,
\"
U3xiPl25FsmufxeRxpFVBz8Cguw=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Messages;
\n
export default Messages;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Messages
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/Messages/Messages.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"Messages"
,
"authState"
,
"oktaAuth"
,
"messages"
,
"setMessages"
,
"messageFetchFailed"
,
"setMessageFetchFailed"
,
"isAuthenticated"
,
"accessToken"
,
"getAccessToken"
,
"fetch"
,
"resourceServer"
,
"messagesUrl"
,
"headers"
,
"Authorization"
,
"then"
,
"response"
,
"ok"
,
"Promise"
,
"reject"
,
"json"
,
"data"
,
"index"
,
"formattedMessages"
,
"map"
,
"message"
,
"date"
,
"Date"
,
"day"
,
"toLocaleDateString"
,
"time"
,
"toLocaleTimeString"
,
"text"
,
"id"
,
"catch"
,
"err"
,
"console"
,
"error"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA,OAAOC,MAAP,MAAmB,cAAnB;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AAAA;;AACrB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAM,CAACS,kBAAD,EAAqBC,qBAArB,IAA8CV,QAAQ,CAAC,KAAD,CAA5D,CAHqB,CAKrB;;AACAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAII,SAAS,IAAIA,SAAS,CAACM,eAA3B,EAA4C;AAC1C,YAAMC,WAAW,GAAGN,QAAQ,CAACO,cAAT,EAApB;AACAC,MAAAA,KAAK,CAACX,MAAM,CAACY,cAAP,CAAsBC,WAAvB,EAAoC;AACvCC,QAAAA,OAAO,EAAE;AACPC,UAAAA,aAAa,EAAG,UAASN,WAAY;AAD9B;AAD8B,OAApC,CAAL,CAKGO,IALH,CAKSC,QAAD,IAAc;AAClB,YAAI,CAACA,QAAQ,CAACC,EAAd,EAAkB;AAChB,iBAAOC,OAAO,CAACC,MAAR,EAAP;AACD;;AACD,eAAOH,QAAQ,CAACI,IAAT,EAAP;AACD,OAVH,EAWGL,IAXH,CAWSM,IAAD,IAAU;AACd,YAAIC,KAAK,GAAG,CAAZ;AACA,cAAMC,iBAAiB,GAAGF,IAAI,CAAClB,QAAL,CAAcqB,GAAd,CAAmBC,OAAD,IAAa;AACvD,gBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,OAAO,CAACC,IAAjB,CAAb;AACA,gBAAME,GAAG,GAAGF,IAAI,CAACG,kBAAL,EAAZ;AACA,gBAAMC,IAAI,GAAGJ,IAAI,CAACK,kBAAL,EAAb;AACAT,UAAAA,KAAK,IAAI,CAAT;AACA,iBAAO;AACLI,YAAAA,IAAI,EAAG,GAAEE,GAAI,IAAGE,IAAK,EADhB;AAELE,YAAAA,IAAI,EAAEP,OAAO,CAACO,IAFT;AAGLC,YAAAA,EAAE,EAAG,WAAUX,KAAM;AAHhB,WAAP;AAKD,SAVyB,CAA1B;AAWAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA1BH,EA2BG4B,KA3BH,CA2BUC,GAAD,IAAS;AACd7B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA8B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OA/BH;AAgCD;AACF,GApCQ,EAoCN,CAAClC,SAAD,CApCM,CAAT;;AAsCA,MAAIE,QAAJ,EAAc;AACZ,wBACE;AAAA,gBACGA,QAAQ,CAACqB,GAAT,CAAcC,OAAD,iBACZ;AAAI,QAAA,EAAE,EAAEA,OAAO,CAACQ,EAAhB;AAAA,gCACE;AAAA,oBAAKR,OAAO,CAACC;AAAb;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,oBAAKD,OAAO,CAACO;AAAb;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA,SAAyBP,OAAO,CAACQ,EAAjC;AAAA;AAAA;AAAA;AAAA,cADD;AADH;AAAA;AAAA;AAAA;AAAA,YADF;AAUD,GAXD,MAWO,oBACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UADK;AAKR,CA5DD;;GAAMjC,Q;UAC4BF,W;;;KAD5BE,Q;AA8DN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n\r\n
import config from '../../config'
\r\n\r\n
const Messages = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [messages, setMessages] = useState(null);
\r\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false);
\r\n\r\n
// fetch messages
\r\n
useEffect(() => {
\r\n
if (authState && authState.isAuthenticated) {
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
fetch(config.resourceServer.messagesUrl, {
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
})
\r\n
.then((response) => {
\r\n
if (!response.ok) {
\r\n
return Promise.reject();
\r\n
}
\r\n
return response.json();
\r\n
})
\r\n
.then((data) => {
\r\n
let index = 0;
\r\n
const formattedMessages = data.messages.map((message) => {
\r\n
const date = new Date(message.date);
\r\n
const day = date.toLocaleDateString();
\r\n
const time = date.toLocaleTimeString();
\r\n
index += 1;
\r\n
return {
\r\n
date: `${day} ${time}`,
\r\n
text: message.text,
\r\n
id: `message-${index}`,
\r\n
};
\r\n
});
\r\n
setMessages(formattedMessages);
\r\n
setMessageFetchFailed(false);
\r\n
})
\r\n
.catch((err) => {
\r\n
setMessageFetchFailed(true);
\r\n
/* eslint-disable no-console */
\r\n
console.error(err);
\r\n
});
\r\n
}
\r\n
}, [authState]);
\r\n\r\n
if (messages) {
\r\n
return (
\r\n
<div>
\r\n
{messages.map((message) => (
\r\n
<tr id={message.id} key={message.id}>
\r\n
<td>{message.date}</td>
\r\n
<td>{message.text}</td>
\r\n
</tr>
\r\n
))}
\r\n
</div>
\r\n
)
\r\n
} else return (
\r\n
<h3>Fetching messages...</h3>
\r\n
)
\r\n\r\n\r\n
}
\r\n\r\n
export default Messages
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/561cba180a91f5a1dc56ac957e7621f2.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
team
\\\\
teamOverview
\\\\
TeamOverview.jsx
\"
;
\n
import React from 'react';
\n
import { NavLink } from 'react-router-dom';
\n
import
\"
./TeamOverview.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const TeamOverview = () => {
\n
const personalProjects = [{
\n
id:
\"
MyApp
\"
,
\n
type:
\"
personal
\"\n
}, {
\n
id:
\"
MyOtherApp
\"
,
\n
type:
\"
personal
\"\n
}];
\n
const sharedProjects = [{
\n
id:
\"
ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Henriks Meme Machine
\"\n
}, {
\n
name:
\"
Teskeholdet
\"\n
}]
\n
}, {
\n
id:
\"
Very big ReactApp
\"
,
\n
type:
\"
shared
\"
,
\n
teams: [{
\n
name:
\"
Aubergine
\"\n
}]
\n
}];
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
teamlist-title
\"
,
\n
children:
\"
Teams
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
buttons-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
join-team-button
\"
,
\n
children:
\"
Join Team
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
create-new-team-button
\"
,
\n
children:
\"
New team
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
teamlist
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-entry
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
image-team-name
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/HenriksMemeMachine
\"
,
\n
className:
\"
team-image-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
team-icon
\"
,
\n
icon:
\"
dice-d6
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/HenriksMemeMachine
\"
,
\n
children: [
\"
Henriks meme machine - ReactApp
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
chevron-right
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-status-info-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
New messages
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
projects-maintained-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
project-diagram
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Projects maintained
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
team-members-info
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
icon
\"
,
\n
icon:
\"
users
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
0
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 19
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
span
\"
, {
\n
className:
\"
tooltip-text
\"
,
\n
children:
\"
Team members
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 19
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 17
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
last-updated-info
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children:
\"
Date created:
\\
xA021/ 07/ 2021
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 34,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = TeamOverview;
\n
export default TeamOverview;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
TeamOverview
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/team/teamOverview/TeamOverview.jsx"
],
"names"
:[
"React"
,
"NavLink"
,
"FontAwesomeIcon"
,
"TeamOverview"
,
"personalProjects"
,
"id"
,
"type"
,
"sharedProjects"
,
"teams"
,
"name"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import { NavLink } from 'react-router-dom'
\r\n
import
\"
./TeamOverview.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n
const TeamOverview = () => {
\r\n\r\n
const personalProjects = [
\r\n
{ id:
\"
MyApp
\"
, type:
\"
personal
\"
},
\r\n
{ id:
\"
MyOtherApp
\"
, type:
\"
personal
\"
}
\r\n
]
\r\n\r\n
const sharedProjects = [
\r\n
{ id:
\"
ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Henriks Meme Machine
\"
}, { name:
\"
Teskeholdet
\"
}] },
\r\n
{ id:
\"
Very big ReactApp
\"
, type:
\"
shared
\"
, teams: [{ name:
\"
Aubergine
\"
}] }
\r\n
]
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
teamlist-title
\"
>Teams</h2>
\r\n
<div className=
\"
buttons-container
\"
>
\r\n
<button className=
\"
join-team-button
\"
>
\r\n
Join Team
\r\n
</button>
\r\n
<button className=
\"
create-new-team-button
\"
>
\r\n
New team
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
teamlist
\"
>
\r\n
<ul>
\r\n
<li>
\r\n
<div className=
\"
team-entry
\"
>
\r\n
<div className=
\"
image-team-name
\"
>
\r\n
<NavLink to=
\"
/HenriksMemeMachine
\"
className=
\"
team-image-container
\"
>
\r\n
<FontAwesomeIcon className=
\"
team-icon
\"
icon=
\"
dice-d6
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
<NavLink to=
\"
/HenriksMemeMachine
\"
>Henriks meme machine - ReactApp
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
chevron-right
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
team-status-info-container
\"
>
\r\n
<div className=
\"
new-messages-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>New messages</span>
\r\n
</div>
\r\n
<div className=
\"
projects-maintained-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
project-diagram
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Projects maintained</span>
\r\n
</div>
\r\n
<div className=
\"
team-members-info
\"
>
\r\n
<FontAwesomeIcon className=
\"
icon
\"
icon=
\"
users
\"
></FontAwesomeIcon>
\r\n
<p>0</p>
\r\n
<span className=
\"
tooltip-text
\"
>Team members</span>
\r\n
</div>
\r\n
<div className=
\"
last-updated-info
\"
>
\r\n
<p>Date created: 21/ 07/ 2021</p>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div >
\r\n
)
\r\n
}
\r\n\r\n
export default TeamOverview"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/5aa23a65965cc89936e1fbee09a12fdb.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
Messages
\\\\
Messages.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Messages = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [messages, setMessages] = useState(null);
\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false); // fetch messages
\n\n
useEffect(() => {
\n
if (authState && authState.isAuthenticated) {
\n
const accessToken = oktaAuth.getAccessToken();
\n
fetch(config.resourceServer.messagesUrl, {
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
}
\n
}).then(response => {
\n
if (!response.ok) {
\n
return Promise.reject();
\n
}
\n\n
return response.json();
\n
}).then(data => {
\n
let index = 0;
\n
const formattedMessages = data.messages.map(message => {
\n
const date = new Date(message.date);
\n
const day = date.toLocaleDateString();
\n
const time = date.toLocaleTimeString();
\n
index += 1;
\n
return {
\n
date: `${day} ${time}`,
\n
text: message.text,
\n
id: `message-${index}`
\n
};
\n
});
\n
setMessages(formattedMessages);
\n
setMessageFetchFailed(false);
\n
}).catch(err => {
\n
setMessageFetchFailed(true);
\n
/* eslint-disable no-console */
\n\n
console.error(err);
\n
});
\n
}
\n
}, [authState]);
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
children: messages.map(message => /*#__PURE__*/_jsxDEV(
\"
tr
\"
, {
\n
id: message.id,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.date
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.text
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 11
\n
}, this)]
\n
}, message.id, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 9
\n
}, this))
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Messages,
\"
U3xiPl25FsmufxeRxpFVBz8Cguw=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Messages;
\n
export default Messages;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Messages
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/Messages/Messages.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"Messages"
,
"authState"
,
"oktaAuth"
,
"messages"
,
"setMessages"
,
"messageFetchFailed"
,
"setMessageFetchFailed"
,
"isAuthenticated"
,
"accessToken"
,
"getAccessToken"
,
"fetch"
,
"resourceServer"
,
"messagesUrl"
,
"headers"
,
"Authorization"
,
"then"
,
"response"
,
"ok"
,
"Promise"
,
"reject"
,
"json"
,
"data"
,
"index"
,
"formattedMessages"
,
"map"
,
"message"
,
"date"
,
"Date"
,
"day"
,
"toLocaleDateString"
,
"time"
,
"toLocaleTimeString"
,
"text"
,
"id"
,
"catch"
,
"err"
,
"console"
,
"error"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA,OAAOC,MAAP,MAAmB,cAAnB;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AAAA;;AACrB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAM,CAACS,kBAAD,EAAqBC,qBAArB,IAA8CV,QAAQ,CAAC,KAAD,CAA5D,CAHqB,CAKrB;;AACAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAII,SAAS,IAAIA,SAAS,CAACM,eAA3B,EAA4C;AAC1C,YAAMC,WAAW,GAAGN,QAAQ,CAACO,cAAT,EAApB;AACAC,MAAAA,KAAK,CAACX,MAAM,CAACY,cAAP,CAAsBC,WAAvB,EAAoC;AACvCC,QAAAA,OAAO,EAAE;AACPC,UAAAA,aAAa,EAAG,UAASN,WAAY;AAD9B;AAD8B,OAApC,CAAL,CAKGO,IALH,CAKSC,QAAD,IAAc;AAClB,YAAI,CAACA,QAAQ,CAACC,EAAd,EAAkB;AAChB,iBAAOC,OAAO,CAACC,MAAR,EAAP;AACD;;AACD,eAAOH,QAAQ,CAACI,IAAT,EAAP;AACD,OAVH,EAWGL,IAXH,CAWSM,IAAD,IAAU;AACd,YAAIC,KAAK,GAAG,CAAZ;AACA,cAAMC,iBAAiB,GAAGF,IAAI,CAAClB,QAAL,CAAcqB,GAAd,CAAmBC,OAAD,IAAa;AACvD,gBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,OAAO,CAACC,IAAjB,CAAb;AACA,gBAAME,GAAG,GAAGF,IAAI,CAACG,kBAAL,EAAZ;AACA,gBAAMC,IAAI,GAAGJ,IAAI,CAACK,kBAAL,EAAb;AACAT,UAAAA,KAAK,IAAI,CAAT;AACA,iBAAO;AACLI,YAAAA,IAAI,EAAG,GAAEE,GAAI,IAAGE,IAAK,EADhB;AAELE,YAAAA,IAAI,EAAEP,OAAO,CAACO,IAFT;AAGLC,YAAAA,EAAE,EAAG,WAAUX,KAAM;AAHhB,WAAP;AAKD,SAVyB,CAA1B;AAWAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA1BH,EA2BG4B,KA3BH,CA2BUC,GAAD,IAAS;AACd7B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA8B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OA/BH;AAgCD;AACF,GApCQ,EAoCN,CAAClC,SAAD,CApCM,CAAT;AAsCA,sBACE;AAAA,cACGE,QAAQ,CAACqB,GAAT,CAAcC,OAAD,iBACZ;AAAI,MAAA,EAAE,EAAEA,OAAO,CAACQ,EAAhB;AAAA,8BACE;AAAA,kBAAKR,OAAO,CAACC;AAAb;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAA,kBAAKD,OAAO,CAACO;AAAb;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA,OAAyBP,OAAO,CAACQ,EAAjC;AAAA;AAAA;AAAA;AAAA,YADD;AADH;AAAA;AAAA;AAAA;AAAA,UADF;AAUD,CAtDD;;GAAMjC,Q;UAC4BF,W;;;KAD5BE,Q;AAwDN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n\r\n
import config from '../../config'
\r\n\r\n
const Messages = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [messages, setMessages] = useState(null);
\r\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false);
\r\n\r\n
// fetch messages
\r\n
useEffect(() => {
\r\n
if (authState && authState.isAuthenticated) {
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
fetch(config.resourceServer.messagesUrl, {
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
})
\r\n
.then((response) => {
\r\n
if (!response.ok) {
\r\n
return Promise.reject();
\r\n
}
\r\n
return response.json();
\r\n
})
\r\n
.then((data) => {
\r\n
let index = 0;
\r\n
const formattedMessages = data.messages.map((message) => {
\r\n
const date = new Date(message.date);
\r\n
const day = date.toLocaleDateString();
\r\n
const time = date.toLocaleTimeString();
\r\n
index += 1;
\r\n
return {
\r\n
date: `${day} ${time}`,
\r\n
text: message.text,
\r\n
id: `message-${index}`,
\r\n
};
\r\n
});
\r\n
setMessages(formattedMessages);
\r\n
setMessageFetchFailed(false);
\r\n
})
\r\n
.catch((err) => {
\r\n
setMessageFetchFailed(true);
\r\n
/* eslint-disable no-console */
\r\n
console.error(err);
\r\n
});
\r\n
}
\r\n
}, [authState]);
\r\n\r\n
return (
\r\n
<div>
\r\n
{messages.map((message) => (
\r\n
<tr id={message.id} key={message.id}>
\r\n
<td>{message.date}</td>
\r\n
<td>{message.text}</td>
\r\n
</tr>
\r\n
))}
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Messages
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/6c632c1da3e753f71d85b75c5cf56fef.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
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 { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\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
const login = () => oktaAuth.signInWithRedirect({
\n
originalUri: '/home'
\n
});
\n\n
if (!authState) {
\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: 22,
\n
columnNumber: 11
\n
}, this), authState.isAuthenticated && /*#__PURE__*/_jsxDEV(NavLinks, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 24,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
searchbar-profile-container
\"
,
\n
children: [authState.isAuthenticated && /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
className:
\"
right-unstyled-navbar
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(Searchbar, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(NavbarDropdownMenu, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 13
\n
}, this), !authState.isPending && !authState.isAuthenticated && /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
loginButtonContainer
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
onClick: login,
\n
children: [
\"
Log in
\\
xA0
\\
xA0
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-in-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\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/components/navbar/Navbar.jsx"
],
"names"
:[
"React"
,
"useOktaAuth"
,
"Logo"
,
"NavLinks"
,
"Searchbar"
,
"NavbarDropdownMenu"
,
"FontAwesomeIcon"
,
"Navbar"
,
"authState"
,
"oktaAuth"
,
"login"
,
"signInWithRedirect"
,
"originalUri"
,
"isAuthenticated"
,
"isPending"
],
"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;AACA,SAASC,eAAT,QAAgC,gCAAhC;;;AAEA,MAAMC,MAAM,GAAG,MAAM;AAAA;;AACnB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BR,WAAW,EAA3C;;AACA,QAAMS,KAAK,GAAG,MAAMD,QAAQ,CAACE,kBAAT,CAA4B;AAAEC,IAAAA,WAAW,EAAE;AAAf,GAA5B,CAApB;;AAEA,MAAI,CAACJ,SAAL,EAAgB;AACd,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,EAEGA,SAAS,CAACK,eAAV,iBACC,QAAC,QAAD;AAAA;AAAA;AAAA;AAAA,gBAHJ;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAOE;AAAK,QAAA,SAAS,EAAC,6BAAf;AAAA,mBACGL,SAAS,CAACK,eAAV,iBACC;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,gBAFJ,EAOG,CAACL,SAAS,CAACM,SAAX,IAAwB,CAACN,SAAS,CAACK,eAAnC,iBACC;AAAK,UAAA,SAAS,EAAC,sBAAf;AAAA,iCACE;AAAQ,YAAA,OAAO,EAAEH,KAAjB;AAAA,sDAEE,QAAC,eAAD;AAAiB,cAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,oBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,gBARJ;AAAA;AAAA;AAAA;AAAA;AAAA,cAPF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AA4BD,CApCD;;GAAMH,M;UAC4BN,W;;;KAD5BM,M;AAsCN,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
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n
const Navbar = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const login = () => oktaAuth.signInWithRedirect({ originalUri: '/home' })
\r\n\r\n
if (!authState) {
\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
{authState.isAuthenticated && (
\r\n
<NavLinks />
\r\n
)}
\r\n
</div>
\r\n
<div className=
\"
searchbar-profile-container
\"
>
\r\n
{authState.isAuthenticated && (
\r\n
<ul className=
\"
right-unstyled-navbar
\"
>
\r\n
<Searchbar />
\r\n
<NavbarDropdownMenu />
\r\n
</ul>
\r\n
)}
\r\n
{!authState.isPending && !authState.isAuthenticated && (
\r\n
<div className=
\"
loginButtonContainer
\"
>
\r\n
<button onClick={login}>
\r\n
Log in
\r\n
<FontAwesomeIcon icon=
\"
sign-in-alt
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
</div>
\r\n
)}
\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/7765ded2ef0e808097b7011390f60f55.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
home
\\\\
updates
\\\\
Updates.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from 'react';
\n
import
\"
./Updates.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import useMessages from '../../../util/useMessages';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Updates = () => {
\n
_s();
\n\n
const messages = useMessages();
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-new-messages-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
exclamation
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0New project updates
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-updates-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
project-update-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:
\"
[project] [new issues] [issues fixed]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 15
\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: 28,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\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: 34,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 33,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-header
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
p
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0New messages
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-messages-display-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
new-message-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:
\"
[Sender] [Channel]
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 15
\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: 57,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 50,
\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: 63,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 49,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Updates,
\"
XN0E2gtL1gAmm+PNrJbqZSrG6t4=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Updates;
\n
export default Updates;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Updates
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/updates/Updates.jsx"
],
"names"
:[
"React"
,
"FontAwesomeIcon"
,
"useMessages"
,
"Updates"
,
"messages"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAO,eAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,WAAP,MAAwB,2BAAxB;;;AAEA,MAAMC,OAAO,GAAG,MAAM;AAAA;;AACpB,QAAMC,QAAQ,GAAGF,WAAW,EAA5B;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC,wCAAf;AAAA,4BAEE;AAAK,MAAA,SAAS,EAAC,mCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,gCAAf;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,iCAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,sBAAf;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,gCAAf;AAAA,8BAEE;AAAK,QAAA,SAAS,EAAC,6BAAf;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,cAFF,eAQE;AAAK,QAAA,SAAS,EAAC,8BAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,mBAAf;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,cARF;AAAA;AAAA;AAAA;AAAA;AAAA,YA9BF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA6DD,CAhED;;GAAMC,O;UACaD,W;;;KADbC,O;AAkEN,eAAeA,OAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import
\"
./Updates.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import useMessages from '../../../util/useMessages'
\r\n\r\n
const Updates = () => {
\r\n
const messages = useMessages()
\r\n\r\n
return (
\r\n
<div className=
\"
project-updates-new-messages-container
\"
>
\r\n\r\n
<div className=
\"
project-updates-display-container
\"
>
\r\n
<div className=
\"
project-updates-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
exclamation
\"
></FontAwesomeIcon>
\r\n
New project updates
\r\n
</p>
\r\n
</div>
\r\n
<div className=
\"
project-updates-display-content
\"
>
\r\n
<div className=
\"
project-update-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[project] [new issues] [issues fixed]
\r\n
</a>
\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
</div>
\r\n
</div>
\r\n
</div>
\r\n\r\n
<div className=
\"
new-messages-display-container
\"
>
\r\n\r\n
<div className=
\"
new-messages-display-header
\"
>
\r\n
<p>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon>
\r\n
New messages
\r\n
</p>
\r\n
</div>
\r\n
<div className=
\"
new-messages-display-content
\"
>
\r\n
<div className=
\"
new-message-entry
\"
>
\r\n
<div className=
\"
entry-text
\"
>
\r\n
<div className=
\"
upper-row
\"
>
\r\n
<a>
\r\n
[Sender] [Channel]
\r\n
</a>
\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
</div>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Updates"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/820ebfb6924b1fc87327757de2bd651e.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
Messages
\\\\
Messages.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Messages = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [messages, setMessages] = useState(null);
\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false); // fetch messages
\n\n
useEffect(() => {
\n
if (authState && authState.isAuthenticated) {
\n
const accessToken = oktaAuth.getAccessToken();
\n
fetch(config.resourceServer.messagesUrl, {
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
}
\n
}).then(response => {
\n
if (!response.ok) {
\n
return Promise.reject();
\n
}
\n\n
return response.json();
\n
}).then(data => {
\n
let index = 0;
\n
const formattedMessages = data.messages.map(message => {
\n
const date = new Date(message.date);
\n
const day = date.toLocaleDateString();
\n
const time = date.toLocaleTimeString();
\n
index += 1;
\n
return {
\n
date: `${day} ${time}`,
\n
text: message.text,
\n
id: `message-${index}`
\n
};
\n
});
\n
setMessages(formattedMessages);
\n
setMessageFetchFailed(false);
\n
}).catch(err => {
\n
setMessageFetchFailed(true);
\n
/* eslint-disable no-console */
\n\n
console.error(err);
\n
});
\n
}
\n
}, [authState]);
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Messages,
\"
U3xiPl25FsmufxeRxpFVBz8Cguw=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Messages;
\n
export default Messages;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Messages
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/Messages/Messages.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"config"
,
"Messages"
,
"authState"
,
"oktaAuth"
,
"messages"
,
"setMessages"
,
"messageFetchFailed"
,
"setMessageFetchFailed"
,
"isAuthenticated"
,
"accessToken"
,
"getAccessToken"
,
"fetch"
,
"resourceServer"
,
"messagesUrl"
,
"headers"
,
"Authorization"
,
"then"
,
"response"
,
"ok"
,
"Promise"
,
"reject"
,
"json"
,
"data"
,
"index"
,
"formattedMessages"
,
"map"
,
"message"
,
"date"
,
"Date"
,
"day"
,
"toLocaleDateString"
,
"time"
,
"toLocaleTimeString"
,
"text"
,
"id"
,
"catch"
,
"err"
,
"console"
,
"error"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA,OAAOC,MAAP,MAAmB,cAAnB;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AAAA;;AACrB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BT,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAM,CAACU,kBAAD,EAAqBC,qBAArB,IAA8CX,QAAQ,CAAC,KAAD,CAA5D,CAHqB,CAKrB;;AACAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIK,SAAS,IAAIA,SAAS,CAACM,eAA3B,EAA4C;AAC1C,YAAMC,WAAW,GAAGN,QAAQ,CAACO,cAAT,EAApB;AACAC,MAAAA,KAAK,CAACX,MAAM,CAACY,cAAP,CAAsBC,WAAvB,EAAoC;AACvCC,QAAAA,OAAO,EAAE;AACPC,UAAAA,aAAa,EAAG,UAASN,WAAY;AAD9B;AAD8B,OAApC,CAAL,CAKGO,IALH,CAKSC,QAAD,IAAc;AAClB,YAAI,CAACA,QAAQ,CAACC,EAAd,EAAkB;AAChB,iBAAOC,OAAO,CAACC,MAAR,EAAP;AACD;;AACD,eAAOH,QAAQ,CAACI,IAAT,EAAP;AACD,OAVH,EAWGL,IAXH,CAWSM,IAAD,IAAU;AACd,YAAIC,KAAK,GAAG,CAAZ;AACA,cAAMC,iBAAiB,GAAGF,IAAI,CAAClB,QAAL,CAAcqB,GAAd,CAAmBC,OAAD,IAAa;AACvD,gBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,OAAO,CAACC,IAAjB,CAAb;AACA,gBAAME,GAAG,GAAGF,IAAI,CAACG,kBAAL,EAAZ;AACA,gBAAMC,IAAI,GAAGJ,IAAI,CAACK,kBAAL,EAAb;AACAT,UAAAA,KAAK,IAAI,CAAT;AACA,iBAAO;AACLI,YAAAA,IAAI,EAAG,GAAEE,GAAI,IAAGE,IAAK,EADhB;AAELE,YAAAA,IAAI,EAAEP,OAAO,CAACO,IAFT;AAGLC,YAAAA,EAAE,EAAG,WAAUX,KAAM;AAHhB,WAAP;AAKD,SAVyB,CAA1B;AAWAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA1BH,EA2BG4B,KA3BH,CA2BUC,GAAD,IAAS;AACd7B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA8B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OA/BH;AAgCD;AACF,GApCQ,EAoCN,CAAClC,SAAD,CApCM,CAAT;AAsCA,sBACE;AAAA;AAAA;AAAA;AAAA,UADF;AAKD,CAjDD;;GAAMD,Q;UAC4BF,W;;;KAD5BE,Q;AAmDN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n\r\n
import config from '../../config'
\r\n\r\n
const Messages = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [messages, setMessages] = useState(null);
\r\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false);
\r\n\r\n
// fetch messages
\r\n
useEffect(() => {
\r\n
if (authState && authState.isAuthenticated) {
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
fetch(config.resourceServer.messagesUrl, {
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
})
\r\n
.then((response) => {
\r\n
if (!response.ok) {
\r\n
return Promise.reject();
\r\n
}
\r\n
return response.json();
\r\n
})
\r\n
.then((data) => {
\r\n
let index = 0;
\r\n
const formattedMessages = data.messages.map((message) => {
\r\n
const date = new Date(message.date);
\r\n
const day = date.toLocaleDateString();
\r\n
const time = date.toLocaleTimeString();
\r\n
index += 1;
\r\n
return {
\r\n
date: `${day} ${time}`,
\r\n
text: message.text,
\r\n
id: `message-${index}`,
\r\n
};
\r\n
});
\r\n
setMessages(formattedMessages);
\r\n
setMessageFetchFailed(false);
\r\n
})
\r\n
.catch((err) => {
\r\n
setMessageFetchFailed(true);
\r\n
/* eslint-disable no-console */
\r\n
console.error(err);
\r\n
});
\r\n
}
\r\n
}, [authState]);
\r\n\r\n
return (
\r\n
<div>
\r\n\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Messages
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/8b736e351fb2444be36f122502bf7202.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
home
\\\\
Home.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { NavLink } from 'react-router-dom';
\n
import
\"
./Home.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import Updates from './updates/Updates';
\n
import useMessages from '../../util/useMessages';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Home = () => {
\n
_s();
\n\n
const [userInfo, setUserInfo] = useState(null);
\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims;
\n
const messages = useMessages();
\n
useEffect(() => {
\n
setUserInfo(idToken);
\n
}, []);
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
welcome-text
\"
,
\n
children: [
\"
Welcome
\"
, userInfo ? userInfo.name :
\"
...
\"
,
\"
!
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/reportissue
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className:
\"
report-new-issue-button
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
exclamation-triangle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 23,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0Report issues
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 19,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
homepage-content
\"
,
\n
children: /*#__PURE__*/_jsxDEV(Updates, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Home,
\"
hWAI/bNq0ggLUgA8loZKeLHJePQ=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Home;
\n
export default Home;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Home
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/Home.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"FontAwesomeIcon"
,
"Updates"
,
"useMessages"
,
"Home"
,
"userInfo"
,
"setUserInfo"
,
"idToken"
,
"JSON"
,
"parse"
,
"localStorage"
,
"getItem"
,
"claims"
,
"messages"
,
"name"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,YAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMS,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AACA,QAAMC,QAAQ,GAAGV,WAAW,EAA5B;AAEAJ,EAAAA,SAAS,CAAC,MAAM;AACdO,IAAAA,WAAW,CAACC,OAAD,CAAX;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA,+BAAsCF,QAAQ,GAAGA,QAAQ,CAACS,IAAZ,GAAmB,KAAjE;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAAA,+BACE;AAAQ,UAAA,SAAS,EAAC,yBAAlB;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAUE;AAAK,MAAA,SAAS,EAAC,kBAAf;AAAA,6BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAzBD;;GAAMV,I;UAGaD,W;;;KAHbC,I;AA2BN,eAAeA,IAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { NavLink } from 'react-router-dom'
\r\n
import
\"
./Home.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import Updates from './updates/Updates'
\r\n
import useMessages from '../../util/useMessages'
\r\n\r\n
const Home = () => {
\r\n
const [userInfo, setUserInfo] = useState(null);
\r\n
const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims
\r\n
const messages = useMessages()
\r\n\r\n
useEffect(() => {
\r\n
setUserInfo(idToken)
\r\n
}, [])
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
content-header
\"
>
\r\n
<h2 className=
\"
welcome-text
\"
>Welcome {userInfo ? userInfo.name :
\"
...
\"
}!</h2>
\r\n
<NavLink to=
\"
/reportissue
\"
>
\r\n
<button className=
\"
report-new-issue-button
\"
>
\r\n
<FontAwesomeIcon icon=
\"
exclamation-triangle
\"
></FontAwesomeIcon>
\r\n
Report issues
\r\n
</button>
\r\n
</NavLink>
\r\n
</div>
\r\n
<div className=
\"
homepage-content
\"
>
\r\n
<Updates />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default Home"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/906ad0d9a8cb24dbbb6f975ffa747e6e.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
Messages
\\\\
Messages.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React from 'react';
\n
import useMessages from
\"
../../util/useMessages
\"
;
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Messages = () => {
\n
_s();
\n\n
const messages = useMessages();
\n\n
if (messages) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: messages.map(message => /*#__PURE__*/_jsxDEV(
\"
tr
\"
, {
\n
id: message.id,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.date
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.sender
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.text
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 14,
\n
columnNumber: 13
\n
}, this)]
\n
}, message.id, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 11
\n
}, this))
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 9,
\n
columnNumber: 7
\n
}, this);
\n
} else return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h3
\"
, {
\n
children:
\"
Fetching messages...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Messages,
\"
XN0E2gtL1gAmm+PNrJbqZSrG6t4=
\"
, false, function () {
\n
return [useMessages];
\n
});
\n\n
_c = Messages;
\n
export default Messages;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Messages
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/Messages/Messages.jsx"
],
"names"
:[
"React"
,
"useMessages"
,
"Messages"
,
"messages"
,
"map"
,
"message"
,
"id"
,
"date"
,
"sender"
,
"text"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AAAA;;AACrB,QAAMC,QAAQ,GAAGF,WAAW,EAA5B;;AAEA,MAAIE,QAAJ,EAAc;AACZ,wBACE;AAAK,MAAA,SAAS,EAAC,wBAAf;AAAA,gBACGA,QAAQ,CAACC,GAAT,CAAcC,OAAD,iBACZ;AAAI,QAAA,EAAE,EAAEA,OAAO,CAACC,EAAhB;AAAA,gCACE;AAAA,oBAAKD,OAAO,CAACE;AAAb;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,oBAAKF,OAAO,CAACG;AAAb;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAA,oBAAKH,OAAO,CAACI;AAAb;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA,SAAyBJ,OAAO,CAACC,EAAjC;AAAA;AAAA;AAAA;AAAA,cADD;AADH;AAAA;AAAA;AAAA;AAAA,YADF;AAWD,GAZD,MAYO,oBACL;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,2BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADK;AAOR,CAtBD;;GAAMJ,Q;UACaD,W;;;KADbC,Q;AAwBN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import useMessages from
\"
../../util/useMessages
\"\r\n\r\n
const Messages = () => {
\r\n
const messages = useMessages()
\r\n\r\n
if (messages) {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
{messages.map((message) => (
\r\n
<tr id={message.id} key={message.id}>
\r\n
<td>{message.date}</td>
\r\n
<td>{message.sender}</td>
\r\n
<td>{message.text}</td>
\r\n
</tr>
\r\n
))}
\r\n
</div>
\r\n
)
\r\n
} else return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<h3>Fetching messages...</h3>
\r\n
</div>
\r\n
)
\r\n\r\n\r\n
}
\r\n\r\n
export default Messages
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/910e8f3da49ac2e80aeb1ea7a8220a2a.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
Messages
\\\\
Messages.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useState, useEffect } from 'react';
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import config from '../../config';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const Messages = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const [messages, setMessages] = useState(null);
\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false); // fetch messages
\n\n
useEffect(() => {
\n
if (authState && authState.isAuthenticated) {
\n
const accessToken = oktaAuth.getAccessToken();
\n
fetch(config.resourceServer.messagesUrl, {
\n
headers: {
\n
Authorization: `Bearer ${accessToken}`
\n
}
\n
}).then(response => {
\n
if (!response.ok) {
\n
return Promise.reject();
\n
}
\n\n
return response.json();
\n
}).then(data => {
\n
let index = 0;
\n
const formattedMessages = data.messages.map(message => {
\n
const date = new Date(message.date);
\n
const day = date.toLocaleDateString();
\n
const time = date.toLocaleTimeString();
\n
index += 1;
\n
return {
\n
date: `${day} ${time}`,
\n
text: message.text,
\n
id: `message-${index}`
\n
};
\n
});
\n
setMessages(formattedMessages);
\n
setMessageFetchFailed(false);
\n
}).catch(err => {
\n
setMessageFetchFailed(true);
\n
/* eslint-disable no-console */
\n\n
console.error(err);
\n
});
\n
}
\n
}, [authState]);
\n\n
if (messages) {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: messages.map(message => /*#__PURE__*/_jsxDEV(
\"
tr
\"
, {
\n
id: message.id,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.date
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 55,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
td
\"
, {
\n
children: message.text
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 56,
\n
columnNumber: 13
\n
}, this)]
\n
}, message.id, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 11
\n
}, this))
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 7
\n
}, this);
\n
} else return /*#__PURE__*/_jsxDEV(
\"
h3
\"
, {
\n
children:
\"
Fetching messages...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 62,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Messages,
\"
U3xiPl25FsmufxeRxpFVBz8Cguw=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = Messages;
\n
export default Messages;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
Messages
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/Messages/Messages.jsx"
],
"names"
:[
"React"
,
"useState"
,
"useEffect"
,
"useOktaAuth"
,
"config"
,
"Messages"
,
"authState"
,
"oktaAuth"
,
"messages"
,
"setMessages"
,
"messageFetchFailed"
,
"setMessageFetchFailed"
,
"isAuthenticated"
,
"accessToken"
,
"getAccessToken"
,
"fetch"
,
"resourceServer"
,
"messagesUrl"
,
"headers"
,
"Authorization"
,
"then"
,
"response"
,
"ok"
,
"Promise"
,
"reject"
,
"json"
,
"data"
,
"index"
,
"formattedMessages"
,
"map"
,
"message"
,
"date"
,
"Date"
,
"day"
,
"toLocaleDateString"
,
"time"
,
"toLocaleTimeString"
,
"text"
,
"id"
,
"catch"
,
"err"
,
"console"
,
"error"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,WAAT,QAA4B,kBAA5B;AAEA,OAAOC,MAAP,MAAmB,cAAnB;;;AAEA,MAAMC,QAAQ,GAAG,MAAM;AAAA;;AACrB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AACA,QAAM,CAACK,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAM,CAACS,kBAAD,EAAqBC,qBAArB,IAA8CV,QAAQ,CAAC,KAAD,CAA5D,CAHqB,CAKrB;;AACAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAII,SAAS,IAAIA,SAAS,CAACM,eAA3B,EAA4C;AAC1C,YAAMC,WAAW,GAAGN,QAAQ,CAACO,cAAT,EAApB;AACAC,MAAAA,KAAK,CAACX,MAAM,CAACY,cAAP,CAAsBC,WAAvB,EAAoC;AACvCC,QAAAA,OAAO,EAAE;AACPC,UAAAA,aAAa,EAAG,UAASN,WAAY;AAD9B;AAD8B,OAApC,CAAL,CAKGO,IALH,CAKSC,QAAD,IAAc;AAClB,YAAI,CAACA,QAAQ,CAACC,EAAd,EAAkB;AAChB,iBAAOC,OAAO,CAACC,MAAR,EAAP;AACD;;AACD,eAAOH,QAAQ,CAACI,IAAT,EAAP;AACD,OAVH,EAWGL,IAXH,CAWSM,IAAD,IAAU;AACd,YAAIC,KAAK,GAAG,CAAZ;AACA,cAAMC,iBAAiB,GAAGF,IAAI,CAAClB,QAAL,CAAcqB,GAAd,CAAmBC,OAAD,IAAa;AACvD,gBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,OAAO,CAACC,IAAjB,CAAb;AACA,gBAAME,GAAG,GAAGF,IAAI,CAACG,kBAAL,EAAZ;AACA,gBAAMC,IAAI,GAAGJ,IAAI,CAACK,kBAAL,EAAb;AACAT,UAAAA,KAAK,IAAI,CAAT;AACA,iBAAO;AACLI,YAAAA,IAAI,EAAG,GAAEE,GAAI,IAAGE,IAAK,EADhB;AAELE,YAAAA,IAAI,EAAEP,OAAO,CAACO,IAFT;AAGLC,YAAAA,EAAE,EAAG,WAAUX,KAAM;AAHhB,WAAP;AAKD,SAVyB,CAA1B;AAWAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA1BH,EA2BG4B,KA3BH,CA2BUC,GAAD,IAAS;AACd7B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA8B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OA/BH;AAgCD;AACF,GApCQ,EAoCN,CAAClC,SAAD,CApCM,CAAT;;AAsCA,MAAIE,QAAJ,EAAc;AACZ,wBACE;AAAK,MAAA,SAAS,EAAC,wBAAf;AAAA,gBACGA,QAAQ,CAACqB,GAAT,CAAcC,OAAD,iBACZ;AAAI,QAAA,EAAE,EAAEA,OAAO,CAACQ,EAAhB;AAAA,gCACE;AAAA,oBAAKR,OAAO,CAACC;AAAb;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA,oBAAKD,OAAO,CAACO;AAAb;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA,SAAyBP,OAAO,CAACQ,EAAjC;AAAA;AAAA;AAAA;AAAA,cADD;AADH;AAAA;AAAA;AAAA;AAAA,YADF;AAUD,GAXD,MAWO,oBACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UADK;AAKR,CA5DD;;GAAMjC,Q;UAC4BF,W;;;KAD5BE,Q;AA8DN,eAAeA,QAAf"
,
"sourcesContent"
:[
"import React, { useState, useEffect } from 'react'
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n\r\n
import config from '../../config'
\r\n\r\n
const Messages = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n
const [messages, setMessages] = useState(null);
\r\n
const [messageFetchFailed, setMessageFetchFailed] = useState(false);
\r\n\r\n
// fetch messages
\r\n
useEffect(() => {
\r\n
if (authState && authState.isAuthenticated) {
\r\n
const accessToken = oktaAuth.getAccessToken();
\r\n
fetch(config.resourceServer.messagesUrl, {
\r\n
headers: {
\r\n
Authorization: `Bearer ${accessToken}`,
\r\n
},
\r\n
})
\r\n
.then((response) => {
\r\n
if (!response.ok) {
\r\n
return Promise.reject();
\r\n
}
\r\n
return response.json();
\r\n
})
\r\n
.then((data) => {
\r\n
let index = 0;
\r\n
const formattedMessages = data.messages.map((message) => {
\r\n
const date = new Date(message.date);
\r\n
const day = date.toLocaleDateString();
\r\n
const time = date.toLocaleTimeString();
\r\n
index += 1;
\r\n
return {
\r\n
date: `${day} ${time}`,
\r\n
text: message.text,
\r\n
id: `message-${index}`,
\r\n
};
\r\n
});
\r\n
setMessages(formattedMessages);
\r\n
setMessageFetchFailed(false);
\r\n
})
\r\n
.catch((err) => {
\r\n
setMessageFetchFailed(true);
\r\n
/* eslint-disable no-console */
\r\n
console.error(err);
\r\n
});
\r\n
}
\r\n
}, [authState]);
\r\n\r\n
if (messages) {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
{messages.map((message) => (
\r\n
<tr id={message.id} key={message.id}>
\r\n
<td>{message.date}</td>
\r\n
<td>{message.text}</td>
\r\n
</tr>
\r\n
))}
\r\n
</div>
\r\n
)
\r\n
} else return (
\r\n
<h3>Fetching messages...</h3>
\r\n
)
\r\n\r\n\r\n
}
\r\n\r\n
export default Messages
\r\n
"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/95861c402cc25280b0768022e835c758.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
project
\\\\
projectInfo
\\\\
ProjectInfo.jsx
\"
;
\n
import React from 'react';
\n
import
\"
./ProjectInfo.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import ActivityChart from './activityChart/ActivityChart';
\n
import ActivitiesDisplay from './activitiesDisplay/ActivitiesDisplay';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const ProjectInfo = () => {
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
.page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
projectInformationPage-content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-text
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
projectInformationPage-title
\"
,
\n
children:
\"
ReactApp > Activity Dashboard
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 12,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-project-buttons
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
users
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 17,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0Members
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
cog
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 22,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0Settings
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 15,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 11,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
dashboard-activity-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(ActivityChart, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(ActivitiesDisplay, {}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 28,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 10,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_c = ProjectInfo;
\n
export default ProjectInfo;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
ProjectInfo
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/project/projectInfo/ProjectInfo.jsx"
],
"names"
:[
"React"
,
"FontAwesomeIcon"
,
"ActivityChart"
,
"ActivitiesDisplay"
,
"ProjectInfo"
],
"mappings"
:
";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAO,mBAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,aAAP,MAA0B,+BAA1B;AACA,OAAOC,iBAAP,MAA8B,uCAA9B;;;AAGA,MAAMC,WAAW,GAAG,MAAM;AACxB,sBACE;AAAK,IAAA,SAAS,EAAC,yBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,uCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,aAAf;AAAA,+BACE;AAAI,UAAA,SAAS,EAAC,8BAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cADF,eAIE;AAAK,QAAA,SAAS,EAAC,wBAAf;AAAA,gCACE;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAME;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF;AAAA;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAkBE;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,8BACE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,iBAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAlBF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD,CA1BD;;KAAMA,W;AA4BN,eAAeA,WAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import
\"
./ProjectInfo.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import ActivityChart from './activityChart/ActivityChart'
\r\n
import ActivitiesDisplay from './activitiesDisplay/ActivitiesDisplay'
\r\n\r\n\r\n
const ProjectInfo = () => {
\r\n
return (
\r\n
<div className=
\"
.page-content-container
\"
>
\r\n
<div className=
\"
projectInformationPage-content-header
\"
>
\r\n
<div className=
\"
header-text
\"
>
\r\n
<h2 className=
\"
projectInformationPage-title
\"
>ReactApp > Activity Dashboard</h2>
\r\n
</div>
\r\n
<div className=
\"
header-project-buttons
\"
>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
users
\"
></FontAwesomeIcon>
\r\n
Members
\r\n\r\n
</button>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
cog
\"
></FontAwesomeIcon>
\r\n
Settings
\r\n\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
dashboard-activity-container
\"
>
\r\n
<ActivityChart />
\r\n
<ActivitiesDisplay />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ProjectInfo"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
Prev
1
2
3
4
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