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
Hide whitespace changes
Inline
Side-by-side
client/node_modules/.cache/babel-loader/99cab54d1c01e04ff386ae3d140f4b58.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:
\"
page-content-container
\"
,
\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:
\"
projectlist-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"
:
"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"
,
"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=
\"
page-content-container
\"
>
\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=
\"
projectlist-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/9d73f433da9e9cfcb9d45daf48be4dfc.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 { 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
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: 18,
\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: 21,
\n
columnNumber: 13
\n
}, this),
\"\\
xA0
\\
xA0Report issues
\"
]
\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: 17,
\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: 27,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 26,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 16,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(Home,
\"
vOwY8+j2gC2fzH0Q0HS3gN3jsRk=
\"
);
\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"
,
"Home"
,
"userInfo"
,
"setUserInfo"
,
"idToken"
,
"JSON"
,
"parse"
,
"localStorage"
,
"getItem"
,
"claims"
,
"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;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BP,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMQ,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AAEAZ,EAAAA,SAAS,CAAC,MAAM;AACdM,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,CAACQ,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,CAxBD;;GAAMT,I;;KAAAA,I;AA0BN,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\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\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/9d7628ca5e85a2a2a62dff8b60099cb6.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(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h3
\"
, {
\n
children:
\"
Fetching messages...
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 7
\n
}, this)
\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;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,2BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADK;AAOR,CA9DD;;GAAMjC,Q;UAC4BF,W;;;KAD5BE,Q;AAgEN,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
<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/a37ee1ce3e4cae8e592a3135d6ea7232.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,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,uCAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,aAAf;AAAA,+BACE;AAAI,UAAA,SAAS,EAAC,8BAAd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cADF,eAIE;AAAK,QAAA,SAAS,EAAC,wBAAf;AAAA,gCACE;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAME;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA,gBANF;AAAA;AAAA;AAAA;AAAA;AAAA,cAJF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAkBE;AAAK,MAAA,SAAS,EAAC,8BAAf;AAAA,8BACE,QAAC,aAAD;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,iBAAD;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YAlBF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAyBD,CA1BD;;KAAMA,W;AA4BN,eAAeA,WAAf"
,
"sourcesContent"
:[
"import React from 'react'
\r\n
import
\"
./ProjectInfo.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n
import ActivityChart from './activityChart/ActivityChart'
\r\n
import ActivitiesDisplay from './activitiesDisplay/ActivitiesDisplay'
\r\n\r\n\r\n
const ProjectInfo = () => {
\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
projectInformationPage-content-header
\"
>
\r\n
<div className=
\"
header-text
\"
>
\r\n
<h2 className=
\"
projectInformationPage-title
\"
>ReactApp > Activity Dashboard</h2>
\r\n
</div>
\r\n
<div className=
\"
header-project-buttons
\"
>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
users
\"
></FontAwesomeIcon>
\r\n
Members
\r\n\r\n
</button>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
cog
\"
></FontAwesomeIcon>
\r\n
Settings
\r\n\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
dashboard-activity-container
\"
>
\r\n
<ActivityChart />
\r\n
<ActivitiesDisplay />
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default ProjectInfo"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/ad2f2d2ac77b75282702ca96e3f82d3d.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:
\"
.page-content-container
\"
,
\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:
\"
projectlist-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,yBAAf;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,uBAAf;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=
\"
.page-content-container
\"
>
\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=
\"
projectlist-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/ad87dc908e8953179ead398360636bab.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:
\"
[] [Channel]
\"\n
}, void 0, false, {
\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"
],
"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;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;;GAAMH,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
[] [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
))}
\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/bacb98a890cdeef4a40a2fe385fc66b3.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
sender: message.sender,
\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"
,
"sender"
,
"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,MAAM,EAAEP,OAAO,CAACO,MAFX;AAGLC,YAAAA,IAAI,EAAER,OAAO,CAACQ,IAHT;AAILC,YAAAA,EAAE,EAAG,WAAUZ,KAAM;AAJhB,WAAP;AAMD,SAXyB,CAA1B;AAYAlB,QAAAA,WAAW,CAACmB,iBAAD,CAAX;AACAjB,QAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD,OA3BH,EA4BG6B,KA5BH,CA4BUC,GAAD,IAAS;AACd9B,QAAAA,qBAAqB,CAAC,IAAD,CAArB;AACA;;AACA+B,QAAAA,OAAO,CAACC,KAAR,CAAcF,GAAd;AACD,OAhCH;AAiCD;AACF,GArCQ,EAqCN,CAACnC,SAAD,CArCM,CAAT;AAuCA,SAAOE,QAAP;AACD,CA9CD;;GAAMH,W;UAC4BF,W;;;AA+ClC,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
sender: message.sender,
\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/c495a8ee6c1145f5d78c1b026bec2366.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,
\"
] [Channel]
\"
]
\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"
],
"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;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;;GAAMJ,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}] [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
))}
\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/c72cc6fce354f2215bd43fac634a6688.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(messages => /*#__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: 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"
],
"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,CAAcD,QAAD,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;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;AA+DD,CAlED;;GAAMD,O;UACaD,W;;;KADbC,O;AAoEN,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((messages) => (
\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\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/c7ff52de7b5ec20ee6bc9adfdc8b2f2f.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.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,CAACS,IAA/C;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.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/ce81f494320ac029831886e986ec6fac.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n\n
const logout = () => oktaAuth.signOut();
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
href:
\"
./
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Account
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
href:
\"
./
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sliders-h
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Preferences
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
K/H+pngTJ7UqSrk/MkDOYkpAmdU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"logout"
,
"signOut"
],
"mappings"
:
";;;AAAA,OAAOA,KAAP,IAAgBC,MAAhB,EAAwBC,QAAxB,EAAkCC,SAAlC,QAAmD,OAAnD;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,0BAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;;;AAGA,MAAMC,YAAY,GAAG,MAAM;AAAA;;AACzB,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BJ,WAAW,EAA3C;AAEA,QAAMK,WAAW,GAAGT,MAAM,CAAC,IAAD,CAA1B;AACA,QAAM,CAACU,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,KAAD,CAAxC;;AACA,QAAMW,OAAO,GAAG,MAAMD,WAAW,CAAC,CAACD,QAAF,CAAjC;;AAEAR,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMW,cAAc,GAAIC,CAAD,IAAO;AAC5B,UAAIL,WAAW,CAACM,OAAZ,KAAwB,IAAxB,IAAgC,CAACN,WAAW,CAACM,OAAZ,CAAoBC,QAApB,CAA6BF,CAAC,CAACG,MAA/B,CAArC,EAA6E;AAC3EN,QAAAA,WAAW,CAAC,CAACD,QAAF,CAAX;AACD;AACF,KAJD,CADc,CAOd;;;AACA,QAAIA,QAAJ,EAAc;AACZQ,MAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCN,cAAjC;AACD;;AAED,WAAO,MAAM;AACXK,MAAAA,MAAM,CAACE,mBAAP,CAA2B,OAA3B,EAAoCP,cAApC;AACD,KAFD;AAID,GAhBQ,EAgBN,CAACH,QAAD,CAhBM,CAAT;;AAkBA,QAAMW,MAAM,GAAG,MAAMb,QAAQ,CAACc,OAAT,EAArB;;AAEA,sBACE;AAAA,2BACE;AAAK,MAAA,SAAS,EAAC,gCAAf;AAAA,8BACE;AAAQ,QAAA,SAAS,EAAG,oCAAmCZ,QAAQ,GAAG,QAAH,GAAc,UAAW,EAAxF;AAA2F,QAAA,OAAO,EAAEE,OAApG;AAAA,gCACE,QAAC,eAAD;AAAiB,UAAA,SAAS,EAAC,WAA3B;AAAuC,UAAA,IAAI,EAAC;AAA5C;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE,QAAC,eAAD;AAAiB,UAAA,SAAS,EAAC,YAA3B;AAAwC,UAAA,IAAI,EAAC;AAA7C;AAAA;AAAA;AAAA;AAAA,gBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAME;AAAK,QAAA,GAAG,EAAEH,WAAV;AAAuB,QAAA,SAAS,EAAG,8BAA6BC,QAAQ,GAAG,QAAH,GAAc,UAAW,EAAjG;AAAA,+BACE;AAAA,kCACE;AAAA,mCACE;AAAG,cAAA,IAAI,EAAC,IAAR;AAAA,sCACE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,sBADF,kCAEE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC,eAAtB;AAAsC,gBAAA,SAAS,EAAC;AAAhD;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBADF,eAOE;AAAA,mCACE;AAAG,cAAA,IAAI,EAAC,IAAR;AAAA,sCACE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,sBADF,mCAEE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC,eAAtB;AAAsC,gBAAA,SAAS,EAAC;AAAhD;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAPF,eAaE;AAAA,mCACE,QAAC,OAAD;AAAS,cAAA,EAAE,EAAC,WAAZ;AAAA,sCACE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,sBADF,sCAEE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC,eAAtB;AAAsC,gBAAA,SAAS,EAAC;AAAhD;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAbF,eAmBE;AAAA,mCACE;AAAG,cAAA,OAAO,EAAEW,MAAZ;AAAA,sCACE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,sBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,kBAnBF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cANF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADF;AAsCD,CAjED;;GAAMf,Y;UAC4BF,W;;;KAD5BE,Y;AAmEN,eAAeA,YAAf"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\r\n
window.addEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
return () => {
\r\n
window.removeEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
}, [isActive]);
\r\n\r\n
const logout = () => oktaAuth.signOut()
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
></FontAwesomeIcon> Account
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li>
\r\n
<li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/d88e823c52a14adc726dbd8af638b25b.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
\"
, {}, 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;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 { 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/d8bfd394c9c30ceea0fa338f79f29b59.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(messages => /*#__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: 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"
],
"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,CAAcD,QAAD,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;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;;GAAMD,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((messages) => (
\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
))}
\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/de45eeeb472d78a6faa66025cc5ab2be.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.text
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 13,
\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: 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(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"
,
"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;AAAA,SAAyBH,OAAO,CAACC,EAAjC;AAAA;AAAA;AAAA;AAAA,cADD;AADH;AAAA;AAAA;AAAA;AAAA,YADF;AAUD,GAXD,MAWO,oBACL;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,2BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,UADK;AAOR,CArBD;;GAAMJ,Q;UACaD,W;;;KADbC,Q;AAuBN,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.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/e16c344903346b59d1a0a94c1dd3857d.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] [
\"
, message.date,
\"
]
\"
]
\n
}, void 0, true, {
\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"
,
"date"
],
"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,uCACWF,OAAO,CAACG,IADnB;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;;GAAMN,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] [{message.date}]
\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/efea6ca8b103444b566a7c1ce1f6e345.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:
\"
.homepage-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,qBAAf;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=
\"
.homepage-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/f3e2f518d379373bf50f25a96125e6d4.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 { 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
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: 19,
\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: 22,
\n
columnNumber: 15
\n
}, this),
\"\\
xA0
\\
xA0Report issues
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 21,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 20,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 18,
\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: 28,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 27,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 17,
\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: 38,
\n
columnNumber: 9
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this);
\n
}
\n
};
\n\n
_s(Home,
\"
vOwY8+j2gC2fzH0Q0HS3gN3jsRk=
\"
);
\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"
,
"Home"
,
"userInfo"
,
"setUserInfo"
,
"idToken"
,
"JSON"
,
"parse"
,
"localStorage"
,
"getItem"
,
"claims"
,
"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;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BP,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMQ,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AAEAZ,EAAAA,SAAS,CAAC,MAAM;AACdM,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,CAACQ,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,CArCD;;GAAMT,I;;KAAAA,I;AAuCN,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\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\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/f3ffd2225150fd554d2d1e05b4931b08.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
team
\\\\
teamInfo
\\\\
TeamInfo.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import
\"
./TeamInfo.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const TeamInfo = () => {
\n
_s();
\n\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n
return /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
page-content-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
teamInformationPage-content-header
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-text
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
h2
\"
, {
\n
className:
\"
teamInformationPage-title
\"
,
\n
children:
\"
Henriks Meme machine > overview
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 32,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 31,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
header-notification-select-settings-button-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
notification-button-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `notification-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
bell-icon
\"
,
\n
icon:
\"
bell
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 15
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 15
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 21
\n
}, this),
\"\\
xA0
\\
xA0Account
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 21
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 19
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 42,
\n
columnNumber: 17
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 41,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 35,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
settings-button-container
\"
,
\n
children: /*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
cog
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 15
\n
}, this),
\"\\
xA0Settings
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 13
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 34,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 30,
\n
columnNumber: 7
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
teamInformationPage-content-container
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 7
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 29,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(TeamInfo,
\"
+2ios9YLl+dWpD7Y2mDqdcbDdLo=
\"
);
\n\n
_c = TeamInfo;
\n
export default TeamInfo;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
TeamInfo
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/team/teamInfo/TeamInfo.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"FontAwesomeIcon"
,
"TeamInfo"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import
\"
./TeamInfo.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\r\n\r\n
const TeamInfo = () => {
\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\r\n
window.addEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
return () => {
\r\n
window.removeEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
}, [isActive]);
\r\n\r\n
return (
\r\n
<div className=
\"
page-content-container
\"
>
\r\n
<div className=
\"
teamInformationPage-content-header
\"
>
\r\n
<div className=
\"
header-text
\"
>
\r\n
<h2 className=
\"
teamInformationPage-title
\"
>Henriks Meme machine > overview</h2>
\r\n
</div>
\r\n
<div className=
\"
header-notification-select-settings-button-container
\"
>
\r\n
<div className=
\"
notification-button-container
\"
>
\r\n
<button className={`notification-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
bell-icon
\"
icon=
\"
bell
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<a>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
></FontAwesomeIcon> Account
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
settings-button-container
\"
>
\r\n
<button>
\r\n
<FontAwesomeIcon icon=
\"
cog
\"
></FontAwesomeIcon>
\r\n
Settings
\r\n
</button>
\r\n
</div>
\r\n
</div>
\r\n
</div>
\r\n
<div className=
\"
teamInformationPage-content-container
\"
>
\r\n
{/*TODO: components goes here */}
\r\n
</div>
\r\n
</div>
\r\n
)
\r\n
}
\r\n\r\n
export default TeamInfo"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/f954f760c2b30ff4e09c91456b181c49.json
0 → 100644
View file @
d8a97120
{
"ast"
:
null
,
"code"
:
"var _jsxFileName =
\"
C:
\\\\
Users
\\\\
Bruger
\\\\
Desktop
\\\\
Web-projects
\\\\
pipit
\\\\
client
\\\\
src
\\\\
components
\\\\
navbar
\\\\
dropdownMenu
\\\\
NavbarDropdownMenu.jsx
\"
,
\n
_s = $RefreshSig$();
\n\n
import React, { useRef, useState, useEffect } from 'react';
\n
import { NavLink } from
\"
react-router-dom
\"
;
\n
import { useOktaAuth } from '@okta/okta-react';
\n
import
\"
./NavbarDropdownMenu.css
\"
;
\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
\n
import { jsxDEV as _jsxDEV } from
\"
react/jsx-dev-runtime
\"
;
\n\n
const DropdownMenu = () => {
\n
_s();
\n\n
const {
\n
authState,
\n
oktaAuth
\n
} = useOktaAuth();
\n
const dropdownRef = useRef(null);
\n
const [isActive, setIsActive] = useState(false);
\n\n
const onClick = () => setIsActive(!isActive);
\n\n
useEffect(() => {
\n
const pageClickEvent = e => {
\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\n
setIsActive(!isActive);
\n
}
\n
}; // If the item is active (ie open) then listen for clicks
\n\n\n
if (isActive) {
\n
window.addEventListener('click', pageClickEvent);
\n
}
\n\n
return () => {
\n
window.removeEventListener('click', pageClickEvent);
\n
};
\n
}, [isActive]);
\n\n
const logout = () => oktaAuth.signOut();
\n\n
return /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
className:
\"
navbar-user-dropdown-container
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(
\"
button
\"
, {
\n
className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,
\n
onClick: onClick,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
user-icon
\"
,
\n
icon:
\"
user-circle
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 39,
\n
columnNumber: 11
\n
}, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
className:
\"
down-arrow
\"
,
\n
icon:
\"
angle-down
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 40,
\n
columnNumber: 11
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 38,
\n
columnNumber: 9
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
div
\"
, {
\n
ref: dropdownRef,
\n
className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,
\n
children: /*#__PURE__*/_jsxDEV(
\"
ul
\"
, {
\n
children: [/*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
href:
\"
./
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
user
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 47,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Account
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 48,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 46,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 45,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(NavLink, {
\n
to:
\"
/messages
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
envelope
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 53,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Messages
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 54,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 52,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 51,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
href:
\"
./
\"
,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sliders-h
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 59,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Preferences
\"
, /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
chevron-right
\"
,
\n
className:
\"
arrow-right-icon
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 60,
\n
columnNumber: 17
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 58,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 57,
\n
columnNumber: 13
\n
}, this), /*#__PURE__*/_jsxDEV(
\"
li
\"
, {
\n
children: /*#__PURE__*/_jsxDEV(
\"
a
\"
, {
\n
onClick: logout,
\n
children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {
\n
icon:
\"
sign-out-alt
\"\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 65,
\n
columnNumber: 17
\n
}, this),
\"\\
xA0
\\
xA0Log out
\"
]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 64,
\n
columnNumber: 15
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 63,
\n
columnNumber: 13
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 44,
\n
columnNumber: 11
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 43,
\n
columnNumber: 9
\n
}, this)]
\n
}, void 0, true, {
\n
fileName: _jsxFileName,
\n
lineNumber: 37,
\n
columnNumber: 7
\n
}, this)
\n
}, void 0, false, {
\n
fileName: _jsxFileName,
\n
lineNumber: 36,
\n
columnNumber: 5
\n
}, this);
\n
};
\n\n
_s(DropdownMenu,
\"
K/H+pngTJ7UqSrk/MkDOYkpAmdU=
\"
, false, function () {
\n
return [useOktaAuth];
\n
});
\n\n
_c = DropdownMenu;
\n
export default DropdownMenu;
\n\n
var _c;
\n\n
$RefreshReg$(_c,
\"
DropdownMenu
\"
);"
,
"map"
:{
"version"
:
3
,
"sources"
:[
"C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"
],
"names"
:[
"React"
,
"useRef"
,
"useState"
,
"useEffect"
,
"NavLink"
,
"useOktaAuth"
,
"FontAwesomeIcon"
,
"DropdownMenu"
,
"authState"
,
"oktaAuth"
,
"dropdownRef"
,
"isActive"
,
"setIsActive"
,
"onClick"
,
"pageClickEvent"
,
"e"
,
"current"
,
"contains"
,
"target"
,
"window"
,
"addEventListener"
,
"removeEventListener"
,
"logout"
,
"signOut"
],
"mappings"
:
"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"
,
"sourcesContent"
:[
"import React, { useRef, useState, useEffect } from 'react'
\r\n
import { NavLink } from
\"
react-router-dom
\"
;
\r\n
import { useOktaAuth } from '@okta/okta-react';
\r\n
import
\"
./NavbarDropdownMenu.css
\"\r\n
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
\r\n\r\n\r\n
const DropdownMenu = () => {
\r\n
const { authState, oktaAuth } = useOktaAuth();
\r\n\r\n
const dropdownRef = useRef(null);
\r\n
const [isActive, setIsActive] = useState(false);
\r\n
const onClick = () => setIsActive(!isActive);
\r\n\r\n
useEffect(() => {
\r\n
const pageClickEvent = (e) => {
\r\n
if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {
\r\n
setIsActive(!isActive);
\r\n
}
\r\n
};
\r\n\r\n
// If the item is active (ie open) then listen for clicks
\r\n
if (isActive) {
\r\n
window.addEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
return () => {
\r\n
window.removeEventListener('click', pageClickEvent);
\r\n
}
\r\n\r\n
}, [isActive]);
\r\n\r\n
const logout = () => oktaAuth.signOut()
\r\n\r\n
return (
\r\n
<li>
\r\n
<div className=
\"
navbar-user-dropdown-container
\"
>
\r\n
<button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >
\r\n
<FontAwesomeIcon className=
\"
user-icon
\"
icon=
\"
user-circle
\"
></FontAwesomeIcon>
\r\n
<FontAwesomeIcon className=
\"
down-arrow
\"
icon=
\"
angle-down
\"
></FontAwesomeIcon>
\r\n
</button>
\r\n
{/* show submenu?*/}
\r\n
<div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>
\r\n
<ul>
\r\n
<li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
user
\"
></FontAwesomeIcon> Account
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li>
\r\n
<li>
\r\n
<NavLink to=
\"
/messages
\"
>
\r\n
<FontAwesomeIcon icon=
\"
envelope
\"
></FontAwesomeIcon> Messages
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</NavLink>
\r\n
</li>
\r\n
<li>
\r\n
<a href=
\"
./
\"
>
\r\n
<FontAwesomeIcon icon=
\"
sliders-h
\"
></FontAwesomeIcon> Preferences
\r\n
<FontAwesomeIcon icon=
\"
chevron-right
\"
className=
\"
arrow-right-icon
\"
></FontAwesomeIcon>
\r\n
</a>
\r\n
</li>
\r\n
<li>
\r\n
<a onClick={logout}>
\r\n
<FontAwesomeIcon icon=
\"
sign-out-alt
\"
></FontAwesomeIcon> Log out
\r\n
</a>
\r\n
</li>
\r\n
</ul>
\r\n
</div>
\r\n
</div>
\r\n
</li >
\r\n
)
\r\n
}
\r\n\r\n
export default DropdownMenu"
]},
"metadata"
:{},
"sourceType"
:
"module"
}
\ No newline at end of file
client/node_modules/.cache/babel-loader/fa7f0a4cff6efa234637ab738126e602.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:
\"
homepage-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,oBAAf;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=
\"
homepage-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
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