Commit e7319387 authored by Mathias Engelbrecht Pilegård's avatar Mathias Engelbrecht Pilegård
Browse files

Merge branch 'addLogin' into 'master'

Add login

See merge request au593919/pipit!1
parents 0d588800 2c3853a1
......@@ -13,6 +13,7 @@
# misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
......
[{"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js":"1","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.js":"2","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\navigationbar.js":"3","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\Navigationbar.js":"4","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\searchbar\\Searchbar.js":"5","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\userDropdownMenu\\UserDropdownMenu.js":"6","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\navigationLinks\\NavigationLinks.js":"7","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\logo\\Logo.js":"8","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.js":"9","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.js":"10","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.js":"11","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\frontpage\\newUserWelcome\\NewUserWelcome.js":"12","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\homepage\\Homepage.js":"13","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\ProjectInformationPage.js":"14","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\dashboard\\Dashboard.js":"15","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\userActivitiesDisplay\\UserActivitiesDisplay.js":"16","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\homepage\\updates\\Updates.js":"17","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInformationPage\\TeamInformationPage.js":"18","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.js":"19"},{"size":197,"mtime":1626217127935,"results":"20","hashOfConfig":"21"},{"size":1344,"mtime":1628245762756,"results":"22","hashOfConfig":"21"},{"size":2293,"mtime":1626443292886,"results":"23","hashOfConfig":"21"},{"size":776,"mtime":1626993769430,"results":"24","hashOfConfig":"21"},{"size":470,"mtime":1626993058156,"results":"25","hashOfConfig":"21"},{"size":2458,"mtime":1627688227444,"results":"26","hashOfConfig":"21"},{"size":718,"mtime":1626993044395,"results":"27","hashOfConfig":"21"},{"size":548,"mtime":1626993649907,"results":"28","hashOfConfig":"21"},{"size":4240,"mtime":1628111998001,"results":"29","hashOfConfig":"21"},{"size":3832,"mtime":1628160737168,"results":"30","hashOfConfig":"21"},{"size":2911,"mtime":1628160907401,"results":"31","hashOfConfig":"21"},{"size":571,"mtime":1628245544087,"results":"32","hashOfConfig":"21"},{"size":907,"mtime":1626993814636,"results":"33","hashOfConfig":"21"},{"size":1264,"mtime":1627676788904,"results":"34","hashOfConfig":"21"},{"size":3558,"mtime":1627676058235,"results":"35","hashOfConfig":"21"},{"size":2108,"mtime":1626993739635,"results":"36","hashOfConfig":"21"},{"size":2099,"mtime":1626993363824,"results":"37","hashOfConfig":"21"},{"size":2594,"mtime":1626997691570,"results":"38","hashOfConfig":"21"},{"size":3268,"mtime":1628157969348,"results":"39","hashOfConfig":"21"},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},"iyhzrm",{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"45","messages":"46","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"47","messages":"48","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"49","messages":"50","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"55","messages":"56","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"57","usedDeprecatedRules":"42"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"60","usedDeprecatedRules":"42"},{"filePath":"61","messages":"62","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"63","usedDeprecatedRules":"42"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"66","usedDeprecatedRules":"42"},{"filePath":"67","messages":"68","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"69","messages":"70","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"71","messages":"72","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"73","messages":"74","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"77","usedDeprecatedRules":"42"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"80","usedDeprecatedRules":"42"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"83","usedDeprecatedRules":"42"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"86","usedDeprecatedRules":"42"},"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js",[],["87","88"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\navigationbar.js",["89","90","91"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\Navigationbar.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\searchbar\\Searchbar.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\userDropdownMenu\\UserDropdownMenu.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\navigationLinks\\NavigationLinks.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navigationbar\\logo\\Logo.js",["92","93"],"import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./logo.css\"\r\nimport logo_picture from \"../../../images/bird-logo.jpg\"\r\nimport logo_text from \"../../../images/logo-text.jpg\"\r\n\r\nconst Logo = () => {\r\n return (\r\n <h1 className=\"title\">\r\n <span className=\"title-icon\">\r\n <NavLink to=\"/home\" id=\"logo\">\r\n <img src={logo_picture} width=\"24\" height=\"24\"></img>\r\n <img src={logo_text} width=\"48\" height=\"24\"></img>\r\n </NavLink>\r\n </span>\r\n </h1>\r\n )\r\n}\r\n\r\nexport default Logo","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.js",["94"],"import React, { useState } from 'react'\r\nimport \"./reportForm.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Navigationbar from '../navigationbar/Navigationbar'\r\nimport Assign from './assign/Assign'\r\n\r\nconst ReportForm = () => {\r\n return (\r\n <div>\r\n <Navigationbar />\r\n <div className=\"reportForm-container\">\r\n <h2 className=\"reportissuePageText\">Report an issue</h2>\r\n <form action=\"/reportFormData\">\r\n <div className=\"row\">\r\n <div className=\"col-25\">\r\n <label for=\"fissueType\">Type of issue</label>\r\n </div>\r\n <div className=\"col-75\">\r\n <select id=\"fissueType\" className=\"issueType\">\r\n <option value=\"bug\">Bug</option>\r\n <option value=\"usabilityissue\">Usability error</option>\r\n <option value=\"other\">Other</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-25\">\r\n <label for=\"fissueLocation\">Where did you encounter the issue?</label>\r\n </div>\r\n <div class=\"col-75\">\r\n <input type=\"text\" id=\"fissueLocation\" className=\"issueLocation\" ></input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-25\">\r\n <label for=\"fissueDescription\">Describe the issue</label>\r\n </div>\r\n <div class=\"col-75\">\r\n <textarea id=\"fissueDescription\" className=\"issueDescription\"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-25\">\r\n <label for=\"fissueStepsToTeproduce\">What steps did you take before the issue happened?</label>\r\n </div>\r\n <div class=\"col-75\">\r\n <textarea id=\"fissueStepsToTeproduce\" className=\"issueStepsToReproduce\"\r\n placeholder=\"List the steps that occurred before the issue happened:\r\n1.\r\n2.\r\n3.\r\nExpected Result:\r\nActual Result:\">\r\n </textarea>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-25\">\r\n <label for=\"fissueSeverity\">Severity level</label>\r\n </div>\r\n <div className=\"col-75\">\r\n <select id=\"fissueSeverity\" className=\"issueSeverity\">\r\n <option value=\"cosmetic\">Cosmetic - should be corrected when time permits</option>\r\n <option value=\"serious\">Serious - should be corrected in the next release</option>\r\n <option value=\"critical\">Critical - should be corrected as soon as possible</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-25\">\r\n <label for=\"fissueTimeToCorrect\">Time to Correct</label>\r\n </div>\r\n <div className=\"col-75\">\r\n <select id=\"fissueSeverity\" className=\"issueTimeToCorrect\">\r\n <option value=\"lessThanTwoHours\">Less than 2 minutes</option>\r\n <option value=\"lessThanOneToTwoDays\">Less than 1 or 2 days</option>\r\n <option value=\"lessThanOneToTwoWeeks\">Less than 1 or 2 weeks</option>\r\n <option value=\"atLeastTwoWeeks\">More than 2 weeks</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-25\">\r\n <label for=\"fissueAssignToProject\">Assign to</label>\r\n </div>\r\n <div className=\"col-75\">\r\n {/*\r\n <select id=\"fissueAssignToProject\" className=\"issueAssignToProject\">\r\n <option value=\"lessThanTwoHours\">Henriks meme machine - ReactApp</option>\r\n </select>\r\n */}\r\n <Assign />\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row\">\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Submit&nbsp;\r\n <FontAwesomeIcon icon=\"arrow-right\"></FontAwesomeIcon>\r\n </button>\r\n </div>\r\n </form>\r\n </div >\r\n </div >\r\n )\r\n}\r\n\r\nexport default ReportForm","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.js",["95","96"],"import React, { useState } from 'react'\r\nimport { NavLink } from \"react-router-dom\";\r\nimport \"./projectOverview.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Navigationbar from '../../navigationbar/Navigationbar';\r\n\r\nconst ProjectOverview = () => {\r\n const personalProjects = [\r\n { id: \"MyApp\", type: \"personal\" },\r\n { id: \"MyOtherApp\", type: \"personal\" }\r\n ]\r\n\r\n const sharedProjects = [\r\n { id: \"ReactApp\", type: \"shared\", teams: [{ name: \"Henriks Meme Machine\" }, { name: \"Teskeholdet\" }] },\r\n { id: \"Very big ReactApp\", type: \"shared\", teams: [{ name: \"Aubergine\" }] }\r\n ]\r\n\r\n const [sharedProjectsButtonState, setSharedProjectsButtonState] = useState(true);\r\n const [personalProjectsButtonState, setPersonalProjectsButtonState] = useState(false);\r\n\r\n const SharedProjectsButtonActive = () => {\r\n setSharedProjectsButtonState(true);\r\n setPersonalProjectsButtonState(false);\r\n };\r\n\r\n const PersonalProjectsButtonActive = () => {\r\n setSharedProjectsButtonState(false);\r\n setPersonalProjectsButtonState(true);\r\n };\r\n\r\n const ProjectsDisplay = (projects) => {\r\n return (\r\n <div className=\"projectlist\">\r\n <ul>\r\n {projects.map((elements, index) => (\r\n <li>\r\n <div className=\"project-entry\">\r\n <div className=\"project-team-name\">\r\n <NavLink to={`/projects/${projects[index].id}`}>{projects[index].id}&nbsp;\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: &nbsp;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>\r\n <Navigationbar />\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 </div>\r\n )\r\n}\r\n\r\nexport default ProjectOverview","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.js",["97","98"],"import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./teamOverview.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Navigationbar from '../../navigationbar/Navigationbar'\r\n\r\nconst TeamOverview = () => {\r\n\r\n const personalProjects = [\r\n { id: \"MyApp\", type: \"personal\" },\r\n { id: \"MyOtherApp\", type: \"personal\" }\r\n ]\r\n\r\n const sharedProjects = [\r\n { id: \"ReactApp\", type: \"shared\", teams: [{ name: \"Henriks Meme Machine\" }, { name: \"Teskeholdet\" }] },\r\n { id: \"Very big ReactApp\", type: \"shared\", teams: [{ name: \"Aubergine\" }] }\r\n ]\r\n\r\n return (\r\n <div>\r\n <Navigationbar />\r\n <div className=\"teamlist-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"teamlist-title\">Teams</h2>\r\n <div className=\"buttons-container\">\r\n <button className=\"join-team-button\">\r\n Join Team\r\n </button>\r\n <button className=\"create-new-team-button\">\r\n New team\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"teamlist\">\r\n <ul>\r\n <li>\r\n <div className=\"team-entry\">\r\n <div className=\"image-team-name\">\r\n <NavLink to=\"/teams/HenriksMemeMachine\" className=\"team-image-container\">\r\n <FontAwesomeIcon className=\"team-icon\" icon=\"dice-d6\"></FontAwesomeIcon>\r\n </NavLink>\r\n <NavLink to=\"/teams/HenriksMemeMachine\">Henriks meme machine - ReactApp&nbsp;\r\n <FontAwesomeIcon className=\"icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </NavLink>\r\n </div>\r\n <div className=\"team-status-info-container\">\r\n <div className=\"new-messages-info\">\r\n <FontAwesomeIcon className=\"icon\" icon=\"envelope\"></FontAwesomeIcon>\r\n <p>0</p>\r\n <span className=\"tooltip-text\">New messages</span>\r\n </div>\r\n <div className=\"projects-maintained-info\">\r\n <FontAwesomeIcon className=\"icon\" icon=\"project-diagram\"></FontAwesomeIcon>\r\n <p>0</p>\r\n <span className=\"tooltip-text\">Projects maintained</span>\r\n </div>\r\n <div className=\"team-members-info\">\r\n <FontAwesomeIcon className=\"icon\" icon=\"users\"></FontAwesomeIcon>\r\n <p>0</p>\r\n <span className=\"tooltip-text\">Team members</span>\r\n </div>\r\n <div className=\"last-updated-info\">\r\n <p>Date created: &nbsp;21/ 07/ 2021</p>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div >\r\n </div>\r\n )\r\n}\r\n\r\nexport default TeamOverview","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\frontpage\\newUserWelcome\\NewUserWelcome.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\homepage\\Homepage.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\ProjectInformationPage.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\dashboard\\Dashboard.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInformationPage\\userActivitiesDisplay\\UserActivitiesDisplay.js",["99","100","101","102"],"import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport React from 'react'\r\nimport \"./userActivitiesDisplay.css\"\r\n\r\nconst UserActivitiesDisplay = () => {\r\n return (\r\n <div className=\"activity-new-issues-display-container\">\r\n\r\n <div className=\"new-issues-display-container\">\r\n <div className=\"new-issues-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"inbox\"></FontAwesomeIcon>\r\n &nbsp;&nbsp;New issue reports\r\n </p>\r\n </div>\r\n <div className=\"new-issues-display-content\">\r\n <div className=\"new-issue-report-entry\">\r\n <div className=\"entry-text\">\r\n <div className=\"upper-row\">\r\n <a>\r\n [Severity] [type]\r\n </a>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <a>\r\n [project] [time]\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"entry-icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"activity-display-container\">\r\n <div className=\"activity-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"sticky-note\"></FontAwesomeIcon>\r\n &nbsp;&nbsp;Recent Team activities\r\n </p>\r\n </div>\r\n <div className=\"activity-display-content\">\r\n <div className=\"new-issue-report-entry\">\r\n <div className=\"entry-text\">\r\n <div className=\"upper-row\">\r\n <a>\r\n [Name] [action]\r\n </a>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <a>\r\n [project] [time]\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"entry-icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserActivitiesDisplay","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\homepage\\updates\\Updates.js",["103","104","105","106"],"import React from 'react'\r\nimport \"./updates.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nconst Updates = () => {\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 &nbsp;&nbsp;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 &nbsp;&nbsp;New messages\r\n </p>\r\n </div>\r\n <div className=\"new-messages-display-content\">\r\n <div className=\"new-message-entry\">\r\n <div className=\"entry-text\">\r\n <div className=\"upper-row\">\r\n <a>\r\n [Sender] [Channel]\r\n </a>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <a>\r\n [team] [time]\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"entry-icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Updates","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInformationPage\\TeamInformationPage.js",["107"],"import React, { useRef, useState, useEffect } from 'react'\r\nimport \"./teamInformationPage.css\"\r\nimport Navigationbar from '../../navigationbar/Navigationbar';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst TeamInformationPage = () => {\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>\r\n <Navigationbar />\r\n <div className=\"teamInformationPage-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>&nbsp;&nbsp;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 &nbsp;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 </div>\r\n )\r\n}\r\n\r\nexport default TeamInformationPage","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.js",["108","109","110","111","112","113"],"import React, { useState } from 'react'\r\nimport \"./assign.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nconst Assign = () => {\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\r\n const rootDirectoryObjects = [\r\n { id: \"Personal projects\" },\r\n { id: \"Shared projects\" }\r\n ]\r\n\r\n const DirectoryItems = () => {\r\n return (\r\n <div className=\"multi-level\">\r\n <div className=\"item\">\r\n <input type=\"checkbox\" id=\"A\" />\r\n <label for=\"A\">\r\n <FontAwesomeIcon icon=\"folder\" className=\"folder-icon\"></FontAwesomeIcon>\r\n <a>&nbsp; {rootDirectoryObjects[0].id} &nbsp;</a>\r\n <FontAwesomeIcon icon=\"chevron-right\" className=\"arrow-right-icon\"></FontAwesomeIcon>\r\n </label>\r\n\r\n <ul>\r\n {personalProjects.map((elements, index) => (\r\n <li className=\"personalProjectsItem\">\r\n <input type=\"checkbox\" id={`A-${index}`} />\r\n <label for={`A-${index}`}>\r\n <FontAwesomeIcon icon=\"project-diagram\" className=\"project-icon\"></FontAwesomeIcon>\r\n <a>&nbsp; {personalProjects[index].id} &nbsp;</a>\r\n </label>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n\r\n <div className=\"item\">\r\n <input type=\"checkbox\" id=\"B\" />\r\n <label for=\"B\">\r\n <FontAwesomeIcon icon=\"folder\" className=\"folder-icon\"></FontAwesomeIcon>\r\n <a>&nbsp; {rootDirectoryObjects[1].id} &nbsp;</a>\r\n <FontAwesomeIcon icon=\"chevron-right\" className=\"arrow-right-icon\"></FontAwesomeIcon>\r\n </label>\r\n\r\n <ul>\r\n {sharedProjects.map((elements, index) => (\r\n <li><div className=\"sub-item\">\r\n <input type=\"checkbox\" id={`B-${index}`} />\r\n <label for={`B-${index}`}>\r\n <FontAwesomeIcon icon=\"folder\" className=\"folder-icon\"></FontAwesomeIcon>\r\n <a>&nbsp; {sharedProjects[index].id} &nbsp;</a>\r\n <FontAwesomeIcon icon=\"chevron-right\" className=\"arrow-right-icon\"></FontAwesomeIcon>\r\n </label>\r\n\r\n <ul>\r\n {sharedProjects[index].teams.map(team => (\r\n <li><div className=\"team-item\">\r\n <input type=\"checkbox\" id={`team-${team.name}`} />\r\n <label for={`team-${team.name}`}>\r\n <FontAwesomeIcon icon=\"users\" className=\"users-icon\"></FontAwesomeIcon>\r\n <a>&nbsp; {team.name} &nbsp;</a>\r\n </label>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n )\r\n }\r\n\r\n return (\r\n <div className=\"assignSelectContainer\">\r\n <DirectoryItems />\r\n </div >\r\n )\r\n}\r\n\r\nexport default Assign",{"ruleId":"114","replacedBy":"115"},{"ruleId":"116","replacedBy":"117"},{"ruleId":"118","severity":1,"message":"119","line":1,"column":17,"nodeType":"120","messageId":"121","endLine":1,"endColumn":26},{"ruleId":"122","severity":1,"message":"123","line":23,"column":19,"nodeType":"124","endLine":23,"endColumn":66},{"ruleId":"122","severity":1,"message":"123","line":24,"column":19,"nodeType":"124","endLine":24,"endColumn":63},{"ruleId":"122","severity":1,"message":"123","line":12,"column":11,"nodeType":"124","endLine":12,"endColumn":58},{"ruleId":"122","severity":1,"message":"123","line":13,"column":11,"nodeType":"124","endLine":13,"endColumn":55},{"ruleId":"118","severity":1,"message":"125","line":1,"column":17,"nodeType":"120","messageId":"121","endLine":1,"endColumn":25},{"ruleId":"126","severity":1,"message":"127","line":78,"column":13,"nodeType":"124","endLine":78,"endColumn":125},{"ruleId":"126","severity":1,"message":"127","line":79,"column":13,"nodeType":"124","endLine":79,"endColumn":129},{"ruleId":"118","severity":1,"message":"128","line":9,"column":9,"nodeType":"120","messageId":"121","endLine":9,"endColumn":25},{"ruleId":"118","severity":1,"message":"129","line":14,"column":9,"nodeType":"120","messageId":"121","endLine":14,"endColumn":23},{"ruleId":"126","severity":1,"message":"127","line":20,"column":17,"nodeType":"124","endLine":20,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":25,"column":17,"nodeType":"124","endLine":25,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":48,"column":17,"nodeType":"124","endLine":48,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":53,"column":17,"nodeType":"124","endLine":53,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":20,"column":17,"nodeType":"124","endLine":20,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":25,"column":17,"nodeType":"124","endLine":25,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":48,"column":17,"nodeType":"124","endLine":48,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":53,"column":17,"nodeType":"124","endLine":53,"endColumn":20},{"ruleId":"126","severity":1,"message":"127","line":46,"column":21,"nodeType":"124","endLine":46,"endColumn":24},{"ruleId":"118","severity":1,"message":"125","line":1,"column":17,"nodeType":"120","messageId":"121","endLine":1,"endColumn":25},{"ruleId":"126","severity":1,"message":"127","line":29,"column":13,"nodeType":"124","endLine":29,"endColumn":16},{"ruleId":"126","severity":1,"message":"127","line":39,"column":19,"nodeType":"124","endLine":39,"endColumn":22},{"ruleId":"126","severity":1,"message":"127","line":50,"column":13,"nodeType":"124","endLine":50,"endColumn":16},{"ruleId":"126","severity":1,"message":"127","line":60,"column":19,"nodeType":"124","endLine":60,"endColumn":22},{"ruleId":"126","severity":1,"message":"127","line":70,"column":25,"nodeType":"124","endLine":70,"endColumn":28},"no-native-reassign",["130"],"no-negated-in-lhs",["131"],"no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'useState' is defined but never used.","jsx-a11y/anchor-is-valid","The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md","'personalProjects' is assigned a value but never used.","'sharedProjects' is assigned a value but never used.","no-global-assign","no-unsafe-negation"]
\ No newline at end of file
[{"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js":"1","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js":"2","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\changePassword\\ChangePassword.js":"3","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\removeAccount\\RemoveAccount.js":"4","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\updateUserData\\UserDataInfo.js":"5","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.js":"6","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\reportForm\\ReportForm.js":"7","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\Messages\\Messages.js":"8","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\account\\Account.js":"9","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\home\\Home.js":"10","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\Login.js":"11","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.js":"12","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectOverview\\ProjectOverview.js":"13","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\team\\teamOverview\\TeamOverview.js":"14","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\ProjectInfo.js":"15","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\team\\teamInfo\\TeamInfo.js":"16","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.js":"17","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\removeAccount\\confirmRemoveAccountModal\\ConfirmRemoveAccountModal.js":"18","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\reportForm\\assign\\Assign.js":"19","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\home\\updates\\Updates.js":"20","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\signUp\\SignUp.js":"21","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\passwordReset\\PasswordForgotModal.js":"22","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.js":"23","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.js":"24","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.js":"25","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\dropdownMenu\\NavbarDropdownMenu.js":"26","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\activityChart\\ActivityChart.js":"27","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.js":"28","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\updateUserData\\updateUserDataModal\\UpdateUserDataModal.js":"29","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\messageModal\\MessageModal.js":"30"},{"size":285,"mtime":1628516023915,"results":"31","hashOfConfig":"32"},{"size":679,"mtime":1630597978614,"results":"33","hashOfConfig":"32"},{"size":4978,"mtime":1630604768651,"results":"34","hashOfConfig":"32"},{"size":1193,"mtime":1630598628940,"results":"35","hashOfConfig":"32"},{"size":2268,"mtime":1630602456219,"results":"36","hashOfConfig":"32"},{"size":2100,"mtime":1630597947062,"results":"37","hashOfConfig":"32"},{"size":3967,"mtime":1630590216333,"results":"38","hashOfConfig":"32"},{"size":626,"mtime":1630590171605,"results":"39","hashOfConfig":"32"},{"size":827,"mtime":1630600282620,"results":"40","hashOfConfig":"32"},{"size":1279,"mtime":1630590114274,"results":"41","hashOfConfig":"32"},{"size":2713,"mtime":1630590143680,"results":"42","hashOfConfig":"32"},{"size":906,"mtime":1630590064713,"results":"43","hashOfConfig":"32"},{"size":3660,"mtime":1630590207983,"results":"44","hashOfConfig":"32"},{"size":2694,"mtime":1630590244248,"results":"45","hashOfConfig":"32"},{"size":1068,"mtime":1630590183157,"results":"46","hashOfConfig":"32"},{"size":2374,"mtime":1630590235192,"results":"47","hashOfConfig":"32"},{"size":1489,"mtime":1630590258335,"results":"48","hashOfConfig":"32"},{"size":2003,"mtime":1630598660619,"results":"49","hashOfConfig":"32"},{"size":3264,"mtime":1630590221535,"results":"50","hashOfConfig":"32"},{"size":2334,"mtime":1630590120023,"results":"51","hashOfConfig":"32"},{"size":5569,"mtime":1630601630619,"results":"52","hashOfConfig":"32"},{"size":3623,"mtime":1630598820339,"results":"53","hashOfConfig":"32"},{"size":697,"mtime":1630590050913,"results":"54","hashOfConfig":"32"},{"size":548,"mtime":1630590043135,"results":"55","hashOfConfig":"32"},{"size":470,"mtime":1630590058062,"results":"56","hashOfConfig":"32"},{"size":3533,"mtime":1630590033678,"results":"57","hashOfConfig":"32"},{"size":3570,"mtime":1630590189058,"results":"58","hashOfConfig":"32"},{"size":2096,"mtime":1630590196227,"results":"59","hashOfConfig":"32"},{"size":3354,"mtime":1630602590152,"results":"60","hashOfConfig":"32"},{"size":517,"mtime":1630601765877,"results":"61","hashOfConfig":"32"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"64"},"iyhzrm",{"filePath":"65","messages":"66","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"67","messages":"68","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"69","messages":"70","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"71","messages":"72","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"73","messages":"74","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"75","messages":"76","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"79","messages":"80","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"83","messages":"84","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"85","messages":"86","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"87","messages":"88","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"93","messages":"94","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"95","messages":"96","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"97","messages":"98","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"99","messages":"100","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"103","messages":"104","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"105","messages":"106","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"107","messages":"108","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"109","messages":"110","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"111","messages":"112","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"115","messages":"116","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"117","messages":"118","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"119","messages":"120","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"121","messages":"122","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js",[],["123","124"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js",["125"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\changePassword\\ChangePassword.js",["126"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\removeAccount\\RemoveAccount.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\updateUserData\\UserDataInfo.js",["127"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\reportForm\\ReportForm.js",["128"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\Messages\\Messages.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\account\\Account.js",["129","130","131"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\home\\Home.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\Login.js",["132","133","134","135","136","137"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.js",["138"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectOverview\\ProjectOverview.js",["139","140"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\team\\teamOverview\\TeamOverview.js",["141","142"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\ProjectInfo.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\team\\teamInfo\\TeamInfo.js",["143"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.js",["144"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\removeAccount\\confirmRemoveAccountModal\\ConfirmRemoveAccountModal.js",["145"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\reportForm\\assign\\Assign.js",["146","147","148","149","150","151"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\home\\updates\\Updates.js",["152","153","154","155"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\signUp\\SignUp.js",["156","157","158","159"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\login\\passwordReset\\PasswordForgotModal.js",["160","161"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.js",["162","163"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\dropdownMenu\\NavbarDropdownMenu.js",["164"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\activityChart\\ActivityChart.js",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\pages\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.js",["165","166","167","168"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\updateUserData\\updateUserDataModal\\UpdateUserDataModal.js",["169"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\messageModal\\MessageModal.js",["170"],{"ruleId":"171","replacedBy":"172"},{"ruleId":"173","replacedBy":"174"},{"ruleId":"175","severity":1,"message":"176","line":1,"column":1,"nodeType":"177","endLine":17,"endColumn":3},{"ruleId":"178","severity":1,"message":"179","line":66,"column":23,"nodeType":"180","messageId":"181","endLine":66,"endColumn":25},{"ruleId":"178","severity":1,"message":"179","line":20,"column":70,"nodeType":"180","messageId":"181","endLine":20,"endColumn":72},{"ruleId":"182","severity":1,"message":"183","line":1,"column":17,"nodeType":"184","messageId":"185","endLine":1,"endColumn":25},{"ruleId":"182","severity":1,"message":"183","line":2,"column":17,"nodeType":"184","messageId":"185","endLine":2,"endColumn":25},{"ruleId":"182","severity":1,"message":"186","line":2,"column":27,"nodeType":"184","messageId":"185","endLine":2,"endColumn":36},{"ruleId":"182","severity":1,"message":"187","line":5,"column":8,"nodeType":"184","messageId":"185","endLine":5,"endColumn":33},{"ruleId":"182","severity":1,"message":"186","line":1,"column":27,"nodeType":"184","messageId":"185","endLine":1,"endColumn":36},{"ruleId":"182","severity":1,"message":"188","line":1,"column":38,"nodeType":"184","messageId":"185","endLine":1,"endColumn":44},{"ruleId":"182","severity":1,"message":"189","line":6,"column":10,"nodeType":"184","messageId":"185","endLine":6,"endColumn":17},{"ruleId":"182","severity":1,"message":"190","line":7,"column":8,"nodeType":"184","messageId":"185","endLine":7,"endColumn":14},{"ruleId":"182","severity":1,"message":"191","line":8,"column":8,"nodeType":"184","messageId":"185","endLine":8,"endColumn":14},{"ruleId":"182","severity":1,"message":"192","line":32,"column":9,"nodeType":"184","messageId":"185","endLine":32,"endColumn":28},{"ruleId":"182","severity":1,"message":"193","line":10,"column":22,"nodeType":"184","messageId":"185","endLine":10,"endColumn":30},{"ruleId":"194","severity":1,"message":"195","line":75,"column":11,"nodeType":"196","endLine":75,"endColumn":123},{"ruleId":"194","severity":1,"message":"195","line":76,"column":11,"nodeType":"196","endLine":76,"endColumn":127},{"ruleId":"182","severity":1,"message":"197","line":8,"column":9,"nodeType":"184","messageId":"185","endLine":8,"endColumn":25},{"ruleId":"182","severity":1,"message":"198","line":13,"column":9,"nodeType":"184","messageId":"185","endLine":13,"endColumn":23},{"ruleId":"194","severity":1,"message":"195","line":43,"column":19,"nodeType":"196","endLine":43,"endColumn":22},{"ruleId":"199","severity":1,"message":"200","line":47,"column":6,"nodeType":"201","endLine":47,"endColumn":17,"suggestions":"202"},{"ruleId":"182","severity":1,"message":"203","line":11,"column":9,"nodeType":"184","messageId":"185","endLine":11,"endColumn":17},{"ruleId":"182","severity":1,"message":"183","line":1,"column":17,"nodeType":"184","messageId":"185","endLine":1,"endColumn":25},{"ruleId":"194","severity":1,"message":"195","line":29,"column":13,"nodeType":"196","endLine":29,"endColumn":16},{"ruleId":"194","severity":1,"message":"195","line":39,"column":19,"nodeType":"196","endLine":39,"endColumn":22},{"ruleId":"194","severity":1,"message":"195","line":50,"column":13,"nodeType":"196","endLine":50,"endColumn":16},{"ruleId":"194","severity":1,"message":"195","line":60,"column":19,"nodeType":"196","endLine":60,"endColumn":22},{"ruleId":"194","severity":1,"message":"195","line":70,"column":25,"nodeType":"196","endLine":70,"endColumn":28},{"ruleId":"194","severity":1,"message":"195","line":23,"column":17,"nodeType":"196","endLine":23,"endColumn":20},{"ruleId":"194","severity":1,"message":"195","line":28,"column":17,"nodeType":"196","endLine":28,"endColumn":20},{"ruleId":"194","severity":1,"message":"195","line":52,"column":19,"nodeType":"196","endLine":52,"endColumn":22},{"ruleId":"194","severity":1,"message":"195","line":57,"column":19,"nodeType":"196","endLine":57,"endColumn":22},{"ruleId":"182","severity":1,"message":"204","line":8,"column":11,"nodeType":"184","messageId":"185","endLine":8,"endColumn":20},{"ruleId":"182","severity":1,"message":"205","line":9,"column":10,"nodeType":"184","messageId":"185","endLine":9,"endColumn":22},{"ruleId":"199","severity":1,"message":"206","line":31,"column":6,"nodeType":"201","endLine":31,"endColumn":33,"suggestions":"207"},{"ruleId":"178","severity":1,"message":"179","line":84,"column":20,"nodeType":"180","messageId":"181","endLine":84,"endColumn":22},{"ruleId":"199","severity":1,"message":"208","line":38,"column":6,"nodeType":"201","endLine":38,"endColumn":41,"suggestions":"209"},{"ruleId":"194","severity":1,"message":"195","line":71,"column":11,"nodeType":"196","endLine":71,"endColumn":56},{"ruleId":"210","severity":1,"message":"211","line":12,"column":11,"nodeType":"196","endLine":12,"endColumn":58},{"ruleId":"210","severity":1,"message":"211","line":13,"column":11,"nodeType":"196","endLine":13,"endColumn":55},{"ruleId":"194","severity":1,"message":"195","line":88,"column":15,"nodeType":"196","endLine":88,"endColumn":35},{"ruleId":"194","severity":1,"message":"195","line":20,"column":17,"nodeType":"196","endLine":20,"endColumn":20},{"ruleId":"194","severity":1,"message":"195","line":25,"column":17,"nodeType":"196","endLine":25,"endColumn":20},{"ruleId":"194","severity":1,"message":"195","line":48,"column":17,"nodeType":"196","endLine":48,"endColumn":20},{"ruleId":"194","severity":1,"message":"195","line":53,"column":17,"nodeType":"196","endLine":53,"endColumn":20},{"ruleId":"182","severity":1,"message":"203","line":11,"column":9,"nodeType":"184","messageId":"185","endLine":11,"endColumn":17},{"ruleId":"182","severity":1,"message":"203","line":4,"column":9,"nodeType":"184","messageId":"185","endLine":4,"endColumn":17},"no-native-reassign",["212"],"no-negated-in-lhs",["213"],"import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","'useEffect' is defined but never used.","'ConfirmRemoveAccountModal' is defined but never used.","'useRef' is defined but never used.","'NavLink' is defined but never used.","'signUp' is defined but never used.","'config' is defined but never used.","'loginRequestOptions' is assigned a value but never used.","'oktaAuth' is assigned a value but never used.","jsx-a11y/anchor-is-valid","The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md","JSXOpeningElement","'personalProjects' is assigned a value but never used.","'sharedProjects' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'oktaAuth'. Either include it or remove the dependency array.","ArrayExpression",["214"],"'stopProp' is assigned a value but never used.","'authState' is assigned a value but never used.","'sessionToken' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'toggleSignUpFormVisible'. Either include it or remove the dependency array.",["215"],"React Hook useEffect has a missing dependency: 'toggleForgotPasswordFormVisible'. Either include it or remove the dependency array.",["216"],"jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","no-global-assign","no-unsafe-negation",{"desc":"217","fix":"218"},{"desc":"219","fix":"220"},{"desc":"221","fix":"222"},"Update the dependencies array to be: [authState, oktaAuth]",{"range":"223","text":"224"},"Update the dependencies array to be: [signUpFormVisibilityState, toggleSignUpFormVisible]",{"range":"225","text":"226"},"Update the dependencies array to be: [forgotPasswordFormVisibilityState, toggleForgotPasswordFormVisible]",{"range":"227","text":"228"},[1422,1433],"[authState, oktaAuth]",[1028,1055],"[signUpFormVisibilityState, toggleSignUpFormVisible]",[1372,1407],"[forgotPasswordFormVisibilityState, toggleForgotPasswordFormVisible]"]
\ No newline at end of file
{"ast":null,"code":"import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n\nvar pick = flatRest(function (object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\nexport default pick;","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/lodash-es/pick.js"],"names":["basePick","flatRest","pick","object","paths"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,gBAArB;AACA,OAAOC,QAAP,MAAqB,gBAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,IAAI,GAAGD,QAAQ,CAAC,UAASE,MAAT,EAAiBC,KAAjB,EAAwB;AAC1C,SAAOD,MAAM,IAAI,IAAV,GAAiB,EAAjB,GAAsBH,QAAQ,CAACG,MAAD,EAASC,KAAT,CAArC;AACD,CAFkB,CAAnB;AAIA,eAAeF,IAAf","sourcesContent":["import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\home\\\\Home.jsx\",\n _s = $RefreshSig$();\n\nimport { useOktaAuth } from \"@okta/okta-react\";\nimport React, { useState, useEffect } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport \"./Home.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Updates from './updates/Updates';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst Home = () => {\n _s();\n\n const {\n authState,\n oktaAuth\n } = useOktaAuth();\n const [userInfo, setUserInfo] = useState(null);\n useEffect(() => {\n oktaAuth.token.getUserInfo().then(info => {\n setUserInfo(info);\n });\n });\n\n if (userInfo) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"homepage-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: [\"Welcome \", userInfo.given_name, \"!\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\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: 25,\n columnNumber: 15\n }, this), \"\\xA0\\xA0Report issues\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\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: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this);\n } else {\n return /*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Loading...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 7\n }, this);\n }\n};\n\n_s(Home, \"/7FunoA1ejJNU8uKGTy1GZFqU2I=\", false, function () {\n return [useOktaAuth];\n});\n\n_c = Home;\nexport default Home;\n\nvar _c;\n\n$RefreshReg$(_c, \"Home\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/home/Home.jsx"],"names":["useOktaAuth","React","useState","useEffect","NavLink","FontAwesomeIcon","Updates","Home","authState","oktaAuth","userInfo","setUserInfo","token","getUserInfo","then","info","given_name"],"mappings":";;;AAAA,SAASA,WAAT,QAA4B,kBAA5B;AACA,OAAOC,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;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA0BT,WAAW,EAA3C;AACA,QAAM,CAACU,QAAD,EAAWC,WAAX,IAA0BT,QAAQ,CAAC,IAAD,CAAxC;AAEAC,EAAAA,SAAS,CAAC,MAAM;AACdM,IAAAA,QAAQ,CAACG,KAAT,CAAeC,WAAf,GAA6BC,IAA7B,CAAkCC,IAAI,IAAI;AACxCJ,MAAAA,WAAW,CAACI,IAAD,CAAX;AACD,KAFD;AAGD,GAJQ,CAAT;;AAMA,MAAIL,QAAJ,EAAc;AACZ,wBACE;AAAK,MAAA,SAAS,EAAC,oBAAf;AAAA,8BACE;AAAK,QAAA,SAAS,EAAC,gBAAf;AAAA,gCACE;AAAI,UAAA,SAAS,EAAC,cAAd;AAAA,iCAAsCA,QAAQ,CAACM,UAA/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,wBACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YADF;AAGD;AAGF,CApCD;;GAAMT,I;UAC4BP,W;;;KAD5BO,I;AAsCN,eAAeA,IAAf","sourcesContent":["import { useOktaAuth } from \"@okta/okta-react\";\r\nimport React, { useState, useEffect } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./Home.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Updates from './updates/Updates'\r\n\r\nconst Home = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [userInfo, setUserInfo] = useState(null);\r\n\r\n useEffect(() => {\r\n oktaAuth.token.getUserInfo().then(info => {\r\n setUserInfo(info);\r\n });\r\n })\r\n\r\n if (userInfo) {\r\n return (\r\n <div className=\"homepage-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome {userInfo.given_name}!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &nbsp;&nbsp;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 return (\r\n <h1>Loading...</h1>\r\n )\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Home"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\App.jsx\",\n _s = $RefreshSig$();\n\nimport React from \"react\";\nimport { Route, Switch, useHistory } from \"react-router-dom\";\nimport { useOktaAuth } from '@okta/okta-react';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';\nimport { Security, SecureRoute, LoginCallback } from \"@okta/okta-react\";\nimport \"./style.css\";\nimport config from \"./config\"; //Components\n\nimport Login from \"./pages/login/Login\";\nimport Navbar from \"./components/navbar/Navbar\";\nimport Home from \"./pages/home/Home\";\nimport ReportForm from \"./pages/reportForm/ReportForm\";\nimport ProjectOverview from \"./pages/project/projectOverview/ProjectOverview\";\nimport ProjectInfo from \"./pages/project/projectInfo/ProjectInfo\";\nimport TeamOverview from \"./pages/team/teamOverview/TeamOverview\";\nimport TeamInfo from \"./pages/team/teamInfo/TeamInfo\";\nimport Messages from \"./pages/Messages/Messages\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nlibrary.add(fas);\nconst oktaAuth = new OktaAuth(config.oidc);\nconst CALLBACK_PATH = '/login/callback';\n\nconst App = () => {\n _s();\n\n const history = useHistory();\n const {\n authState\n } = oktaAuth.isAuthenticated;\n\n const restoreOriginalUri = async (_oktaAuth, originalUri) => {\n history.replace(toRelativeUrl(originalUri || '/', window.location.origin));\n };\n\n return /*#__PURE__*/_jsxDEV(Security, {\n oktaAuth: oktaAuth,\n restoreOriginalUri: restoreOriginalUri,\n children: [/*#__PURE__*/_jsxDEV(Navbar, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Switch, {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n exact: true,\n path: \"/\",\n component: Login\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: CALLBACK_PATH,\n component: LoginCallback\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/home\",\n component: Home\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/reportissue\",\n component: ReportForm\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/projects\",\n component: ProjectOverview\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/ReactApp\",\n component: ProjectInfo\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/teams\",\n component: TeamOverview\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/HenriksMemeMachine\",\n component: TeamInfo\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 45,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(SecureRoute, {\n path: \"/messages\",\n component: Messages\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 5\n }, this);\n};\n\n_s(App, \"9cZfZ04734qoCGIctmKX7+sX6eU=\", false, function () {\n return [useHistory];\n});\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/App.jsx"],"names":["React","Route","Switch","useHistory","useOktaAuth","library","fas","OktaAuth","toRelativeUrl","Security","SecureRoute","LoginCallback","config","Login","Navbar","Home","ReportForm","ProjectOverview","ProjectInfo","TeamOverview","TeamInfo","Messages","add","oktaAuth","oidc","CALLBACK_PATH","App","history","authState","isAuthenticated","restoreOriginalUri","_oktaAuth","originalUri","replace","window","location","origin"],"mappings":"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","sourcesContent":["import React from \"react\"\r\nimport { Route, Switch, useHistory } from \"react-router-dom\"\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\nimport { fas } from '@fortawesome/free-solid-svg-icons'\r\nimport { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';\r\nimport { Security, SecureRoute, LoginCallback } from \"@okta/okta-react\"\r\nimport \"./style.css\"\r\nimport config from \"./config\"\r\n\r\n//Components\r\nimport Login from \"./pages/login/Login\"\r\nimport Navbar from \"./components/navbar/Navbar\"\r\nimport Home from \"./pages/home/Home\"\r\nimport ReportForm from \"./pages/reportForm/ReportForm\"\r\nimport ProjectOverview from \"./pages/project/projectOverview/ProjectOverview\"\r\nimport ProjectInfo from \"./pages/project/projectInfo/ProjectInfo\"\r\nimport TeamOverview from \"./pages/team/teamOverview/TeamOverview\"\r\nimport TeamInfo from \"./pages/team/teamInfo/TeamInfo\"\r\nimport Messages from \"./pages/Messages/Messages\"\r\n\r\nlibrary.add(fas)\r\n\r\nconst oktaAuth = new OktaAuth(config.oidc);\r\nconst CALLBACK_PATH = '/login/callback';\r\n\r\nconst App = () => {\r\n const history = useHistory()\r\n const { authState } = oktaAuth.isAuthenticated\r\n const restoreOriginalUri = async (_oktaAuth, originalUri) => {\r\n history.replace(toRelativeUrl(originalUri || '/', window.location.origin))\r\n }\r\n\r\n return (\r\n <Security oktaAuth={oktaAuth} restoreOriginalUri={restoreOriginalUri}>\r\n <Navbar />\r\n <Switch>\r\n <Route exact path=\"/\" component={Login} />\r\n <Route path={CALLBACK_PATH} component={LoginCallback} />\r\n <SecureRoute path=\"/home\" component={Home} />\r\n <SecureRoute path=\"/reportissue\" component={ReportForm} />\r\n <SecureRoute path=\"/projects\" component={ProjectOverview} />\r\n <SecureRoute path=\"/ReactApp\" component={ProjectInfo} />\r\n <SecureRoute path=\"/teams\" component={TeamOverview} />\r\n <SecureRoute path=\"/HenriksMemeMachine\" component={TeamInfo} />\r\n <SecureRoute path=\"/messages\" component={Messages} />\r\n </Switch>\r\n </Security>\r\n )\r\n}\r\n\r\nexport default App"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/axios/lib/core/buildFullPath.js"],"names":["isAbsoluteURL","require","combineURLs","module","exports","buildFullPath","baseURL","requestedURL"],"mappings":"AAAA;;AAEA,IAAIA,aAAa,GAAGC,OAAO,CAAC,0BAAD,CAA3B;;AACA,IAAIC,WAAW,GAAGD,OAAO,CAAC,wBAAD,CAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAE,MAAM,CAACC,OAAP,GAAiB,SAASC,aAAT,CAAuBC,OAAvB,EAAgCC,YAAhC,EAA8C;AAC7D,MAAID,OAAO,IAAI,CAACN,aAAa,CAACO,YAAD,CAA7B,EAA6C;AAC3C,WAAOL,WAAW,CAACI,OAAD,EAAUC,YAAV,CAAlB;AACD;;AACD,SAAOA,YAAP;AACD,CALD","sourcesContent":["'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n"]},"metadata":{},"sourceType":"script"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\App.jsx\";\nimport React from \"react\";\nimport { BrowserRouter as Router, Route } from \"react-router-dom\";\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons'; //Components\n\nimport Login from \"./components/login/Login\";\nimport Navbar from \"./components/navbar/Navbar\";\nimport Home from \"./components/home/Home\";\nimport ReportForm from \"./components/reportForm/ReportForm\";\nimport ProjectOverview from \"./components/project/projectOverview/ProjectOverview\";\nimport ProjectInfo from \"./components/project/projectInfo/ProjectInfo\";\nimport TeamOverview from \"./components/team/teamOverview/TeamOverview\";\nimport TeamInfo from \"./components/team/teamInfo/TeamInfo\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nlibrary.add(fas);\n\nconst App = () => /*#__PURE__*/_jsxDEV(Router, {\n children: [/*#__PURE__*/_jsxDEV(Navbar, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 5\n }, this), /*#__PURE__*/_jsxDEV(\"switch\", {\n children: [/*#__PURE__*/_jsxDEV(Route, {\n path: \"/\",\n exact: true,\n component: Login\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/home\",\n component: Home\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/reportissue\",\n component: ReportForm\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/projects\",\n component: ProjectOverview\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/ReactApp\",\n component: ProjectInfo\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/teams\",\n component: TeamOverview\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Route, {\n path: \"/teams/HenriksMemeMachine\",\n component: TeamInfo\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 5\n }, this)]\n}, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 3\n}, this);\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/App.jsx"],"names":["React","BrowserRouter","Router","Route","library","fas","Login","Navbar","Home","ReportForm","ProjectOverview","ProjectInfo","TeamOverview","TeamInfo","add","App"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,aAAa,IAAIC,MAA1B,EAAkCC,KAAlC,QAA+C,kBAA/C;AACA,SAASC,OAAT,QAAwB,mCAAxB;AACA,SAASC,GAAT,QAAoB,mCAApB,C,CAEA;;AACA,OAAOC,KAAP,MAAkB,0BAAlB;AACA,OAAOC,MAAP,MAAmB,4BAAnB;AACA,OAAOC,IAAP,MAAiB,wBAAjB;AACA,OAAOC,UAAP,MAAuB,oCAAvB;AACA,OAAOC,eAAP,MAA4B,sDAA5B;AACA,OAAOC,WAAP,MAAwB,8CAAxB;AACA,OAAOC,YAAP,MAAyB,6CAAzB;AACA,OAAOC,QAAP,MAAqB,qCAArB;;AAGAT,OAAO,CAACU,GAAR,CAAYT,GAAZ;;AAEA,MAAMU,GAAG,GAAG,mBAEV,QAAC,MAAD;AAAA,0BACE,QAAC,MAAD;AAAA;AAAA;AAAA;AAAA,UADF,eAEE;AAAA,4BACE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,GAAZ;AAAgB,MAAA,KAAK,MAArB;AAAsB,MAAA,SAAS,EAAET;AAAjC;AAAA;AAAA;AAAA;AAAA,YADF,eAEE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,OAAZ;AAAoB,MAAA,SAAS,EAAEE;AAA/B;AAAA;AAAA;AAAA;AAAA,YAFF,eAGE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,cAAZ;AAA2B,MAAA,SAAS,EAAEC;AAAtC;AAAA;AAAA;AAAA;AAAA,YAHF,eAIE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,WAAZ;AAAwB,MAAA,SAAS,EAAEC;AAAnC;AAAA;AAAA;AAAA;AAAA,YAJF,eAKE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,WAAZ;AAAwB,MAAA,SAAS,EAAEC;AAAnC;AAAA;AAAA;AAAA;AAAA,YALF,eAME,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,QAAZ;AAAqB,MAAA,SAAS,EAAEC;AAAhC;AAAA;AAAA;AAAA;AAAA,YANF,eAOE,QAAC,KAAD;AAAO,MAAA,IAAI,EAAC,2BAAZ;AAAwC,MAAA,SAAS,EAAEC;AAAnD;AAAA;AAAA;AAAA;AAAA,YAPF;AAAA;AAAA;AAAA;AAAA;AAAA,UAFF;AAAA;AAAA;AAAA;AAAA;AAAA,QAFF;;KAAME,G;AAgBN,eAAeA,GAAf","sourcesContent":["import React from \"react\"\nimport { BrowserRouter as Router, Route } from \"react-router-dom\"\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { fas } from '@fortawesome/free-solid-svg-icons'\n\n//Components\nimport Login from \"./components/login/Login\"\nimport Navbar from \"./components/navbar/Navbar\"\nimport Home from \"./components/home/Home\"\nimport ReportForm from \"./components/reportForm/ReportForm\"\nimport ProjectOverview from \"./components/project/projectOverview/ProjectOverview\"\nimport ProjectInfo from \"./components/project/projectInfo/ProjectInfo\"\nimport TeamOverview from \"./components/team/teamOverview/TeamOverview\"\nimport TeamInfo from \"./components/team/teamInfo/TeamInfo\"\n\n\nlibrary.add(fas)\n\nconst App = () => (\n\n <Router>\n <Navbar />\n <switch>\n <Route path=\"/\" exact component={Login} />\n <Route path=\"/home\" component={Home} />\n <Route path=\"/reportissue\" component={ReportForm} />\n <Route path=\"/projects\" component={ProjectOverview} />\n <Route path=\"/ReactApp\" component={ProjectInfo} />\n <Route path=\"/teams\" component={TeamOverview} />\n <Route path=\"/teams/HenriksMemeMachine\" component={TeamInfo} />\n </switch>\n </Router >\n)\n\nexport default App"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\pages\\\\login\\\\passwordReset\\\\PasswordForgotModal.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport config from '../../../config';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport \"./PasswordForgotModal.css\";\nimport MessageModal from '../../../components/messageModal/MessageModal';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst PasswordForgotModal = () => {\n _s();\n\n const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false);\n const forgotPasswordFormRef = useRef(null);\n\n const toggleForgotPasswordFormVisible = () => setForgotPasswordFormVisibilityState(!forgotPasswordFormVisibilityState);\n\n const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);\n const [username, setUsername] = useState('');\n\n const handleUsernameChange = e => {\n setUsername(e.target.value);\n };\n\n useEffect(() => {\n const pageClickEvent = e => {\n if (forgotPasswordFormRef.current !== null && !forgotPasswordFormRef.current.contains(e.target)) {\n toggleForgotPasswordFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (forgotPasswordFormVisibilityState) {\n window.addEventListener('click', pageClickEvent);\n }\n\n return () => {\n window.removeEventListener('click', pageClickEvent);\n };\n }, [forgotPasswordFormVisibilityState]);\n const userInputData = JSON.stringify({\n email: `${username}`\n });\n const ForgotPasswordRequestOptions = {\n method: 'PUT',\n body: userInputData\n };\n\n const handlePasswordForgot = e => {\n e.preventDefault();\n toggleForgotPasswordFormVisible();\n setSubmitOkMessageModalState(true); // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error: something went wrong\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSubmitOkModalVisible()\n // }\n // })\n };\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"password-forgot-prompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleForgotPasswordFormVisible,\n children: \"Forgot password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${forgotPasswordFormVisibilityState ? \"active\" : \"inactive\"}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n ref: forgotPasswordFormRef,\n className: \"modal-content\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"recoverPasswordForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Recover password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handlePasswordForgot,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"email\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: \"An email with a password recovery link will be sent if it is registered in our system\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Submit\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"arrow-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${forgotPasswordFormVisibilityState ? \"active\" : \"inactive\"}`,\n children: /*#__PURE__*/_jsxDEV(MessageModal, {\n removeModal: () => setSubmitOkMessageModalState(false),\n headerMessage: \"Email submitted!\",\n bodyMessage: \"An email with a password recovery link will be sent if it is registered in our system\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 5\n }, this);\n};\n\n_s(PasswordForgotModal, \"g4WkMIawwrBahYMYonVecg/0JA0=\");\n\n_c = PasswordForgotModal;\nexport default PasswordForgotModal;\n\nvar _c;\n\n$RefreshReg$(_c, \"PasswordForgotModal\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/passwordReset/PasswordForgotModal.jsx"],"names":["React","useState","useRef","useEffect","config","FontAwesomeIcon","MessageModal","PasswordForgotModal","forgotPasswordFormVisibilityState","setForgotPasswordFormVisibilityState","forgotPasswordFormRef","toggleForgotPasswordFormVisible","submitOkMessageModalState","setSubmitOkMessageModalState","username","setUsername","handleUsernameChange","e","target","value","pageClickEvent","current","contains","window","addEventListener","removeEventListener","userInputData","JSON","stringify","email","ForgotPasswordRequestOptions","method","body","handlePasswordForgot","preventDefault"],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect } from 'react'\r\nimport config from '../../../config'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport \"./PasswordForgotModal.css\"\r\nimport MessageModal from '../../../components/messageModal/MessageModal';\r\n\r\nconst PasswordForgotModal = () => {\r\n const [forgotPasswordFormVisibilityState, setForgotPasswordFormVisibilityState] = useState(false)\r\n const forgotPasswordFormRef = useRef(null)\r\n const toggleForgotPasswordFormVisible = () => setForgotPasswordFormVisibilityState(!forgotPasswordFormVisibilityState)\r\n\r\n const [submitOkMessageModalState, setSubmitOkMessageModalState] = useState(false);\r\n\r\n const [username, setUsername] = useState('');\r\n const handleUsernameChange = (e) => {\r\n setUsername(e.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (forgotPasswordFormRef.current !== null && !forgotPasswordFormRef.current.contains(e.target)) {\r\n toggleForgotPasswordFormVisible()\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (forgotPasswordFormVisibilityState) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [forgotPasswordFormVisibilityState]);\r\n\r\n const userInputData = JSON.stringify({\r\n email: `${username}`,\r\n })\r\n\r\n const ForgotPasswordRequestOptions = {\r\n method: 'PUT',\r\n body: userInputData\r\n }\r\n\r\n const handlePasswordForgot = (e) => {\r\n e.preventDefault();\r\n\r\n toggleForgotPasswordFormVisible()\r\n setSubmitOkMessageModalState(true)\r\n // fetch(config.serviceAPI.ForgotPasswordURL, ForgotPasswordRequestOptions)\r\n // .then((res) => {\r\n // if (!res.ok) {\r\n // window.alert(\"Error: something went wrong\")\r\n // Promise.reject(\"\")\r\n // return\r\n // }\r\n // if (res.ok) {\r\n // toggleSubmitOkModalVisible()\r\n // }\r\n // })\r\n }\r\n\r\n return (\r\n <div>\r\n <div className=\"password-forgot-prompt\">\r\n <span>\r\n <a onClick={toggleForgotPasswordFormVisible}>Forgot password</a>\r\n </span>\r\n </div>\r\n\r\n {/* Forgot password modal */}\r\n <div className={`modal ${forgotPasswordFormVisibilityState ? \"active\" : \"inactive\"}`}>\r\n <div ref={forgotPasswordFormRef} className=\"modal-content\">\r\n <div className=\"recoverPasswordForm\">\r\n <h2>Recover password</h2>\r\n <form onSubmit={handlePasswordForgot}>\r\n <label>\r\n Email:\r\n <input\r\n id=\"email\" type=\"text\"\r\n value={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n An email with a password recovery link will be sent if it is registered in our system\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Submit&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"arrow-right\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={`modal ${forgotPasswordFormVisibilityState ? \"active\" : \"inactive\"}`}>\r\n <MessageModal removeModal={() => setSubmitOkMessageModalState(false)} headerMessage={\"Email submitted!\"} bodyMessage={\"An email with a password recovery link will be sent if it is registered in our system\"} />\r\n </div>\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default PasswordForgotModal\r\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\home\\\\Home.jsx\";\nimport React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport \"./Home.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Updates from './updates/Updates';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst Home = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"homepage-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: \"Welcome Mathias!\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 11,\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: 14,\n columnNumber: 13\n }, this), \"\\xA0\\xA0Report issues\"]\n }, void 0, true, {\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)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 10,\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: 20,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 5\n }, this);\n};\n\n_c = Home;\nexport default Home;\n\nvar _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","NavLink","FontAwesomeIcon","Updates","Home"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAO,YAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,OAAP,MAAoB,mBAApB;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AACjB,sBACE;AAAK,IAAA,SAAS,EAAC,oBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA;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,CAjBD;;KAAMA,I;AAmBN,eAAeA,IAAf","sourcesContent":["import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./Home.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Updates from './updates/Updates'\r\n\r\nconst Home = () => {\r\n return (\r\n <div className=\"homepage-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome Mathias!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &nbsp;&nbsp;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\nexport default Home"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"import baseSet from './_baseSet.js';\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/lodash-es/set.js"],"names":["baseSet","set","object","path","value"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,eAApB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,GAAT,CAAaC,MAAb,EAAqBC,IAArB,EAA2BC,KAA3B,EAAkC;AAChC,SAAOF,MAAM,IAAI,IAAV,GAAiBA,MAAjB,GAA0BF,OAAO,CAACE,MAAD,EAASC,IAAT,EAAeC,KAAf,CAAxC;AACD;;AAED,eAAeH,GAAf","sourcesContent":["import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/@popperjs/core/lib/modifiers/arrow.js"],"names":["getBasePlacement","getLayoutRect","contains","getOffsetParent","getMainAxisFromPlacement","within","mergePaddingObject","expandToHashMap","left","right","basePlacements","top","bottom","isHTMLElement","toPaddingObject","padding","state","Object","assign","rects","placement","arrow","_ref","_state$modifiersData$","name","options","arrowElement","elements","popperOffsets","modifiersData","basePlacement","axis","isVertical","indexOf","len","paddingObject","arrowRect","minProp","maxProp","endDiff","reference","popper","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","min","max","center","offset","axisProp","centerOffset","effect","_ref2","_options$element","element","querySelector","process","env","NODE_ENV","console","error","join","enabled","phase","fn","requires","requiresIfExists"],"mappings":"AAAA,OAAOA,gBAAP,MAA6B,8BAA7B;AACA,OAAOC,aAAP,MAA0B,+BAA1B;AACA,OAAOC,QAAP,MAAqB,0BAArB;AACA,OAAOC,eAAP,MAA4B,iCAA5B;AACA,OAAOC,wBAAP,MAAqC,sCAArC;AACA,OAAOC,MAAP,MAAmB,oBAAnB;AACA,OAAOC,kBAAP,MAA+B,gCAA/B;AACA,OAAOC,eAAP,MAA4B,6BAA5B;AACA,SAASC,IAAT,EAAeC,KAAf,EAAsBC,cAAtB,EAAsCC,GAAtC,EAA2CC,MAA3C,QAAyD,aAAzD;AACA,SAASC,aAAT,QAA8B,4BAA9B,C,CAA4D;;AAE5D,IAAIC,eAAe,GAAG,SAASA,eAAT,CAAyBC,OAAzB,EAAkCC,KAAlC,EAAyC;AAC7DD,EAAAA,OAAO,GAAG,OAAOA,OAAP,KAAmB,UAAnB,GAAgCA,OAAO,CAACE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBF,KAAK,CAACG,KAAxB,EAA+B;AAC/EC,IAAAA,SAAS,EAAEJ,KAAK,CAACI;AAD8D,GAA/B,CAAD,CAAvC,GAEJL,OAFN;AAGA,SAAOT,kBAAkB,CAAC,OAAOS,OAAP,KAAmB,QAAnB,GAA8BA,OAA9B,GAAwCR,eAAe,CAACQ,OAAD,EAAUL,cAAV,CAAxD,CAAzB;AACD,CALD;;AAOA,SAASW,KAAT,CAAeC,IAAf,EAAqB;AACnB,MAAIC,qBAAJ;;AAEA,MAAIP,KAAK,GAAGM,IAAI,CAACN,KAAjB;AAAA,MACIQ,IAAI,GAAGF,IAAI,CAACE,IADhB;AAAA,MAEIC,OAAO,GAAGH,IAAI,CAACG,OAFnB;AAGA,MAAIC,YAAY,GAAGV,KAAK,CAACW,QAAN,CAAeN,KAAlC;AACA,MAAIO,aAAa,GAAGZ,KAAK,CAACa,aAAN,CAAoBD,aAAxC;AACA,MAAIE,aAAa,GAAG9B,gBAAgB,CAACgB,KAAK,CAACI,SAAP,CAApC;AACA,MAAIW,IAAI,GAAG3B,wBAAwB,CAAC0B,aAAD,CAAnC;AACA,MAAIE,UAAU,GAAG,CAACxB,IAAD,EAAOC,KAAP,EAAcwB,OAAd,CAAsBH,aAAtB,KAAwC,CAAzD;AACA,MAAII,GAAG,GAAGF,UAAU,GAAG,QAAH,GAAc,OAAlC;;AAEA,MAAI,CAACN,YAAD,IAAiB,CAACE,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAIO,aAAa,GAAGrB,eAAe,CAACW,OAAO,CAACV,OAAT,EAAkBC,KAAlB,CAAnC;AACA,MAAIoB,SAAS,GAAGnC,aAAa,CAACyB,YAAD,CAA7B;AACA,MAAIW,OAAO,GAAGN,IAAI,KAAK,GAAT,GAAepB,GAAf,GAAqBH,IAAnC;AACA,MAAI8B,OAAO,GAAGP,IAAI,KAAK,GAAT,GAAenB,MAAf,GAAwBH,KAAtC;AACA,MAAI8B,OAAO,GAAGvB,KAAK,CAACG,KAAN,CAAYqB,SAAZ,CAAsBN,GAAtB,IAA6BlB,KAAK,CAACG,KAAN,CAAYqB,SAAZ,CAAsBT,IAAtB,CAA7B,GAA2DH,aAAa,CAACG,IAAD,CAAxE,GAAiFf,KAAK,CAACG,KAAN,CAAYsB,MAAZ,CAAmBP,GAAnB,CAA/F;AACA,MAAIQ,SAAS,GAAGd,aAAa,CAACG,IAAD,CAAb,GAAsBf,KAAK,CAACG,KAAN,CAAYqB,SAAZ,CAAsBT,IAAtB,CAAtC;AACA,MAAIY,iBAAiB,GAAGxC,eAAe,CAACuB,YAAD,CAAvC;AACA,MAAIkB,UAAU,GAAGD,iBAAiB,GAAGZ,IAAI,KAAK,GAAT,GAAeY,iBAAiB,CAACE,YAAlB,IAAkC,CAAjD,GAAqDF,iBAAiB,CAACG,WAAlB,IAAiC,CAAzF,GAA6F,CAA/H;AACA,MAAIC,iBAAiB,GAAGR,OAAO,GAAG,CAAV,GAAcG,SAAS,GAAG,CAAlD,CAzBmB,CAyBkC;AACrD;;AAEA,MAAIM,GAAG,GAAGb,aAAa,CAACE,OAAD,CAAvB;AACA,MAAIY,GAAG,GAAGL,UAAU,GAAGR,SAAS,CAACF,GAAD,CAAtB,GAA8BC,aAAa,CAACG,OAAD,CAArD;AACA,MAAIY,MAAM,GAAGN,UAAU,GAAG,CAAb,GAAiBR,SAAS,CAACF,GAAD,CAAT,GAAiB,CAAlC,GAAsCa,iBAAnD;AACA,MAAII,MAAM,GAAG9C,MAAM,CAAC2C,GAAD,EAAME,MAAN,EAAcD,GAAd,CAAnB,CA/BmB,CA+BoB;;AAEvC,MAAIG,QAAQ,GAAGrB,IAAf;AACAf,EAAAA,KAAK,CAACa,aAAN,CAAoBL,IAApB,KAA6BD,qBAAqB,GAAG,EAAxB,EAA4BA,qBAAqB,CAAC6B,QAAD,CAArB,GAAkCD,MAA9D,EAAsE5B,qBAAqB,CAAC8B,YAAtB,GAAqCF,MAAM,GAAGD,MAApH,EAA4H3B,qBAAzJ;AACD;;AAED,SAAS+B,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,MAAIvC,KAAK,GAAGuC,KAAK,CAACvC,KAAlB;AAAA,MACIS,OAAO,GAAG8B,KAAK,CAAC9B,OADpB;AAEA,MAAI+B,gBAAgB,GAAG/B,OAAO,CAACgC,OAA/B;AAAA,MACI/B,YAAY,GAAG8B,gBAAgB,KAAK,KAAK,CAA1B,GAA8B,qBAA9B,GAAsDA,gBADzE;;AAGA,MAAI9B,YAAY,IAAI,IAApB,EAA0B;AACxB;AACD,GARoB,CAQnB;;;AAGF,MAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCA,IAAAA,YAAY,GAAGV,KAAK,CAACW,QAAN,CAAec,MAAf,CAAsBiB,aAAtB,CAAoChC,YAApC,CAAf;;AAEA,QAAI,CAACA,YAAL,EAAmB;AACjB;AACD;AACF;;AAED,MAAIiC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAI,CAAChD,aAAa,CAACa,YAAD,CAAlB,EAAkC;AAChCoC,MAAAA,OAAO,CAACC,KAAR,CAAc,CAAC,qEAAD,EAAwE,qEAAxE,EAA+I,YAA/I,EAA6JC,IAA7J,CAAkK,GAAlK,CAAd;AACD;AACF;;AAED,MAAI,CAAC9D,QAAQ,CAACc,KAAK,CAACW,QAAN,CAAec,MAAhB,EAAwBf,YAAxB,CAAb,EAAoD;AAClD,QAAIiC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCC,MAAAA,OAAO,CAACC,KAAR,CAAc,CAAC,qEAAD,EAAwE,UAAxE,EAAoFC,IAApF,CAAyF,GAAzF,CAAd;AACD;;AAED;AACD;;AAEDhD,EAAAA,KAAK,CAACW,QAAN,CAAeN,KAAf,GAAuBK,YAAvB;AACD,C,CAAC;;;AAGF,eAAe;AACbF,EAAAA,IAAI,EAAE,OADO;AAEbyC,EAAAA,OAAO,EAAE,IAFI;AAGbC,EAAAA,KAAK,EAAE,MAHM;AAIbC,EAAAA,EAAE,EAAE9C,KAJS;AAKbiC,EAAAA,MAAM,EAAEA,MALK;AAMbc,EAAAA,QAAQ,EAAE,CAAC,eAAD,CANG;AAObC,EAAAA,gBAAgB,EAAE,CAAC,iBAAD;AAPL,CAAf","sourcesContent":["import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"export default function getVariation(placement) {\n return placement.split('-')[1];\n}","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/@popperjs/core/lib/utils/getVariation.js"],"names":["getVariation","placement","split"],"mappings":"AAAA,eAAe,SAASA,YAAT,CAAsBC,SAAtB,EAAiC;AAC9C,SAAOA,SAAS,CAACC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAP;AACD","sourcesContent":["export default function getVariation(placement) {\n return placement.split('-')[1];\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\navbar\\\\dropdownMenu\\\\NavbarDropdownMenu.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useRef, useState, useEffect } from 'react';\nimport { NavLink } from \"react-router-dom\";\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./NavbarDropdownMenu.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst DropdownMenu = () => {\n _s();\n\n const {\n authState,\n oktaAuth\n } = useOktaAuth();\n const [userInfo, setUserInfo] = useState(null);\n const dropdownRef = useRef(null);\n const [isActive, setIsActive] = useState(false);\n\n const onClick = () => setIsActive(!isActive);\n\n useEffect(() => {\n const pageClickEvent = e => {\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\n setIsActive(!isActive);\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (isActive) {\n window.addEventListener('click', pageClickEvent);\n }\n\n return () => {\n window.removeEventListener('click', pageClickEvent);\n };\n }, [isActive]);\n useEffect(() => {\n if (!authState.isAuthenticated) {\n // When user isn't authenticated, forget any user info\n setUserInfo(null);\n } else {\n oktaAuth.getUser().then(info => {\n setUserInfo(info);\n });\n }\n }, [authState, oktaAuth]); // Update if authState changes\n\n const logout = () => {\n oktaAuth.signOut();\n };\n\n return /*#__PURE__*/_jsxDEV(\"li\", {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"navbar-user-dropdown-container\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n className: `user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`,\n onClick: onClick,\n children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n className: \"user-icon\",\n icon: \"user-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n className: \"down-arrow\",\n icon: \"angle-down\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n ref: dropdownRef,\n className: `user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`,\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"li\", {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"menu-item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"item-text-top\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"upper-row\",\n children: /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/account\",\n className: \"menu-item-link\",\n children: \"Account\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bottom-row\",\n children: /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/account\",\n className: \"menu-item-link-bottom\",\n children: userInfo ? userInfo.email : \"...\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n className: \"item-icon\",\n icon: \"user-circle\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"menu-item\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"item-text-top\",\n children: /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/account\",\n className: \"menu-item-link\",\n children: \"Messages\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n className: \"item-icon\",\n icon: \"envelope\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 50,\n columnNumber: 5\n }, this);\n};\n\n_s(DropdownMenu, \"fSJPYre4v1rGcIZdck7wMJJU1dU=\", false, function () {\n return [useOktaAuth];\n});\n\n_c = DropdownMenu;\nexport default DropdownMenu;\n\nvar _c;\n\n$RefreshReg$(_c, \"DropdownMenu\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/navbar/dropdownMenu/NavbarDropdownMenu.jsx"],"names":["React","useRef","useState","useEffect","NavLink","useOktaAuth","FontAwesomeIcon","DropdownMenu","authState","oktaAuth","userInfo","setUserInfo","dropdownRef","isActive","setIsActive","onClick","pageClickEvent","e","current","contains","target","window","addEventListener","removeEventListener","isAuthenticated","getUser","then","info","logout","signOut","email"],"mappings":"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","sourcesContent":["import React, { useRef, useState, useEffect } from 'react'\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./NavbarDropdownMenu.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\n\r\nconst DropdownMenu = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [userInfo, setUserInfo] = useState(null);\r\n\r\n const dropdownRef = useRef(null);\r\n const [isActive, setIsActive] = useState(false);\r\n const onClick = () => setIsActive(!isActive);\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\r\n setIsActive(!isActive);\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (isActive) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [isActive]);\r\n\r\n useEffect(() => {\r\n if (!authState.isAuthenticated) {\r\n // When user isn't authenticated, forget any user info\r\n setUserInfo(null);\r\n } else {\r\n oktaAuth.getUser().then(info => {\r\n setUserInfo(info);\r\n });\r\n }\r\n }, [authState, oktaAuth]); // Update if authState changes\r\n\r\n const logout = () => {\r\n oktaAuth.signOut()\r\n }\r\n\r\n return (\r\n <li>\r\n <div className=\"navbar-user-dropdown-container\">\r\n <button className={`user-dropdown-menu-toggle-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >\r\n <FontAwesomeIcon className=\"user-icon\" icon=\"user-circle\"></FontAwesomeIcon>\r\n <FontAwesomeIcon className=\"down-arrow\" icon=\"angle-down\"></FontAwesomeIcon>\r\n </button>\r\n {/* show submenu?*/}\r\n <div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>\r\n <ul>\r\n\r\n <li>\r\n <div className=\"menu-item\">\r\n <div className=\"item-text-top\">\r\n <div className=\"upper-row\">\r\n <NavLink to=\"/account\" className=\"menu-item-link\">\r\n Account\r\n </NavLink>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <NavLink to=\"/account\" className=\"menu-item-link-bottom\">\r\n {userInfo ? userInfo.email : \"...\"}\r\n </NavLink>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"item-icon\" icon=\"user-circle\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n <li>\r\n <div className=\"menu-item\">\r\n <div className=\"item-text-top\">\r\n <NavLink to=\"/account\" className=\"menu-item-link\">\r\n Messages\r\n </NavLink>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"item-icon\" icon=\"envelope\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n {/* <NavLink to=\"/messages\">\r\n \r\n </NavLink> */}\r\n </li>\r\n\r\n {/* <li>\r\n <a href=\"./\">\r\n <FontAwesomeIcon icon=\"sliders-h\"></FontAwesomeIcon>&nbsp;&nbsp;Preferences\r\n <FontAwesomeIcon icon=\"chevron-right\" className=\"item-icon-icon\"></FontAwesomeIcon>\r\n </a>\r\n </li> */}\r\n <li>\r\n {/* <a onClick={logout}>\r\n <FontAwesomeIcon icon=\"sign-out-alt\"></FontAwesomeIcon>&nbsp;&nbsp;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\nexport default DropdownMenu"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"export var TRANSITION_STATUS_INITIAL = 'INITIAL';\nexport var TRANSITION_STATUS_ENTERED = 'ENTERED';\nexport var TRANSITION_STATUS_ENTERING = 'ENTERING';\nexport var TRANSITION_STATUS_EXITED = 'EXITED';\nexport var TRANSITION_STATUS_EXITING = 'EXITING';\nexport var TRANSITION_STATUS_UNMOUNTED = 'UNMOUNTED';\n/**\n * @param {Object} [options]\n * @param {String} [options.status]\n * @param {Boolean} [options.mountOnShow]\n * @param {Boolean} [options.transitionOnMount]\n * @param {Boolean} [options.visible]\n * @param {Boolean} [options.unmountOnHide]\n */\n\nexport function computeStatuses(options) {\n var mountOnShow = options.mountOnShow,\n status = options.status,\n transitionOnMount = options.transitionOnMount,\n visible = options.visible,\n unmountOnHide = options.unmountOnHide;\n\n if (visible) {\n if (status === TRANSITION_STATUS_INITIAL) {\n if (transitionOnMount) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n return {\n animating: false,\n status: TRANSITION_STATUS_ENTERED,\n nextStatus: undefined\n };\n }\n\n if (status === TRANSITION_STATUS_UNMOUNTED) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n if (status === TRANSITION_STATUS_EXITED || status === TRANSITION_STATUS_EXITING) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n if (status === TRANSITION_STATUS_ENTERING) {\n return {};\n }\n /* istanbul ignore else */\n\n\n if (status === TRANSITION_STATUS_ENTERED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_ENTERED,\n nextStatus: undefined\n };\n }\n }\n\n if (status === TRANSITION_STATUS_INITIAL) {\n if (mountOnShow || unmountOnHide) {\n return {\n animating: false,\n status: TRANSITION_STATUS_UNMOUNTED,\n nextStatus: undefined\n };\n }\n\n return {\n animating: false,\n status: TRANSITION_STATUS_EXITED,\n nextStatus: undefined\n };\n }\n\n if (status === TRANSITION_STATUS_ENTERED || status === TRANSITION_STATUS_ENTERING) {\n return {\n animating: true,\n status: TRANSITION_STATUS_EXITING,\n nextStatus: unmountOnHide ? TRANSITION_STATUS_UNMOUNTED : TRANSITION_STATUS_EXITED\n };\n }\n\n if (status === TRANSITION_STATUS_EXITING) {\n return {};\n }\n\n if (status === TRANSITION_STATUS_EXITED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_EXITED,\n nextStatus: undefined\n };\n }\n /* istanbul ignore else */\n\n\n if (status === TRANSITION_STATUS_UNMOUNTED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_UNMOUNTED,\n nextStatus: undefined\n };\n }\n /* istanbul ignore next */\n\n\n throw new Error(\"Transition:computeStatuses(): an unexpected status transition: { visible: \" + visible + \", status: \" + status + \" }\");\n}","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/semantic-ui-react/dist/es/modules/Transition/utils/computeStatuses.js"],"names":["TRANSITION_STATUS_INITIAL","TRANSITION_STATUS_ENTERED","TRANSITION_STATUS_ENTERING","TRANSITION_STATUS_EXITED","TRANSITION_STATUS_EXITING","TRANSITION_STATUS_UNMOUNTED","computeStatuses","options","mountOnShow","status","transitionOnMount","visible","unmountOnHide","animating","nextStatus","undefined","Error"],"mappings":"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","sourcesContent":["export var TRANSITION_STATUS_INITIAL = 'INITIAL';\nexport var TRANSITION_STATUS_ENTERED = 'ENTERED';\nexport var TRANSITION_STATUS_ENTERING = 'ENTERING';\nexport var TRANSITION_STATUS_EXITED = 'EXITED';\nexport var TRANSITION_STATUS_EXITING = 'EXITING';\nexport var TRANSITION_STATUS_UNMOUNTED = 'UNMOUNTED';\n/**\n * @param {Object} [options]\n * @param {String} [options.status]\n * @param {Boolean} [options.mountOnShow]\n * @param {Boolean} [options.transitionOnMount]\n * @param {Boolean} [options.visible]\n * @param {Boolean} [options.unmountOnHide]\n */\n\nexport function computeStatuses(options) {\n var mountOnShow = options.mountOnShow,\n status = options.status,\n transitionOnMount = options.transitionOnMount,\n visible = options.visible,\n unmountOnHide = options.unmountOnHide;\n\n if (visible) {\n if (status === TRANSITION_STATUS_INITIAL) {\n if (transitionOnMount) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n return {\n animating: false,\n status: TRANSITION_STATUS_ENTERED,\n nextStatus: undefined\n };\n }\n\n if (status === TRANSITION_STATUS_UNMOUNTED) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n if (status === TRANSITION_STATUS_EXITED || status === TRANSITION_STATUS_EXITING) {\n return {\n animating: true,\n status: TRANSITION_STATUS_ENTERING,\n nextStatus: TRANSITION_STATUS_ENTERED\n };\n }\n\n if (status === TRANSITION_STATUS_ENTERING) {\n return {};\n }\n /* istanbul ignore else */\n\n\n if (status === TRANSITION_STATUS_ENTERED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_ENTERED,\n nextStatus: undefined\n };\n }\n }\n\n if (status === TRANSITION_STATUS_INITIAL) {\n if (mountOnShow || unmountOnHide) {\n return {\n animating: false,\n status: TRANSITION_STATUS_UNMOUNTED,\n nextStatus: undefined\n };\n }\n\n return {\n animating: false,\n status: TRANSITION_STATUS_EXITED,\n nextStatus: undefined\n };\n }\n\n if (status === TRANSITION_STATUS_ENTERED || status === TRANSITION_STATUS_ENTERING) {\n return {\n animating: true,\n status: TRANSITION_STATUS_EXITING,\n nextStatus: unmountOnHide ? TRANSITION_STATUS_UNMOUNTED : TRANSITION_STATUS_EXITED\n };\n }\n\n if (status === TRANSITION_STATUS_EXITING) {\n return {};\n }\n\n if (status === TRANSITION_STATUS_EXITED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_EXITED,\n nextStatus: undefined\n };\n }\n /* istanbul ignore else */\n\n\n if (status === TRANSITION_STATUS_UNMOUNTED) {\n return {\n animating: false,\n status: TRANSITION_STATUS_UNMOUNTED,\n nextStatus: undefined\n };\n }\n /* istanbul ignore next */\n\n\n throw new Error(\"Transition:computeStatuses(): an unexpected status transition: { visible: \" + visible + \", status: \" + status + \" }\");\n}"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"import isObject from './isObject.js';\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/node_modules/lodash-es/_isStrictComparable.js"],"names":["isObject","isStrictComparable","value"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,eAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,kBAAT,CAA4BC,KAA5B,EAAmC;AACjC,SAAOA,KAAK,KAAKA,KAAV,IAAmB,CAACF,QAAQ,CAACE,KAAD,CAAnC;AACD;;AAED,eAAeD,kBAAf","sourcesContent":["import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\login\\\\signUp\\\\SignUp.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useInput } from '../../../util/useInput';\nimport { NavLink } from 'react-router-dom';\nimport config from \"../../../config\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst SignUp = () => {\n _s();\n\n const {\n authState,\n oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [firstName, setFirstName] = useState('');\n const [lastName, setLastName] = useState('');\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const userInputData = JSON.stringify({\n FirstName: `${firstName}`,\n LastName: `${lastName}`,\n Email: `${email}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n };\n\n const handleSubmit = e => {\n e.preventDefault();\n fetch(config.serviceAPI.createNewUserURL, requestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Password requirements not met. Password must be at least 8 characters and have no parts of your username\");\n return Promise.reject();\n }\n\n return res.json();\n }).then(() => {\n oktaAuth.signInWithCredentials({\n email,\n password\n }).then(res => {\n const sessionToken = res.sessionToken;\n setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once\n\n oktaAuth.signInWithRedirect({\n sessionToken,\n originalUri: '/home'\n });\n }).catch(err => console.log('Found an error', err));\n });\n };\n\n const handleFirstNameChange = e => {\n setFirstName(e.target.value);\n };\n\n const handleLastNameChange = e => {\n setLastName(e.target.value);\n };\n\n const handleEmailChange = e => {\n setEmail(e.target.value);\n };\n\n const handlePasswordChange = e => {\n setPassword(e.target.value);\n };\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"spacer\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-container\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Get started with PipIt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signUpForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Sign Up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"First name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Last Name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n className: \"password-requirements\",\n children: \"Requirements: At least 8 characters, no parts of your username\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sign-up-prompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Already have an account?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/signIn\",\n className: \"signInLink\",\n children: \"Sign in\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"8+72sMg80FVNhxNijJ4F05o0QkM=\", false, function () {\n return [useOktaAuth];\n});\n\n_c = SignUp;\nexport default SignUp;\n\nvar _c;\n\n$RefreshReg$(_c, \"SignUp\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/login/signUp/SignUp.jsx"],"names":["React","useState","useEffect","useOktaAuth","FontAwesomeIcon","useInput","NavLink","config","SignUp","authState","oktaAuth","sessionToken","setSessionToken","firstName","setFirstName","lastName","setLastName","email","setEmail","password","setPassword","userInputData","JSON","stringify","FirstName","LastName","Email","requestOptions","method","body","handleSubmit","e","preventDefault","fetch","serviceAPI","createNewUserURL","then","res","ok","window","alert","Promise","reject","json","signInWithCredentials","signInWithRedirect","originalUri","catch","err","console","log","handleFirstNameChange","target","value","handleLastNameChange","handleEmailChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useInput } from '../../../util/useInput'\r\nimport { NavLink } from 'react-router-dom';\r\nimport config from \"../../../config\"\r\n\r\nconst SignUp = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState();\r\n const [firstName, setFirstName] = useState('')\r\n const [lastName, setLastName] = useState('')\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('');\r\n\r\n const userInputData = JSON.stringify({\r\n FirstName: `${firstName}`,\r\n LastName: `${lastName}`,\r\n Email: `${email}`,\r\n password: `${password}`\r\n })\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n fetch(config.serviceAPI.createNewUserURL, requestOptions)\r\n .then((res) => {\r\n if (!res.ok) {\r\n window.alert(\"Password requirements not met. Password must be at least 8 characters and have no parts of your username\")\r\n return Promise.reject();\r\n }\r\n return res.json();\r\n }).then(() => {\r\n oktaAuth.signInWithCredentials({ email, password })\r\n .then(res => {\r\n const sessionToken = res.sessionToken;\r\n setSessionToken(sessionToken);\r\n // sessionToken is a one-use token, so make sure this is only called once\r\n oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });\r\n })\r\n .catch(err => console.log('Found an error', err));\r\n })\r\n }\r\n\r\n const handleFirstNameChange = (e) => {\r\n setFirstName(e.target.value)\r\n }\r\n\r\n const handleLastNameChange = (e) => {\r\n setLastName(e.target.value)\r\n }\r\n\r\n const handleEmailChange = (e) => {\r\n setEmail(e.target.value)\r\n }\r\n\r\n const handlePasswordChange = (e) => {\r\n setPassword(e.target.value)\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n <div className=\"spacer\">\r\n <div className=\"text-container\">\r\n <h1>Get started with PipIt</h1>\r\n <h5>Track bugs and usabilty issues</h5>\r\n </div>\r\n </div>\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSubmit}>\r\n <label>\r\n First name:\r\n <input type=\"text\" />\r\n </label>\r\n <label>\r\n Last Name:\r\n <input\r\n type=\"text\" />\r\n </label>\r\n <label>\r\n Email:\r\n <input\r\n type=\"text\" />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n type=\"password\" />\r\n </label>\r\n <label className=\"password-requirements\">\r\n Requirements: At least 8 characters, no parts of your username\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign Up&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"user-plus\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"sign-up-prompt\">\r\n <span>Already have an account?&nbsp;\r\n <NavLink to=\"/signIn\" className=\"signInLink\">\r\n Sign in\r\n </NavLink>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SignUp"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\login\\\\signUp\\\\SignUp.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport \"./SignUp.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useInput } from '../../../util/useInput';\nimport { NavLink } from 'react-router-dom';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst SignUp = () => {\n _s();\n\n const {\n value: firstName,\n bind: bindFirstName,\n reset: resetFirstName\n } = useInput('');\n const {\n value: lastName,\n bind: bindLastName,\n reset: resetLastName\n } = useInput('');\n const {\n value: email,\n bind: bindEmail,\n reset: resetEmail\n } = useInput('');\n const {\n value: password,\n bind: bindPassword,\n reset: resetPassword\n } = useInput('');\n\n const handleSubmit = e => {\n e.preventDefault();\n alert(`Submitting user ${firstName} ${lastName} ${email} ${password}`);\n resetEmail();\n };\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"spacer\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-container\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Get started with PipIt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signUpForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Sign Up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Fist name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindFirstName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Last Name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindLastName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindEmail\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\",\n ...bindPassword\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 44,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n to: \"/signIn\",\n className: \"sign-up-prompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Already have an account?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n className: \"signInLink\",\n children: \"Sign in\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"qBcPMosoFn1+k0tawoNFrCnYMDg=\", false, function () {\n return [useInput, useInput, useInput, useInput];\n});\n\n_c = SignUp;\nexport default SignUp;\n\nvar _c;\n\n$RefreshReg$(_c, \"SignUp\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/login/signUp/SignUp.jsx"],"names":["React","useState","useEffect","FontAwesomeIcon","useInput","NavLink","SignUp","value","firstName","bind","bindFirstName","reset","resetFirstName","lastName","bindLastName","resetLastName","email","bindEmail","resetEmail","password","bindPassword","resetPassword","handleSubmit","e","preventDefault","alert"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport \"./SignUp.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useInput } from '../../../util/useInput'\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nconst SignUp = () => {\r\n const { value: firstName, bind: bindFirstName, reset: resetFirstName } = useInput('')\r\n const { value: lastName, bind: bindLastName, reset: resetLastName } = useInput('')\r\n const { value: email, bind: bindEmail, reset: resetEmail } = useInput('')\r\n const { value: password, bind: bindPassword, reset: resetPassword } = useInput('')\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n alert(`Submitting user ${firstName} ${lastName} ${email} ${password}`);\r\n resetEmail();\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n <div className=\"spacer\">\r\n <div className=\"text-container\">\r\n <h1>Get started with PipIt</h1>\r\n <h5>Track bugs and usabilty issues</h5>\r\n </div>\r\n </div>\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSubmit}>\r\n <label>\r\n Fist name:\r\n <input type=\"text\" {...bindFirstName} />\r\n </label>\r\n <label>\r\n Last Name:\r\n <input\r\n type=\"text\" {...bindLastName} />\r\n </label>\r\n <label>\r\n Email:\r\n <input\r\n type=\"text\" {...bindEmail} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n type=\"password\" {...bindPassword} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign Up&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"user-plus\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div to=\"/signIn\" className=\"sign-up-prompt\">\r\n <span>Already have an account?&nbsp;\r\n <NavLink className=\"signInLink\">\r\n Sign in\r\n </NavLink>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SignUp"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\pages\\\\account\\\\Account.jsx\",\n _s = $RefreshSig$();\n\n// rfce\nimport React, { useState, useEffect } from 'react';\nimport \"./Account.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useOktaAuth } from '@okta/okta-react';\nimport ConfirmRemoveAccountModal from '../../components/confirmRemoveAccountModal/ConfirmRemoveAccountModal';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction Account() {\n _s();\n\n const {\n authState,\n oktaAuth\n } = useOktaAuth();\n const [userInfo, setUserInfo] = useState(null);\n const [confirmAccountRemoveModalState, setConfirmAccountRemoveModalState] = useState(false);\n useEffect(() => {\n if (!authState.isAuthenticated) {\n // When user isn't authenticated, forget any user info\n setUserInfo(null);\n } else {\n oktaAuth.getUser().then(info => {\n setUserInfo(info);\n });\n }\n }, [authState, oktaAuth]); // Update if authState changes\n\n const removeAccountRequestOptions = {\n method: 'POST',\n body: userInfo && JSON.stringify({\n email: userInfo.email\n })\n };\n\n const handleRemoveAccount = () => {\n fetch(config.serviceAPI.removeAccountURL, removeAccountRequestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Error\");\n Promise.reject(\"\");\n return;\n }\n\n if (res.ok) {// oktaAuth.signOut()\n }\n });\n };\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"page-content-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: /*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: \"Account information\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"accountpage-content\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"personal-information-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"container-header\",\n children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-circle\",\n className: \"user-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Personal information\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"pen\",\n className: \"pen-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 15\n }, this), \"Edit\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content\",\n children: /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"li\", {\n children: /*#__PURE__*/_jsxDEV(\"b\", {\n children: \"Full name:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 69,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: userInfo ? userInfo.name : \"Fetching firstname\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: /*#__PURE__*/_jsxDEV(\"b\", {\n children: \"Email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 76,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: userInfo ? userInfo.email : \"fetching email\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"change-password-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"container-header\",\n children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"lock\",\n className: \"lock-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Change password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 88,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n children: \"Password requirements:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n children: [/*#__PURE__*/_jsxDEV(\"li\", {\n children: \"At least 8 characters\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"No parts of username may be included\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"Your password may not be any of the last 4 passwords\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"reset-password-form-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"form-item\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: \"Old password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"form-item\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: \"New password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"form-item\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: \"Confirm new password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"form-item\",\n children: /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"passwordResetSubmitButton\",\n type: \"submit\",\n children: [\"Submit\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"arrow-right\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 21\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"deactivate-account-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"container-header\",\n children: [/*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"trash\",\n className: \"trash-icon\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Delete account\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n children: \"Your account and all your data will be permanently deleted\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: setConfirmAccountRemoveModalState(true),\n children: \"Delete\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 139,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${confirmAccountRemoveModalState ? \"active\" : \"inactive\"}`,\n children: /*#__PURE__*/_jsxDEV(MessageModal, {\n removeModal: () => setConfirmAccountRemoveModalState(false),\n headerMessage: \"Delete account\",\n bodyMessage: \"Are you sure you want to delete your account?\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 52,\n columnNumber: 5\n }, this);\n}\n\n_s(Account, \"Q9dz9d9vt2i1tyA3W6mcd1htZ7g=\", false, function () {\n return [useOktaAuth];\n});\n\n_c = Account;\nexport default Account;\n\nvar _c;\n\n$RefreshReg$(_c, \"Account\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/account/Account.jsx"],"names":["React","useState","useEffect","FontAwesomeIcon","useOktaAuth","ConfirmRemoveAccountModal","Account","authState","oktaAuth","userInfo","setUserInfo","confirmAccountRemoveModalState","setConfirmAccountRemoveModalState","isAuthenticated","getUser","then","info","removeAccountRequestOptions","method","body","JSON","stringify","email","handleRemoveAccount","fetch","config","serviceAPI","removeAccountURL","res","ok","window","alert","Promise","reject","name"],"mappings":"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","sourcesContent":["// rfce\r\nimport React, { useState, useEffect } from 'react'\r\nimport \"./Account.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport ConfirmRemoveAccountModal from '../../components/confirmRemoveAccountModal/ConfirmRemoveAccountModal';\r\n\r\nfunction Account() {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [userInfo, setUserInfo] = useState(null);\r\n\r\n const [confirmAccountRemoveModalState, setConfirmAccountRemoveModalState] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!authState.isAuthenticated) {\r\n // When user isn't authenticated, forget any user info\r\n setUserInfo(null);\r\n } else {\r\n oktaAuth.getUser().then(info => {\r\n setUserInfo(info);\r\n });\r\n }\r\n }, [authState, oktaAuth]); // Update if authState changes\r\n\r\n const removeAccountRequestOptions = {\r\n method: 'POST',\r\n body:\r\n userInfo && (\r\n JSON.stringify(\r\n {\r\n email: userInfo.email\r\n }\r\n )\r\n )\r\n }\r\n\r\n const handleRemoveAccount = () => {\r\n fetch(config.serviceAPI.removeAccountURL, removeAccountRequestOptions)\r\n .then((res) => {\r\n if (!res.ok) {\r\n window.alert(\"Error\")\r\n Promise.reject(\"\")\r\n return\r\n }\r\n if (res.ok) {\r\n // oktaAuth.signOut()\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Account information</h2>\r\n </div>\r\n <div className=\"accountpage-content\">\r\n\r\n <div className=\"personal-information-container\">\r\n <div className=\"container-header\">\r\n <FontAwesomeIcon icon=\"user-circle\" className=\"user-icon\"></FontAwesomeIcon>\r\n <h5>Personal information</h5>\r\n <button>\r\n <FontAwesomeIcon icon=\"pen\" className=\"pen-icon\"></FontAwesomeIcon>\r\n Edit\r\n </button>\r\n </div>\r\n <div className=\"content\">\r\n <ul>\r\n <li>\r\n <b>Full name:</b>\r\n </li>\r\n <li>\r\n {userInfo ? userInfo.name : \"Fetching firstname\"}\r\n </li>\r\n <li>\r\n <b>Email</b>\r\n </li>\r\n <li>\r\n {userInfo ? userInfo.email : \"fetching email\"}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div className=\"change-password-container\">\r\n <div className=\"container-header\">\r\n <FontAwesomeIcon icon=\"lock\" className=\"lock-icon\"></FontAwesomeIcon>\r\n <h5>Change password</h5>\r\n </div>\r\n <div className=\"content\">\r\n <p>Password requirements:</p>\r\n <ul>\r\n <li>\r\n At least 8 characters\r\n </li>\r\n <li>\r\n No parts of username may be included\r\n </li>\r\n <li>\r\n Your password may not be any of the last 4 passwords\r\n </li>\r\n </ul>\r\n <form>\r\n <div className=\"reset-password-form-container\">\r\n <div className=\"form-item\">\r\n <label>\r\n Old password\r\n </label>\r\n <input type=\"password\"></input>\r\n </div>\r\n <div className=\"form-item\">\r\n <label>\r\n New password\r\n </label>\r\n <input type=\"password\"></input>\r\n </div>\r\n <div className=\"form-item\">\r\n <label>\r\n Confirm new password\r\n </label>\r\n <input type=\"password\"></input>\r\n </div>\r\n <div className=\"form-item\">\r\n <button className=\"passwordResetSubmitButton\" type=\"submit\">\r\n Submit&nbsp;\r\n <FontAwesomeIcon icon=\"arrow-right\"></FontAwesomeIcon>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <div className=\"deactivate-account-container\">\r\n <div className=\"container-header\">\r\n <FontAwesomeIcon icon=\"trash\" className=\"trash-icon\"></FontAwesomeIcon>\r\n <h5>Delete account</h5>\r\n </div>\r\n <div className=\"content\">\r\n <p>\r\n Your account and all your data will be permanently deleted\r\n </p>\r\n <button onClick={setConfirmAccountRemoveModalState(true)}>\r\n Delete\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={`modal ${confirmAccountRemoveModalState ? \"active\" : \"inactive\"}`}>\r\n <MessageModal removeModal={() => setConfirmAccountRemoveModalState(false)} headerMessage={\"Delete account\"} bodyMessage={\"Are you sure you want to delete your account?\"} />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Account\r\n"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\pages\\\\login\\\\Login.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect, useRef } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./Login.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { NavLink } from 'react-router-dom';\nimport config from \"../../config\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst SignUp = () => {\n _s();\n\n const {\n authState,\n oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [signUpFormVisibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!signUpFormVisibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n useEffect(() => {\n const pageClickEvent = e => {\n console.log(\"Click\");\n\n if (signUpFormRef.current !== null && !signUpFormRef.current.contains(e.target)) {\n console.log(\"Form visible: \" + signUpFormVisibilityState);\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (signUpFormVisibilityState) {\n console.log(\"Add eventlistener\");\n window.addEventListener('click', pageClickEvent);\n }\n\n return () => {\n console.log(\"Remove eventlistener\");\n window.removeEventListener('click', pageClickEvent);\n };\n }, [signUpFormVisibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n email: `${username}`,\n password: `${password}`\n });\n const loginRequestOptions = {\n method: 'POST',\n body: userInputData\n };\n const resetPasswordRequestOptions = {\n method: 'PUT',\n body: userInputData\n };\n\n const handleSignUpFormSubmit = e => {\n e.preventDefault();\n\n if (!password || !confirmPassword) {\n window.alert(\"A password field is blank\");\n return;\n }\n\n if (!(confirmPassword.length >= 7)) {\n window.alert(\"Password must consist of 8 characters or more\");\n return;\n }\n\n if (!(password == confirmPassword)) {\n window.alert(\"Passwords fo not match\");\n fetch(config.serviceAPI.createNewUserURL, loginRequestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Error\");\n Promise.reject(\"\");\n return;\n }\n\n if (res.ok) {\n handleSignInFormSubmit(e);\n }\n });\n }\n };\n\n const handleSignInFormSubmit = e => {\n e.preventDefault();\n oktaAuth.signInWithCredentials({\n username,\n password\n }).then(res => {\n const sessionToken = res.sessionToken;\n setSessionToken(sessionToken); // sessionToken is a one-use token, so make sure this is only called once\n\n oktaAuth.signInWithRedirect({\n sessionToken,\n originalUri: '/home'\n });\n }).catch(err => console.log('Found an error', err));\n };\n\n const handlefirstnameChange = e => {\n setfirstname(e.target.value);\n };\n\n const handlelastnameChange = e => {\n setlastname(e.target.value);\n };\n\n const handleUsernameChange = e => {\n setUsername(e.target.value);\n };\n\n const handlePasswordChange = e => {\n setPassword(e.target.value);\n };\n\n const handleConfirmPasswordChange = e => {\n setConfirmPassword(e.target.value);\n };\n\n if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n const handlePasswordReset = () => {\n if (!username == '') {\n fetch(config.serviceAPI.resetPasswordURL, resetPasswordRequestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Error: something went wrong\");\n Promise.reject(\"\");\n return;\n }\n\n if (res.ok) {// do something\n }\n });\n } else {\n window.alert(\"Please enter a valid email into the login form\");\n }\n };\n\n if (!authState || !authState.isAuthenticated) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${signUpFormVisibilityState ? \"active\" : \"inactive\"}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n ref: signUpFormRef,\n className: \"modal-content\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signUpForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Sign Up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignUpFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"First name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"firstname\",\n type: \"text\",\n value: firstname,\n onChange: handlefirstnameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Last Name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"lastname\",\n type: \"text\",\n value: lastname,\n onChange: handlelastnameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"email\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"password\",\n type: \"password\",\n value: password,\n onChange: handlePasswordChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Confirm Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"password\",\n type: \"password\",\n value: confirmPassword,\n onChange: handleConfirmPasswordChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n className: \"password-requirements\",\n children: \"Requirements: At least 8 characters, no parts of your username\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 193,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 198,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 196,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"spacer\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-container\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Get started with PipIt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 207,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 209,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Sign in to PipIt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 216,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: signUpFormVisibilityState ? null : username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 218,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"password\",\n type: \"password\",\n value: signUpFormVisibilityState ? null : password,\n onChange: handlePasswordChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 227,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 225,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign in\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"sign-in-alt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 234,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 232,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 217,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"password-forgot-prompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: handlePasswordReset,\n children: \"Forgot password\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 215,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 7\n }, this);\n } else {\n return /*#__PURE__*/_jsxDEV(Redirect, {\n to: \"/home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 246,\n columnNumber: 12\n }, this);\n }\n};\n\n_s(SignUp, \"1p9yGbAE7v6t+7cbmU/MfJMp/io=\", false, function () {\n return [useOktaAuth];\n});\n\n_c = SignUp;\nexport default SignUp;\n\nvar _c;\n\n$RefreshReg$(_c, \"SignUp\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/pages/login/Login.jsx"],"names":["React","useState","useEffect","useRef","Redirect","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","authState","oktaAuth","sessionToken","setSessionToken","signUpFormRef","signUpFormVisibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","confirmPassword","setConfirmPassword","pageClickEvent","e","console","log","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","email","loginRequestOptions","method","body","resetPasswordRequestOptions","handleSignUpFormSubmit","preventDefault","alert","length","fetch","serviceAPI","createNewUserURL","then","res","ok","Promise","reject","handleSignInFormSubmit","signInWithCredentials","signInWithRedirect","originalUri","catch","err","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange","handleConfirmPasswordChange","handlePasswordReset","resetPasswordURL","isAuthenticated"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom'\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./Login.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { NavLink } from 'react-router-dom';\r\nimport config from \"../../config\"\r\n\r\nconst SignUp = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [signUpFormVisibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!signUpFormVisibilityState)\r\n\r\n const [firstname, setfirstname] = useState('')\r\n const [lastname, setlastname] = useState('')\r\n const [username, setUsername] = useState('');\r\n const [password, setPassword] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n console.log(\"Click\")\r\n if (signUpFormRef.current !== null && !signUpFormRef.current.contains(e.target)) {\r\n console.log(\"Form visible: \" + signUpFormVisibilityState)\r\n toggleSignInFormVisible()\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (signUpFormVisibilityState) {\r\n console.log(\"Add eventlistener\")\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n console.log(\"Remove eventlistener\")\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [signUpFormVisibilityState]);\r\n\r\n const userInputData = JSON.stringify({\r\n firstname: `${firstname}`,\r\n lastname: `${lastname}`,\r\n email: `${username}`,\r\n password: `${password}`\r\n })\r\n\r\n const loginRequestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n const resetPasswordRequestOptions = {\r\n method: 'PUT',\r\n body: userInputData\r\n }\r\n\r\n const handleSignUpFormSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n if (!password || !confirmPassword) {\r\n window.alert(\"A password field is blank\")\r\n return\r\n }\r\n\r\n if (!(confirmPassword.length >= 7)) {\r\n window.alert(\"Password must consist of 8 characters or more\")\r\n return\r\n }\r\n\r\n if (!(password == confirmPassword)) {\r\n window.alert(\"Passwords fo not match\")\r\n fetch(config.serviceAPI.createNewUserURL, loginRequestOptions)\r\n .then((res) => {\r\n if (!res.ok) {\r\n window.alert(\"Error\")\r\n Promise.reject(\"\")\r\n return\r\n }\r\n if (res.ok) {\r\n handleSignInFormSubmit(e)\r\n }\r\n })\r\n }\r\n }\r\n\r\n const handleSignInFormSubmit = (e) => {\r\n e.preventDefault();\r\n\r\n oktaAuth.signInWithCredentials({ username, password })\r\n .then(res => {\r\n const sessionToken = res.sessionToken;\r\n setSessionToken(sessionToken);\r\n // sessionToken is a one-use token, so make sure this is only called once\r\n oktaAuth.signInWithRedirect({ sessionToken, originalUri: '/home' });\r\n })\r\n .catch(err => console.log('Found an error', err));\r\n };\r\n\r\n const handlefirstnameChange = (e) => {\r\n setfirstname(e.target.value)\r\n }\r\n\r\n const handlelastnameChange = (e) => {\r\n setlastname(e.target.value)\r\n }\r\n\r\n const handleUsernameChange = (e) => {\r\n setUsername(e.target.value);\r\n };\r\n\r\n const handlePasswordChange = (e) => {\r\n setPassword(e.target.value)\r\n }\r\n\r\n const handleConfirmPasswordChange = (e) => {\r\n setConfirmPassword(e.target.value)\r\n }\r\n\r\n if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n const handlePasswordReset = () => {\r\n if (!username == '') {\r\n fetch(config.serviceAPI.resetPasswordURL, resetPasswordRequestOptions)\r\n .then((res) => {\r\n if (!res.ok) {\r\n window.alert(\"Error: something went wrong\")\r\n Promise.reject(\"\")\r\n return\r\n }\r\n if (res.ok) {\r\n // do something\r\n }\r\n })\r\n }\r\n else {\r\n window.alert(\"Please enter a valid email into the login form\")\r\n }\r\n }\r\n\r\n if (!authState || !authState.isAuthenticated) {\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${signUpFormVisibilityState ? \"active\" : \"inactive\"}`}>\r\n\r\n <div ref={signUpFormRef} className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignUpFormSubmit}>\r\n <label>\r\n First name:\r\n <input\r\n id=\"firstname\" type=\"text\"\r\n value={firstname}\r\n onChange={handlefirstnameChange} />\r\n </label>\r\n <label>\r\n Last Name:\r\n <input\r\n id=\"lastname\" type=\"text\"\r\n value={lastname}\r\n onChange={handlelastnameChange} />\r\n </label>\r\n <label>\r\n Email:\r\n <input\r\n id=\"email\" type=\"text\"\r\n value={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <label>\r\n Confirm Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={confirmPassword}\r\n onChange={handleConfirmPasswordChange} />\r\n </label>\r\n <label className=\"password-requirements\">\r\n Requirements: At least 8 characters, no parts of your username\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign Up&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"user-plus\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div className=\"spacer\">\r\n <div className=\"text-container\">\r\n <h1>Get started with PipIt</h1>\r\n <h5>Track bugs and usabilty issues</h5>\r\n <button className=\"signUpForm-show-button\" onClick={toggleSignInFormVisible}>\r\n Sign up\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"signInForm\">\r\n <h2>Sign in to PipIt</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\r\n <label>\r\n Email:\r\n <input\r\n id=\"username\" type=\"text\"\r\n value={signUpFormVisibilityState ? null : username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={signUpFormVisibilityState ? null : password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"password-forgot-prompt\">\r\n <span>\r\n <a onClick={handlePasswordReset}>Forgot password</a>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n } else {\r\n return <Redirect to=\"/home\" />\r\n }\r\n}\r\n\r\nexport default SignUp"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\login\\\\signUp\\\\SignUp.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport \"./SignUp.css\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useInput } from '../../../util/useInput';\nimport { NavLink } from 'react-router-dom';\nimport config from \"../../../config\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst SignUp = () => {\n _s();\n\n const {\n value: firstName,\n bind: bindFirstName,\n reset: resetFirstName\n } = useInput('');\n const {\n value: lastName,\n bind: bindLastName,\n reset: resetLastName\n } = useInput('');\n const {\n value: email,\n bind: bindEmail,\n reset: resetEmail\n } = useInput('');\n const {\n value: password,\n bind: bindPassword,\n reset: resetPassword\n } = useInput('');\n\n const handleSubmit = e => {\n e.preventDefault(); //alert(`Submitting user ${firstName} ${lastName} ${email} ${password}`);\n\n fetch(config.serviceAPI.createNewUserURL, {\n method: 'POST',\n body: {\n FirstName: `${firstName}`,\n LastName: `${lastName}`,\n Email: `${email}`,\n password: `${password}`\n }\n }).then(response => {\n if (!response.ok) {\n return Promise.reject();\n }\n\n return response.json();\n });\n resetFirstName();\n resetLastName();\n resetEmail();\n resetPassword();\n };\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"spacer\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-container\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n children: \"Get started with PipIt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 43,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signUpForm\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n children: \"Sign Up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Fist name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindFirstName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 51,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Last Name:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindLastName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"text\",\n ...bindEmail\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Password:\", /*#__PURE__*/_jsxDEV(\"input\", {\n type: \"password\",\n ...bindPassword\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"sign-up-prompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Already have an account?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/signIn\",\n className: \"signInLink\",\n children: \"Sign in\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"qBcPMosoFn1+k0tawoNFrCnYMDg=\", false, function () {\n return [useInput, useInput, useInput, useInput];\n});\n\n_c = SignUp;\nexport default SignUp;\n\nvar _c;\n\n$RefreshReg$(_c, \"SignUp\");","map":{"version":3,"sources":["C:/Users/Bruger/Desktop/Web-projects/pipit/client/src/components/login/signUp/SignUp.jsx"],"names":["React","useState","useEffect","FontAwesomeIcon","useInput","NavLink","config","SignUp","value","firstName","bind","bindFirstName","reset","resetFirstName","lastName","bindLastName","resetLastName","email","bindEmail","resetEmail","password","bindPassword","resetPassword","handleSubmit","e","preventDefault","fetch","serviceAPI","createNewUserURL","method","body","FirstName","LastName","Email","then","response","ok","Promise","reject","json"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport \"./SignUp.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { useInput } from '../../../util/useInput'\r\nimport { NavLink } from 'react-router-dom';\r\nimport config from \"../../../config\"\r\n\r\nconst SignUp = () => {\r\n const { value: firstName, bind: bindFirstName, reset: resetFirstName } = useInput('')\r\n const { value: lastName, bind: bindLastName, reset: resetLastName } = useInput('')\r\n const { value: email, bind: bindEmail, reset: resetEmail } = useInput('')\r\n const { value: password, bind: bindPassword, reset: resetPassword } = useInput('')\r\n\r\n const handleSubmit = (e) => {\r\n e.preventDefault();\r\n //alert(`Submitting user ${firstName} ${lastName} ${email} ${password}`);\r\n fetch(config.serviceAPI.createNewUserURL, {\r\n method: 'POST',\r\n body: {\r\n FirstName: `${firstName}`,\r\n LastName: `${lastName}`,\r\n Email: `${email}`,\r\n password: `${password}`\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 resetFirstName()\r\n resetLastName()\r\n resetEmail()\r\n resetPassword()\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n <div className=\"spacer\">\r\n <div className=\"text-container\">\r\n <h1>Get started with PipIt</h1>\r\n <h5>Track bugs and usabilty issues</h5>\r\n </div>\r\n </div>\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSubmit}>\r\n <label>\r\n Fist name:\r\n <input type=\"text\" {...bindFirstName} />\r\n </label>\r\n <label>\r\n Last Name:\r\n <input\r\n type=\"text\" {...bindLastName} />\r\n </label>\r\n <label>\r\n Email:\r\n <input\r\n type=\"text\" {...bindEmail} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n type=\"password\" {...bindPassword} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign Up&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"user-plus\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"sign-up-prompt\">\r\n <span>Already have an account?&nbsp;\r\n <NavLink to=\"/signIn\" className=\"signInLink\">\r\n Sign in\r\n </NavLink>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SignUp"]},"metadata":{},"sourceType":"module"}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment