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

added automatic sign-in on sign-up

parent a701bc12
[{"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js":"1","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.jsx":"2","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\Home.jsx":"3","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.jsx":"4","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.jsx":"5","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.jsx":"6","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\ProjectInfo.jsx":"7","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInfo\\TeamInfo.jsx":"8","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.jsx":"9","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.jsx":"10","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\updates\\Updates.jsx":"11","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activityChart\\ActivityChart.jsx":"12","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.jsx":"13","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.jsx":"14","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\dropdownMenu\\NavbarDropdownMenu.jsx":"15","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.jsx":"16","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js":"17","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\Messages\\Messages.jsx":"18","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.jsx":"19","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.jsx":"20","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signUp\\SignUp.jsx":"21","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signIn\\SignIn.jsx":"22","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useInput.jsx":"23"},{"size":285,"mtime":1628516023915,"results":"24","hashOfConfig":"25"},{"size":2157,"mtime":1629367680059,"results":"26","hashOfConfig":"25"},{"size":1016,"mtime":1628697313487,"results":"27","hashOfConfig":"25"},{"size":3967,"mtime":1628695632288,"results":"28","hashOfConfig":"25"},{"size":3660,"mtime":1629794572456,"results":"29","hashOfConfig":"25"},{"size":2694,"mtime":1628696113184,"results":"30","hashOfConfig":"25"},{"size":1068,"mtime":1628696051327,"results":"31","hashOfConfig":"25"},{"size":2374,"mtime":1628696187694,"results":"32","hashOfConfig":"25"},{"size":906,"mtime":1629790599062,"results":"33","hashOfConfig":"25"},{"size":3264,"mtime":1628535700010,"results":"34","hashOfConfig":"25"},{"size":2334,"mtime":1629123056814,"results":"35","hashOfConfig":"25"},{"size":3570,"mtime":1628430832688,"results":"36","hashOfConfig":"25"},{"size":2096,"mtime":1628430812599,"results":"37","hashOfConfig":"25"},{"size":548,"mtime":1628421916010,"results":"38","hashOfConfig":"25"},{"size":2700,"mtime":1629794335846,"results":"39","hashOfConfig":"25"},{"size":470,"mtime":1628430752153,"results":"40","hashOfConfig":"25"},{"size":401,"mtime":1629726035252,"results":"41","hashOfConfig":"25"},{"size":626,"mtime":1628697746462,"results":"42","hashOfConfig":"25"},{"size":697,"mtime":1628430740299,"results":"43","hashOfConfig":"25"},{"size":1489,"mtime":1629790769379,"results":"44","hashOfConfig":"25"},{"size":4005,"mtime":1629798137287,"results":"45","hashOfConfig":"25"},{"size":2380,"mtime":1629797178926,"results":"46","hashOfConfig":"25"},{"size":324,"mtime":1629371594261,"results":"47","hashOfConfig":"25"},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},"iyhzrm",{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"55","usedDeprecatedRules":"50"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"58","usedDeprecatedRules":"50"},{"filePath":"59","messages":"60","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"61","messages":"62","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"63","usedDeprecatedRules":"50"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"68","usedDeprecatedRules":"50"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"71","messages":"72","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"73","usedDeprecatedRules":"50"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"76","usedDeprecatedRules":"50"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"79","messages":"80","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"81","usedDeprecatedRules":"50"},{"filePath":"82","messages":"83","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"84","usedDeprecatedRules":"50"},{"filePath":"85","messages":"86","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"87","messages":"88","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"91","usedDeprecatedRules":"50"},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"94","messages":"95","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"96","messages":"97","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"98","messages":"99","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js",[],["104","105"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\Home.jsx",["106"],"import 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 [userInfo, setUserInfo] = useState(null);\r\n const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims\r\n\r\n useEffect(() => {\r\n setUserInfo(idToken)\r\n }, [])\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome {userInfo ? userInfo.name : \"...\"}!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &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","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.jsx",["107"],"import React, { useState } from 'react'\r\nimport \"./ReportForm.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Assign from './assign/Assign'\r\n\r\nconst ReportForm = () => {\r\n return (\r\n <div className=\"page-content-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 )\r\n}\r\n\r\nexport default ReportForm","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.jsx",["108","109"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.jsx",["110","111"],"import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./TeamOverview.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\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 className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"teamlist-title\">Teams</h2>\r\n <div className=\"buttons-container\">\r\n <button className=\"join-team-button\">\r\n Join Team\r\n </button>\r\n <button className=\"create-new-team-button\">\r\n New team\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"teamlist\">\r\n <ul>\r\n <li>\r\n <div className=\"team-entry\">\r\n <div className=\"image-team-name\">\r\n <NavLink to=\"/HenriksMemeMachine\" className=\"team-image-container\">\r\n <FontAwesomeIcon className=\"team-icon\" icon=\"dice-d6\"></FontAwesomeIcon>\r\n </NavLink>\r\n <NavLink to=\"/HenriksMemeMachine\">Henriks meme machine - ReactApp&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 )\r\n}\r\n\r\nexport default TeamOverview","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\ProjectInfo.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInfo\\TeamInfo.jsx",["112"],"import React, { useRef, useState, useEffect } from 'react'\r\nimport \"./TeamInfo.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst TeamInfo = () => {\r\n const dropdownRef = useRef(null);\r\n const [isActive, setIsActive] = useState(false);\r\n const onClick = () => setIsActive(!isActive);\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\r\n setIsActive(!isActive);\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (isActive) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [isActive]);\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"teamInformationPage-content-header\">\r\n <div className=\"header-text\">\r\n <h2 className=\"teamInformationPage-title\">Henriks Meme machine > overview</h2>\r\n </div>\r\n <div className=\"header-notification-select-settings-button-container\">\r\n <div className=\"notification-button-container\">\r\n <button className={`notification-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >\r\n <FontAwesomeIcon className=\"bell-icon\" icon=\"bell\"></FontAwesomeIcon>\r\n <FontAwesomeIcon className=\"down-arrow\" icon=\"angle-down\"></FontAwesomeIcon>\r\n </button>\r\n <div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>\r\n <ul>\r\n <li>\r\n <a>\r\n <FontAwesomeIcon icon=\"user\"></FontAwesomeIcon>&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 )\r\n}\r\n\r\nexport default TeamInfo","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.jsx",["113"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.jsx",["114","115","116","117","118","119"],"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=\"angle-right\" 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","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\updates\\Updates.jsx",["120","121","122","123"],"import React from 'react'\r\nimport \"./Updates.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport useMessages from '../../../util/useMessages'\r\n\r\nconst Updates = () => {\r\n const messages = useMessages()\r\n\r\n return (\r\n <div className=\"project-updates-new-messages-container\">\r\n\r\n <div className=\"project-updates-display-container\">\r\n <div className=\"project-updates-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"exclamation\"></FontAwesomeIcon>\r\n &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 {messages ? messages.map((message) => (\r\n <div className=\"new-messages-display-content\">\r\n <div className=\"new-message-entry\">\r\n <div className=\"entry-text\">\r\n <div className=\"upper-row\">\r\n <a>\r\n [{message.sender}] [{message.id}]\r\n </a>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <a>\r\n [team] [{message.date}]\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"entry-icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </div>\r\n )) : \"Loading messages\"}\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\\project\\projectInfo\\activityChart\\ActivityChart.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.jsx",["124","125","126","127"],"import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport React from 'react'\r\nimport \"./ActivitiesDisplay.css\"\r\n\r\nconst ActivitiesDisplay = () => {\r\n return (\r\n <div className=\"activity-new-issues-display-container\">\r\n\r\n <div className=\"new-issues-display-container\">\r\n <div className=\"new-issues-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"inbox\"></FontAwesomeIcon>\r\n &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 ActivitiesDisplay","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.jsx",["128","129"],"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\\navbar\\dropdownMenu\\NavbarDropdownMenu.jsx",["130","131"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js",["132"],"export default {\r\n oidc: {\r\n clientId: '0oa1f4zfeiiZPB6DF5d7',\r\n issuer: 'https://dev-91882654.okta.com/oauth2/default',\r\n redirectUri: window.location.origin + '/login/callback',\r\n scopes: ['openid', 'profile', 'email'],\r\n pkce: true\r\n },\r\n serviceAPI: {\r\n messagesURL: 'http://localhost:3030/api/messages',\r\n createNewUserURL: 'http://localhost:3030/api/create-user'\r\n }\r\n};","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\Messages\\Messages.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.jsx",["133"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signUp\\SignUp.jsx",["134","135","136"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signIn\\SignIn.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useInput.jsx",[],{"ruleId":"137","replacedBy":"138"},{"ruleId":"139","replacedBy":"140"},{"ruleId":"141","severity":1,"message":"142","line":13,"column":6,"nodeType":"143","endLine":13,"endColumn":8,"suggestions":"144"},{"ruleId":"145","severity":1,"message":"146","line":1,"column":17,"nodeType":"147","messageId":"148","endLine":1,"endColumn":25},{"ruleId":"149","severity":1,"message":"150","line":75,"column":11,"nodeType":"151","endLine":75,"endColumn":123},{"ruleId":"149","severity":1,"message":"150","line":76,"column":11,"nodeType":"151","endLine":76,"endColumn":127},{"ruleId":"145","severity":1,"message":"152","line":8,"column":9,"nodeType":"147","messageId":"148","endLine":8,"endColumn":25},{"ruleId":"145","severity":1,"message":"153","line":13,"column":9,"nodeType":"147","messageId":"148","endLine":13,"endColumn":23},{"ruleId":"149","severity":1,"message":"150","line":43,"column":19,"nodeType":"151","endLine":43,"endColumn":22},{"ruleId":"145","severity":1,"message":"154","line":10,"column":22,"nodeType":"147","messageId":"148","endLine":10,"endColumn":30},{"ruleId":"145","severity":1,"message":"146","line":1,"column":17,"nodeType":"147","messageId":"148","endLine":1,"endColumn":25},{"ruleId":"149","severity":1,"message":"150","line":29,"column":13,"nodeType":"151","endLine":29,"endColumn":16},{"ruleId":"149","severity":1,"message":"150","line":39,"column":19,"nodeType":"151","endLine":39,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":50,"column":13,"nodeType":"151","endLine":50,"endColumn":16},{"ruleId":"149","severity":1,"message":"150","line":60,"column":19,"nodeType":"151","endLine":60,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":70,"column":25,"nodeType":"151","endLine":70,"endColumn":28},{"ruleId":"149","severity":1,"message":"150","line":23,"column":17,"nodeType":"151","endLine":23,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":28,"column":17,"nodeType":"151","endLine":28,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":52,"column":19,"nodeType":"151","endLine":52,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":57,"column":19,"nodeType":"151","endLine":57,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":20,"column":17,"nodeType":"151","endLine":20,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":25,"column":17,"nodeType":"151","endLine":25,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":48,"column":17,"nodeType":"151","endLine":48,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":53,"column":17,"nodeType":"151","endLine":53,"endColumn":20},{"ruleId":"155","severity":1,"message":"156","line":12,"column":11,"nodeType":"151","endLine":12,"endColumn":58},{"ruleId":"155","severity":1,"message":"156","line":13,"column":11,"nodeType":"151","endLine":13,"endColumn":55},{"ruleId":"145","severity":1,"message":"157","line":9,"column":11,"nodeType":"147","messageId":"148","endLine":9,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":67,"column":15,"nodeType":"151","endLine":67,"endColumn":35},{"ruleId":"158","severity":1,"message":"159","line":1,"column":1,"nodeType":"160","endLine":13,"endColumn":3},{"ruleId":"141","severity":1,"message":"161","line":47,"column":6,"nodeType":"143","endLine":47,"endColumn":17,"suggestions":"162"},{"ruleId":"145","severity":1,"message":"154","line":9,"column":11,"nodeType":"147","messageId":"148","endLine":9,"endColumn":19},{"ruleId":"145","severity":1,"message":"163","line":10,"column":10,"nodeType":"147","messageId":"148","endLine":10,"endColumn":22},{"ruleId":"145","severity":1,"message":"164","line":10,"column":24,"nodeType":"147","messageId":"148","endLine":10,"endColumn":39},"no-native-reassign",["165"],"no-negated-in-lhs",["166"],"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'idToken'. Either include it or remove the dependency array.","ArrayExpression",["167"],"no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","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.","'oktaAuth' is assigned a value but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","'authState' is assigned a value but never used.","import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration","React Hook useEffect has a missing dependency: 'oktaAuth'. Either include it or remove the dependency array.",["168"],"'sessionToken' is assigned a value but never used.","'setSessionToken' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"169","fix":"170"},{"desc":"171","fix":"172"},"Update the dependencies array to be: [idToken]",{"range":"173","text":"174"},"Update the dependencies array to be: [authState, oktaAuth]",{"range":"175","text":"176"},[442,444],"[idToken]",[1422,1433],"[authState, oktaAuth]"]
\ 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\\App.jsx":"2","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\Home.jsx":"3","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.jsx":"4","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.jsx":"5","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.jsx":"6","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\ProjectInfo.jsx":"7","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInfo\\TeamInfo.jsx":"8","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.jsx":"9","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.jsx":"10","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\updates\\Updates.jsx":"11","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activityChart\\ActivityChart.jsx":"12","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.jsx":"13","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.jsx":"14","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\dropdownMenu\\NavbarDropdownMenu.jsx":"15","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.jsx":"16","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js":"17","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\Messages\\Messages.jsx":"18","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.jsx":"19","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.jsx":"20","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signUp\\SignUp.jsx":"21","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signIn\\SignIn.jsx":"22","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useInput.jsx":"23"},{"size":285,"mtime":1628516023915,"results":"24","hashOfConfig":"25"},{"size":2157,"mtime":1629367680059,"results":"26","hashOfConfig":"25"},{"size":1279,"mtime":1629807516741,"results":"27","hashOfConfig":"25"},{"size":3967,"mtime":1628695632288,"results":"28","hashOfConfig":"25"},{"size":3660,"mtime":1629794572456,"results":"29","hashOfConfig":"25"},{"size":2694,"mtime":1628696113184,"results":"30","hashOfConfig":"25"},{"size":1068,"mtime":1628696051327,"results":"31","hashOfConfig":"25"},{"size":2374,"mtime":1628696187694,"results":"32","hashOfConfig":"25"},{"size":906,"mtime":1629790599062,"results":"33","hashOfConfig":"25"},{"size":3264,"mtime":1628535700010,"results":"34","hashOfConfig":"25"},{"size":2334,"mtime":1629123056814,"results":"35","hashOfConfig":"25"},{"size":3570,"mtime":1628430832688,"results":"36","hashOfConfig":"25"},{"size":2096,"mtime":1628430812599,"results":"37","hashOfConfig":"25"},{"size":548,"mtime":1628421916010,"results":"38","hashOfConfig":"25"},{"size":2674,"mtime":1629805727243,"results":"39","hashOfConfig":"25"},{"size":470,"mtime":1628430752153,"results":"40","hashOfConfig":"25"},{"size":401,"mtime":1629726035252,"results":"41","hashOfConfig":"25"},{"size":626,"mtime":1628697746462,"results":"42","hashOfConfig":"25"},{"size":697,"mtime":1628430740299,"results":"43","hashOfConfig":"25"},{"size":1489,"mtime":1629790769379,"results":"44","hashOfConfig":"25"},{"size":6133,"mtime":1629808177320,"results":"45","hashOfConfig":"25"},{"size":2380,"mtime":1629797178926,"results":"46","hashOfConfig":"25"},{"size":324,"mtime":1629371594261,"results":"47","hashOfConfig":"25"},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},"iyhzrm",{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"55","messages":"56","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"57","usedDeprecatedRules":"50"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"60","usedDeprecatedRules":"50"},{"filePath":"61","messages":"62","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"63","usedDeprecatedRules":"50"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"68","usedDeprecatedRules":"50"},{"filePath":"69","messages":"70","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"71","usedDeprecatedRules":"50"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"74","usedDeprecatedRules":"50"},{"filePath":"75","messages":"76","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"77","usedDeprecatedRules":"50"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"80","messages":"81","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"82","usedDeprecatedRules":"50"},{"filePath":"83","messages":"84","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"85","usedDeprecatedRules":"50"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"92","usedDeprecatedRules":"50"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"99","usedDeprecatedRules":"50"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"50"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"106"},"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\index.js",[],["107","108"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\App.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\Home.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\ReportForm.jsx",["109"],"import React, { useState } from 'react'\r\nimport \"./ReportForm.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport Assign from './assign/Assign'\r\n\r\nconst ReportForm = () => {\r\n return (\r\n <div className=\"page-content-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 )\r\n}\r\n\r\nexport default ReportForm","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectOverview\\ProjectOverview.jsx",["110","111"],"import React, { useState } from 'react'\r\nimport { NavLink } from \"react-router-dom\";\r\nimport \"./ProjectOverview.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\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[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 className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"projectlist-title\">Your Projects</h2>\r\n <button className=\"create-new-project-button\">\r\n New Project\r\n </button>\r\n </div>\r\n <div className=\"project-sort-menu-container\">\r\n <div className=\"personal-shared-projects-container\">\r\n <a className={sharedProjectsButtonState ? \"activeUnderlined\" : \"inactive\"} onClick={SharedProjectsButtonActive}>Shared Projects</a>\r\n <a className={personalProjectsButtonState ? \"activeUnderlined\" : \"inactive\"} onClick={PersonalProjectsButtonActive}>Personal Projects</a>\r\n </div>\r\n <div className=\"project-sort-select-container\">\r\n <p>Sort by:</p>\r\n <select>\r\n <option>Last updated</option>\r\n <option>Last created</option>\r\n <option>Name</option>\r\n <option>Name descending</option>\r\n <option>Oldest created</option>\r\n <option>Oldest updated</option>\r\n </select>\r\n </div>\r\n </div>\r\n {sharedProjectsButtonState ? ProjectsDisplay(sharedProjects) : ProjectsDisplay(personalProjects)}\r\n </div >\r\n )\r\n}\r\n\r\nexport default ProjectOverview","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamOverview\\TeamOverview.jsx",["112","113"],"import React from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport \"./TeamOverview.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\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 className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"teamlist-title\">Teams</h2>\r\n <div className=\"buttons-container\">\r\n <button className=\"join-team-button\">\r\n Join Team\r\n </button>\r\n <button className=\"create-new-team-button\">\r\n New team\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"teamlist\">\r\n <ul>\r\n <li>\r\n <div className=\"team-entry\">\r\n <div className=\"image-team-name\">\r\n <NavLink to=\"/HenriksMemeMachine\" className=\"team-image-container\">\r\n <FontAwesomeIcon className=\"team-icon\" icon=\"dice-d6\"></FontAwesomeIcon>\r\n </NavLink>\r\n <NavLink to=\"/HenriksMemeMachine\">Henriks meme machine - ReactApp&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 )\r\n}\r\n\r\nexport default TeamOverview","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\ProjectInfo.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\team\\teamInfo\\TeamInfo.jsx",["114"],"import React, { useRef, useState, useEffect } from 'react'\r\nimport \"./TeamInfo.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst TeamInfo = () => {\r\n const dropdownRef = useRef(null);\r\n const [isActive, setIsActive] = useState(false);\r\n const onClick = () => setIsActive(!isActive);\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\r\n setIsActive(!isActive);\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (isActive) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [isActive]);\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"teamInformationPage-content-header\">\r\n <div className=\"header-text\">\r\n <h2 className=\"teamInformationPage-title\">Henriks Meme machine > overview</h2>\r\n </div>\r\n <div className=\"header-notification-select-settings-button-container\">\r\n <div className=\"notification-button-container\">\r\n <button className={`notification-button ${isActive ? 'active' : 'inactive'}`} onClick={onClick} >\r\n <FontAwesomeIcon className=\"bell-icon\" icon=\"bell\"></FontAwesomeIcon>\r\n <FontAwesomeIcon className=\"down-arrow\" icon=\"angle-down\"></FontAwesomeIcon>\r\n </button>\r\n <div ref={dropdownRef} className={`user-dropDown-menu-content ${isActive ? 'active' : 'inactive'}`}>\r\n <ul>\r\n <li>\r\n <a>\r\n <FontAwesomeIcon icon=\"user\"></FontAwesomeIcon>&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 )\r\n}\r\n\r\nexport default TeamInfo","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\Navbar.jsx",["115"],"import React from 'react'\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./Navbar.css\"\r\nimport Logo from './logo/Logo'\r\nimport NavLinks from './navLinks/NavLinks'\r\nimport Searchbar from './searchbar/Searchbar'\r\nimport NavbarDropdownMenu from './dropdownMenu/NavbarDropdownMenu'\r\n\r\nconst Navbar = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n\r\n if (!authState || !authState.isAuthenticated) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"navbar\" >\r\n <div className=\"header-content\">\r\n <div className=\"title-navigation-links-container\">\r\n <Logo />\r\n <NavLinks />\r\n </div>\r\n <div className=\"searchbar-profile-container\">\r\n <ul className=\"right-unstyled-navbar\">\r\n <Searchbar />\r\n <NavbarDropdownMenu />\r\n </ul>\r\n </div>\r\n </div>\r\n </div >\r\n )\r\n}\r\n\r\nexport default Navbar","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\reportForm\\assign\\Assign.jsx",["116","117","118","119","120","121"],"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=\"angle-right\" 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","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\home\\updates\\Updates.jsx",["122","123","124","125"],"import React from 'react'\r\nimport \"./Updates.css\"\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport useMessages from '../../../util/useMessages'\r\n\r\nconst Updates = () => {\r\n const messages = useMessages()\r\n\r\n return (\r\n <div className=\"project-updates-new-messages-container\">\r\n\r\n <div className=\"project-updates-display-container\">\r\n <div className=\"project-updates-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"exclamation\"></FontAwesomeIcon>\r\n &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 {messages ? messages.map((message) => (\r\n <div className=\"new-messages-display-content\">\r\n <div className=\"new-message-entry\">\r\n <div className=\"entry-text\">\r\n <div className=\"upper-row\">\r\n <a>\r\n [{message.sender}] [{message.id}]\r\n </a>\r\n </div>\r\n <div className=\"bottom-row\">\r\n <a>\r\n [team] [{message.date}]\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <FontAwesomeIcon className=\"entry-icon\" icon=\"chevron-right\"></FontAwesomeIcon>\r\n </div>\r\n </div>\r\n </div>\r\n )) : \"Loading messages\"}\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\\project\\projectInfo\\activityChart\\ActivityChart.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\project\\projectInfo\\activitiesDisplay\\ActivitiesDisplay.jsx",["126","127","128","129"],"import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport React from 'react'\r\nimport \"./ActivitiesDisplay.css\"\r\n\r\nconst ActivitiesDisplay = () => {\r\n return (\r\n <div className=\"activity-new-issues-display-container\">\r\n\r\n <div className=\"new-issues-display-container\">\r\n <div className=\"new-issues-display-header\">\r\n <p>\r\n <FontAwesomeIcon icon=\"inbox\"></FontAwesomeIcon>\r\n &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 ActivitiesDisplay","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\logo\\Logo.jsx",["130","131"],"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\\navbar\\dropdownMenu\\NavbarDropdownMenu.jsx",["132","133"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\searchbar\\Searchbar.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\config.js",["134"],"export default {\r\n oidc: {\r\n clientId: '0oa1f4zfeiiZPB6DF5d7',\r\n issuer: 'https://dev-91882654.okta.com/oauth2/default',\r\n redirectUri: window.location.origin + '/login/callback',\r\n scopes: ['openid', 'profile', 'email'],\r\n pkce: true\r\n },\r\n serviceAPI: {\r\n messagesURL: 'http://localhost:3030/api/messages',\r\n createNewUserURL: 'http://localhost:3030/api/create-user'\r\n }\r\n};","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\Messages\\Messages.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\navbar\\navLinks\\NavLinks.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useMessages.jsx",["135"],"import { useState, useEffect } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\n\r\nimport config from \"../config\"\r\n\r\nconst useMessages = () => {\r\n const { authState, oktaAuth } = useOktaAuth();\r\n const [messages, setMessages] = useState(null);\r\n\r\n // fetch messages\r\n useEffect(() => {\r\n if (authState && authState.isAuthenticated) {\r\n const accessToken = oktaAuth.getAccessToken();\r\n fetch(config.serviceAPI.messagesURL, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${accessToken}`,\r\n },\r\n })\r\n .then((response) => {\r\n if (!response.ok) {\r\n return Promise.reject();\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n let index = 0;\r\n const formattedMessages = data.messages.map((message) => {\r\n const date = new Date(message.date);\r\n const day = date.toLocaleDateString();\r\n const time = date.toLocaleTimeString();\r\n index += 1;\r\n return {\r\n date: `${day} ${time}`,\r\n sender: message.sender,\r\n text: message.text,\r\n id: `message-${index}`,\r\n };\r\n });\r\n setMessages(formattedMessages);\r\n })\r\n .catch((err) => {\r\n /* eslint-disable no-console */\r\n console.error(err);\r\n });\r\n }\r\n }, [authState]);\r\n\r\n return messages\r\n}\r\n\r\nexport default useMessages","C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signUp\\SignUp.jsx",["136","137","138"],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\components\\login\\signIn\\SignIn.jsx",[],"C:\\Users\\Bruger\\Desktop\\Web-projects\\pipit\\client\\src\\util\\useInput.jsx",[],["139","140"],{"ruleId":"141","replacedBy":"142"},{"ruleId":"143","replacedBy":"144"},{"ruleId":"145","severity":1,"message":"146","line":1,"column":17,"nodeType":"147","messageId":"148","endLine":1,"endColumn":25},{"ruleId":"149","severity":1,"message":"150","line":75,"column":11,"nodeType":"151","endLine":75,"endColumn":123},{"ruleId":"149","severity":1,"message":"150","line":76,"column":11,"nodeType":"151","endLine":76,"endColumn":127},{"ruleId":"145","severity":1,"message":"152","line":8,"column":9,"nodeType":"147","messageId":"148","endLine":8,"endColumn":25},{"ruleId":"145","severity":1,"message":"153","line":13,"column":9,"nodeType":"147","messageId":"148","endLine":13,"endColumn":23},{"ruleId":"149","severity":1,"message":"150","line":43,"column":19,"nodeType":"151","endLine":43,"endColumn":22},{"ruleId":"145","severity":1,"message":"154","line":10,"column":22,"nodeType":"147","messageId":"148","endLine":10,"endColumn":30},{"ruleId":"145","severity":1,"message":"146","line":1,"column":17,"nodeType":"147","messageId":"148","endLine":1,"endColumn":25},{"ruleId":"149","severity":1,"message":"150","line":29,"column":13,"nodeType":"151","endLine":29,"endColumn":16},{"ruleId":"149","severity":1,"message":"150","line":39,"column":19,"nodeType":"151","endLine":39,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":50,"column":13,"nodeType":"151","endLine":50,"endColumn":16},{"ruleId":"149","severity":1,"message":"150","line":60,"column":19,"nodeType":"151","endLine":60,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":70,"column":25,"nodeType":"151","endLine":70,"endColumn":28},{"ruleId":"149","severity":1,"message":"150","line":23,"column":17,"nodeType":"151","endLine":23,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":28,"column":17,"nodeType":"151","endLine":28,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":52,"column":19,"nodeType":"151","endLine":52,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":57,"column":19,"nodeType":"151","endLine":57,"endColumn":22},{"ruleId":"149","severity":1,"message":"150","line":20,"column":17,"nodeType":"151","endLine":20,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":25,"column":17,"nodeType":"151","endLine":25,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":48,"column":17,"nodeType":"151","endLine":48,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":53,"column":17,"nodeType":"151","endLine":53,"endColumn":20},{"ruleId":"155","severity":1,"message":"156","line":12,"column":11,"nodeType":"151","endLine":12,"endColumn":58},{"ruleId":"155","severity":1,"message":"156","line":13,"column":11,"nodeType":"151","endLine":13,"endColumn":55},{"ruleId":"145","severity":1,"message":"157","line":9,"column":11,"nodeType":"147","messageId":"148","endLine":9,"endColumn":20},{"ruleId":"149","severity":1,"message":"150","line":66,"column":15,"nodeType":"151","endLine":66,"endColumn":35},{"ruleId":"158","severity":1,"message":"159","line":1,"column":1,"nodeType":"160","endLine":13,"endColumn":3},{"ruleId":"161","severity":1,"message":"162","line":47,"column":6,"nodeType":"163","endLine":47,"endColumn":17,"suggestions":"164"},{"ruleId":"145","severity":1,"message":"165","line":5,"column":10,"nodeType":"147","messageId":"148","endLine":5,"endColumn":17},{"ruleId":"161","severity":1,"message":"166","line":43,"column":6,"nodeType":"163","endLine":43,"endColumn":33,"suggestions":"167"},{"ruleId":"149","severity":1,"message":"150","line":191,"column":13,"nodeType":"151","endLine":191,"endColumn":50},{"ruleId":"141","replacedBy":"168"},{"ruleId":"143","replacedBy":"169"},"no-native-reassign",["170"],"no-negated-in-lhs",["171"],"no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","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.","'oktaAuth' is assigned a value but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","'authState' is assigned a value but never used.","import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'oktaAuth'. Either include it or remove the dependency array.","ArrayExpression",["172"],"'NavLink' is defined but never used.","React Hook useEffect has a missing dependency: 'toggleSignInFormVisible'. Either include it or remove the dependency array.",["173"],["170"],["171"],"no-global-assign","no-unsafe-negation",{"desc":"174","fix":"175"},{"desc":"176","fix":"177"},"Update the dependencies array to be: [authState, oktaAuth]",{"range":"178","text":"179"},"Update the dependencies array to be: [signUpFormVisibilityState, toggleSignInFormVisible]",{"range":"180","text":"181"},[1422,1433],"[authState, oktaAuth]",[1442,1469],"[signUpFormVisibilityState, toggleSignInFormVisible]"]
\ 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, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const dropdownRef = useRef(null);\n const [isActive, setIsActive] = useState(false);\n\n const onClick = () => setIsActive(!isActive);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\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 const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSignInFormVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n ref: dropdownRef,\n className: `modal ${isActive ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 111,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 115,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 15\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: 122,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 15\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: 129,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 15\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: 136,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\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: 141,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 109,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 7\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: 155,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 7\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: 164,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 11\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: 175,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 11\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: 182,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: onClick,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"9sB7tveXTaGMiaOI8ZeY6Cp+wKA=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","dropdownRef","isActive","setIsActive","onClick","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\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 const [firstname, setfirstname] = useState('')\r\n const [lastname, setlastname] = useState('')\r\n const [username, setUsername] = useState('');\r\n const [password, setPassword] = useState('');\r\n\r\n\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\r\n setIsActive(!isActive);\r\n }\r\n };\r\n\r\n // If the item is active (ie open) then listen for clicks\r\n if (isActive) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [isActive]);\r\n\r\n const 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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // toggleSignInFormVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div ref={dropdownRef} className={`modal ${isActive ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={onClick}>Sign up</a>\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, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [visibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = 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: \" + visibilityState);\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (visibilityState) {\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 }, [visibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSignInFormVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${visibilityState ? \"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: 115,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 119,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 15\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: 126,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 15\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: 133,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\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: 140,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 15\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: 145,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\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: 159,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\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: 168,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 11\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: 179,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 11\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: 186,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"NhccHfL1YYIKJ8/P5v37N9cfgdQ=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","signUpFormRef","visibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","console","log","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [visibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState)\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\r\n\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: \" + visibilityState)\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 (visibilityState) {\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 }, [visibilityState]);\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // toggleSignInFormVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${visibilityState ? \"active\" : \"inactive\"}`}>\r\n\r\n {/* Modal content */}\r\n <div ref={signUpFormRef} className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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 } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(true);\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const setModalVisible = () => {\n showModal(!modalState);\n };\n\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // setModalVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 96,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\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: 103,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"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: 110,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 15\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: 117,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 15\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: 122,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 7\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: 136,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 7\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: 142,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 11\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: 153,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 11\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: 160,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/\",\n className: \"signUpLink\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"RMPQTjo1QeSYrK4r0o62XpmzYP0=\", 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","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","setModalVisible","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","e","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","target","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(true)\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\r\n const setModalVisible = () => {\r\n showModal(!modalState)\r\n }\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // setModalVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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 </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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <NavLink to=\"/\" className=\"signUpLink\">\r\n Sign up\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 } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(false);\n const [firstName, setFirstName] = useState('');\n const [lastName, setLastName] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const setModalVisible = () => {\n showModal(!modalState);\n };\n\n const userInputData = JSON.stringify({\n FirstName: `${firstName}`,\n LastName: `${lastName}`,\n Email: `${username}`,\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(\"Error\");\n Promise.reject(\"\");\n return;\n }\n\n if (res.ok) {\n setModalVisible();\n }\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 handleUsernameChange = e => {\n setUsername(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: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"modal-content\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n children: [\"Account successfully created\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n className: \"check-icon\",\n icon: \"check\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 75,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 73,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/signin\",\n children: /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n children: [\"Sign in\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"sign-in-alt\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 77,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 72,\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: \"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: 88,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 89,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 86,\n columnNumber: 7\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: 94,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 11\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: 105,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 11\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: 112,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/\",\n className: \"signUpLink\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"3GjwC2sKKungvrOamAqexvThEVM=\", 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","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","firstName","setFirstName","lastName","setLastName","username","setUsername","password","setPassword","setModalVisible","userInputData","JSON","stringify","FirstName","LastName","Email","requestOptions","method","body","handleSubmit","e","preventDefault","fetch","serviceAPI","createNewUserURL","then","res","ok","window","alert","Promise","reject","handleFirstnameChange","target","value","handleLastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(false)\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\r\n const setModalVisible = () => {\r\n showModal(!modalState)\r\n }\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 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(\"Error\")\r\n Promise.reject(\"\")\r\n return\r\n }\r\n if (res.ok) {\r\n setModalVisible()\r\n }\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 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 return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <p>\r\n Account successfully created&nbsp;\r\n <FontAwesomeIcon className=\"check-icon\" icon=\"check\"></FontAwesomeIcon>\r\n </p>\r\n <NavLink to=\"/signin\">\r\n <button className=\"formSubmitButton\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </NavLink>\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 </div>\r\n </div>\r\n\r\n <div className=\"signInForm\">\r\n <h2>Sign in to PipIt</h2>\r\n <form onSubmit={handleSubmit}>\r\n <label>\r\n Email:\r\n <input\r\n id=\"username\" type=\"text\"\r\n value={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <NavLink to=\"/\" className=\"signUpLink\">\r\n Sign up\r\n </NavLink>\r\n </span>\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\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={email}\r\n onChange={handleEmailChange} />\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 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, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [visibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n useEffect(() => {\n const pageClickEvent = e => {\n if (signUpFormRef.current !== null && !signUpFormRef.current.contains(e.target)) {\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (visibilityState) {\n window.addEventListener('click', pageClickEvent);\n }\n\n return () => {\n window.alert(\"click\");\n window.removeEventListener('click', pageClickEvent);\n };\n }, [visibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSignInFormVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n ref: signUpFormRef,\n className: `modal ${visibilityState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 112,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 116,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\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: 123,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 15\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: 130,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\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: 137,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\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: 142,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\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: 156,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\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: 165,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 11\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: 176,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 11\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: 183,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"NhccHfL1YYIKJ8/P5v37N9cfgdQ=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","signUpFormRef","visibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","current","contains","target","window","addEventListener","alert","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,EAAqCC,MAArC,QAAmD,OAAnD;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,cAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;;;AAEA,MAAMC,MAAM,GAAG,MAAM;AAAA;;AACnB,QAAM;AAAEC,IAAAA;AAAF,MAAeL,WAAW,EAAhC;AACA,QAAM,CAACM,YAAD,EAAeC,eAAf,IAAkCV,QAAQ,EAAhD;AAEA,QAAMW,aAAa,GAAGT,MAAM,CAAC,IAAD,CAA5B;AACA,QAAM,CAACU,eAAD,EAAkBC,cAAlB,IAAoCb,QAAQ,CAAC,KAAD,CAAlD;;AACA,QAAMc,uBAAuB,GAAG,MAAMD,cAAc,CAAC,CAACD,eAAF,CAApD;;AAEA,QAAM,CAACG,SAAD,EAAYC,YAAZ,IAA4BhB,QAAQ,CAAC,EAAD,CAA1C;AACA,QAAM,CAACiB,QAAD,EAAWC,WAAX,IAA0BlB,QAAQ,CAAC,EAAD,CAAxC;AACA,QAAM,CAACmB,QAAD,EAAWC,WAAX,IAA0BpB,QAAQ,CAAC,EAAD,CAAxC;AACA,QAAM,CAACqB,QAAD,EAAWC,WAAX,IAA0BtB,QAAQ,CAAC,EAAD,CAAxC;AAIAC,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMsB,cAAc,GAAIC,CAAD,IAAO;AAC5B,UAAIb,aAAa,CAACc,OAAd,KAA0B,IAA1B,IAAkC,CAACd,aAAa,CAACc,OAAd,CAAsBC,QAAtB,CAA+BF,CAAC,CAACG,MAAjC,CAAvC,EAAiF;AAC/Eb,QAAAA,uBAAuB;AACxB;AACF,KAJD,CADc,CAOd;;;AACA,QAAIF,eAAJ,EAAqB;AACnBgB,MAAAA,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiCN,cAAjC;AACD;;AAED,WAAO,MAAM;AACXK,MAAAA,MAAM,CAACE,KAAP,CAAa,OAAb;AACAF,MAAAA,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoCR,cAApC;AACD,KAHD;AAKD,GAjBQ,EAiBN,CAACX,eAAD,CAjBM,CAAT;AAmBA,QAAMoB,aAAa,GAAGC,IAAI,CAACC,SAAL,CAAe;AACnCnB,IAAAA,SAAS,EAAG,GAAEA,SAAU,EADW;AAEnCE,IAAAA,QAAQ,EAAG,GAAEA,QAAS,EAFa;AAGnCkB,IAAAA,KAAK,EAAG,GAAEhB,QAAS,EAHgB;AAInCE,IAAAA,QAAQ,EAAG,GAAEA,QAAS;AAJa,GAAf,CAAtB;AAOA,QAAMe,cAAc,GAAG;AACrBC,IAAAA,MAAM,EAAE,MADa;AAErBC,IAAAA,IAAI,EAAEN;AAFe,GAAvB,CAzCmB,CA8CnB;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAMO,sBAAsB,GAAIf,CAAD,IAAO;AACpCA,IAAAA,CAAC,CAACgB,cAAF;AAEAhC,IAAAA,QAAQ,CAACiC,qBAAT,CAA+B;AAAEtB,MAAAA,QAAF;AAAYE,MAAAA;AAAZ,KAA/B,EACGqB,IADH,CACQC,GAAG,IAAI;AACX,YAAMlC,YAAY,GAAGkC,GAAG,CAAClC,YAAzB;AACAC,MAAAA,eAAe,CAACD,YAAD,CAAf,CAFW,CAGX;;AACAD,MAAAA,QAAQ,CAACoC,kBAAT,CAA4B;AAAEnC,QAAAA,YAAF;AAAgBoC,QAAAA,WAAW,EAAE;AAA7B,OAA5B;AACD,KANH,EAOGC,KAPH,CAOSC,GAAG,IAAIC,OAAO,CAACC,GAAR,CAAY,gBAAZ,EAA8BF,GAA9B,CAPhB;AAQD,GAXD;;AAaA,QAAMG,qBAAqB,GAAI1B,CAAD,IAAO;AACnCR,IAAAA,YAAY,CAACQ,CAAC,CAACG,MAAF,CAASwB,KAAV,CAAZ;AACD,GAFD;;AAIA,QAAMC,oBAAoB,GAAI5B,CAAD,IAAO;AAClCN,IAAAA,WAAW,CAACM,CAAC,CAACG,MAAF,CAASwB,KAAV,CAAX;AACD,GAFD;;AAIA,QAAME,oBAAoB,GAAI7B,CAAD,IAAO;AAClCJ,IAAAA,WAAW,CAACI,CAAC,CAACG,MAAF,CAASwB,KAAV,CAAX;AACD,GAFD;;AAIA,QAAMG,oBAAoB,GAAI9B,CAAD,IAAO;AAClCF,IAAAA,WAAW,CAACE,CAAC,CAACG,MAAF,CAASwB,KAAV,CAAX;AACD,GAFD;;AAIA,MAAI1C,YAAJ,EAAkB;AAChB;AACA,WAAO,IAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAC,eAAf;AAAA,4BAEE;AAAK,MAAA,GAAG,EAAEE,aAAV;AAAyB,MAAA,SAAS,EAAG,SAAQC,eAAe,GAAG,QAAH,GAAc,IAAK,EAA/E;AAAA,6BAGE;AAAK,QAAA,SAAS,EAAC,eAAf;AAAA,+BACE;AAAK,UAAA,SAAS,EAAC,YAAf;AAAA,kCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF,eAEE;AAAM,YAAA,QAAQ,EAAE2B,sBAAhB;AAAA,oCACE;AAAA,qDAEE;AACE,gBAAA,EAAE,EAAC,WADL;AACiB,gBAAA,IAAI,EAAC,MADtB;AAEE,gBAAA,KAAK,EAAExB,SAFT;AAGE,gBAAA,QAAQ,EAAEmC;AAHZ;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBADF,eAQE;AAAA,oDAEE;AACE,gBAAA,EAAE,EAAC,UADL;AACgB,gBAAA,IAAI,EAAC,MADrB;AAEE,gBAAA,KAAK,EAAEjC,QAFT;AAGE,gBAAA,QAAQ,EAAEmC;AAHZ;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBARF,eAeE;AAAA,gDAEE;AACE,gBAAA,EAAE,EAAC,OADL;AACa,gBAAA,IAAI,EAAC,MADlB;AAEE,gBAAA,KAAK,EAAEjC,QAFT;AAGE,gBAAA,QAAQ,EAAEkC;AAHZ;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBAfF,eAsBE;AAAA,mDAEE;AACE,gBAAA,EAAE,EAAC,UADL;AACgB,gBAAA,IAAI,EAAC,UADrB;AAEE,gBAAA,KAAK,EAAEhC,QAFT;AAGE,gBAAA,QAAQ,EAAEiC;AAHZ;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBAtBF,eA6BE;AAAO,cAAA,SAAS,EAAC,uBAAjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBA7BF,eAgCE;AAAQ,cAAA,SAAS,EAAC,kBAAlB;AAAqC,cAAA,IAAI,EAAC,QAA1C;AAAA,yDAEE,QAAC,eAAD;AAAiB,gBAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,sBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,oBAhCF;AAAA;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA;AAHF;AAAA;AAAA;AAAA;AAAA,YAFF,eAiDE;AAAK,MAAA,SAAS,EAAC,QAAf;AAAA,6BACE;AAAK,QAAA,SAAS,EAAC,gBAAf;AAAA,gCACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAEE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAFF,eAGE;AAAQ,UAAA,SAAS,EAAC,wBAAlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAjDF,eA2DE;AAAK,MAAA,SAAS,EAAC,YAAf;AAAA,8BACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE;AAAM,QAAA,QAAQ,EAAEf,sBAAhB;AAAA,gCACE;AAAA,4CAEE;AACE,YAAA,EAAE,EAAC,UADL;AACgB,YAAA,IAAI,EAAC,MADrB;AAEE,YAAA,KAAK,EAAEpB,QAFT;AAGE,YAAA,QAAQ,EAAEkC;AAHZ;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBADF,eAQE;AAAA,+CAEE;AACE,YAAA,EAAE,EAAC,UADL;AACgB,YAAA,IAAI,EAAC,UADrB;AAEE,YAAA,KAAK,EAAEhC,QAFT;AAGE,YAAA,QAAQ,EAAEiC;AAHZ;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBARF,eAeE;AAAQ,UAAA,SAAS,EAAC,kBAAlB;AAAqC,UAAA,IAAI,EAAC,QAA1C;AAAA,qDAEE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBAFF;AAAA;AAAA;AAAA;AAAA;AAAA,gBAfF;AAAA;AAAA;AAAA;AAAA;AAAA,cAFF,eAsBE;AAAK,QAAA,SAAS,EAAC,cAAf;AAAA,+BACE;AAAA,mEACE;AAAG,YAAA,OAAO,EAAExC,uBAAZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAtBF;AAAA;AAAA;AAAA;AAAA;AAAA,YA3DF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AA0FD,CA1LD;;GAAMP,M;UACiBJ,W;;;KADjBI,M;AA4LN,eAAeA,MAAf","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [visibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState)\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\r\n\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (signUpFormRef.current !== null && !signUpFormRef.current.contains(e.target)) {\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 (visibilityState) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.alert(\"click\")\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [visibilityState]);\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // toggleSignInFormVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div ref={signUpFormRef} className={`modal ${visibilityState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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 } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(false);\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const setModalVisible = () => {\n showModal(!modalState);\n };\n\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // setModalVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 96,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\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: 103,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"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: 110,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 15\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: 117,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 15\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: 122,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 7\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: 136,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 7\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: 145,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 11\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: 156,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\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: 163,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: setModalVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"8w7ZFWNRn+pFiHKWV/poMBXEgQg=\", 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","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","setModalVisible","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","e","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","target","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(false)\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\r\n const setModalVisible = () => {\r\n showModal(!modalState)\r\n }\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // setModalVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={setModalVisible}>Sign up</a>\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\\\\home\\\\Home.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { useOktaAuth } from '@okta/okta-react';\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 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 return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"page-content-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: [\"Welcome \", userInfo ? userInfo.name : \"...\", \"!\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\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: 29,\n columnNumber: 13\n }, this), \"\\xA0\\xA0Report issues\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\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: 35,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 5\n }, this);\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":["React","useState","useEffect","NavLink","useOktaAuth","FontAwesomeIcon","Updates","Home","authState","oktaAuth","userInfo","setUserInfo","isAuthenticated","getUser","then","info","name"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;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,MAA0BL,WAAW,EAA3C;AACA,QAAM,CAACM,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,IAAD,CAAxC;AAEAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACM,SAAS,CAACI,eAAf,EAAgC;AAC9B;AACAD,MAAAA,WAAW,CAAC,IAAD,CAAX;AACD,KAHD,MAGO;AACLF,MAAAA,QAAQ,CAACI,OAAT,GAAmBC,IAAnB,CAAwBC,IAAI,IAAI;AAC9BJ,QAAAA,WAAW,CAACI,IAAD,CAAX;AACD,OAFD;AAGD;AACF,GATQ,EASN,CAACP,SAAD,EAAYC,QAAZ,CATM,CAAT,CAJiB,CAaU;;AAE3B,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA,+BAAsCC,QAAQ,GAAGA,QAAQ,CAACM,IAAZ,GAAmB,KAAjE;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAAA,+BACE;AAAQ,UAAA,SAAS,EAAC,yBAAlB;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAUE;AAAK,MAAA,SAAS,EAAC,kBAAf;AAAA,6BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CA/BD;;GAAMT,I;UAC4BH,W;;;KAD5BG,I;AAiCN,eAAeA,IAAf","sourcesContent":["import React, { useState, useEffect } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport { useOktaAuth } from '@okta/okta-react';\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 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 return (\r\n <div className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome {userInfo ? userInfo.name : \"...\"}!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &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":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\login\\\\signUp\\\\SignUp.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [visibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = 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: \" + visibilityState);\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (visibilityState) {\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 }, [visibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSignInFormVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${visibilityState ? \"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: 115,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 119,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 15\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: 126,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 15\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: 133,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\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: 140,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 15\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: 145,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 7\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: 159,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 160,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: [\"Sign up\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 7\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: 169,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 11\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: 180,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\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: 187,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 191,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"NhccHfL1YYIKJ8/P5v37N9cfgdQ=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","signUpFormRef","visibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","console","log","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [visibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState)\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\r\n\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: \" + visibilityState)\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 (visibilityState) {\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 }, [visibilityState]);\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // toggleSignInFormVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${visibilityState ? \"active\" : \"inactive\"}`}>\r\n\r\n {/* Modal content */}\r\n <div ref={signUpFormRef} className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\r\n Sign up\r\n <FontAwesomeIcon icon=\"user-plus\"></FontAwesomeIcon>\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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\\\\home\\\\Home.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { useOktaAuth } from '@okta/okta-react';\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 [userInfo, setUserInfo] = useState(null);\n const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims;\n useEffect(() => {\n setUserInfo(idToken);\n }, []);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"page-content-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: [\"Welcome \", userInfo ? userInfo.name : \"...\", \"!\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 19,\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: 22,\n columnNumber: 13\n }, this), \"\\xA0\\xA0Report issues\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\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: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 5\n }, this);\n};\n\n_s(Home, \"vOwY8+j2gC2fzH0Q0HS3gN3jsRk=\");\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","useState","useEffect","NavLink","useOktaAuth","FontAwesomeIcon","Updates","Home","userInfo","setUserInfo","idToken","JSON","parse","localStorage","getItem","claims","name"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;AACA,OAAO,YAAP;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,OAAOC,OAAP,MAAoB,mBAApB;;;AAEA,MAAMC,IAAI,GAAG,MAAM;AAAA;;AACjB,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BR,QAAQ,CAAC,IAAD,CAAxC;AACA,QAAMS,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,oBAArB,CAAX,EAAuDJ,OAAvD,CAA+DK,MAA/E;AAEAb,EAAAA,SAAS,CAAC,MAAM;AACdO,IAAAA,WAAW,CAACC,OAAD,CAAX;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA,+BAAsCF,QAAQ,GAAGA,QAAQ,CAACQ,IAAZ,GAAmB,KAAjE;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAAA,+BACE;AAAQ,UAAA,SAAS,EAAC,yBAAlB;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAUE;AAAK,MAAA,SAAS,EAAC,kBAAf;AAAA,6BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CAxBD;;GAAMT,I;;KAAAA,I;AA0BN,eAAeA,IAAf","sourcesContent":["import React, { useState, useEffect } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport { useOktaAuth } from '@okta/okta-react';\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 [userInfo, setUserInfo] = useState(null);\r\n const idToken = JSON.parse(localStorage.getItem('okta-token-storage')).idToken.claims\r\n\r\n useEffect(() => {\r\n setUserInfo(idToken)\r\n }, [])\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome {userInfo ? userInfo.name : \"...\"}!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &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":"var _jsxFileName = \"C:\\\\Users\\\\Bruger\\\\Desktop\\\\Web-projects\\\\pipit\\\\client\\\\src\\\\components\\\\login\\\\signUp\\\\SignUp.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(false);\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const setModalVisible = () => {\n showModal(!modalState);\n };\n\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // setModalVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 96,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\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: 103,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"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: 110,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 15\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: 117,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 15\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: 122,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 7\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: 136,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n children: \"Hej\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 138,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 7\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: 145,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 149,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 11\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: 156,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\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: 163,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/\",\n className: \"signUpLink\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"8w7ZFWNRn+pFiHKWV/poMBXEgQg=\", 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","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","setModalVisible","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","e","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","target","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(false)\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\r\n const setModalVisible = () => {\r\n showModal(!modalState)\r\n }\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // setModalVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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>\r\n Hej\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <NavLink to=\"/\" className=\"signUpLink\">\r\n Sign up\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, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [visibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = 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: \" + visibilityState);\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (visibilityState) {\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 }, [visibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n };\n\n const handleSignUpFormSubmit = e => {\n e.preventDefault();\n fetch(config.serviceAPI.createNewUserURL, requestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Error\");\n Promise.reject(\"\");\n return;\n }\n\n if (res.ok) {\n handleSignInFormSubmit();\n }\n });\n };\n\n const handleSignInFormSubmit = () => {\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${visibilityState ? \"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: 113,\n columnNumber: 13\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: 117,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 15\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: 124,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 15\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: 131,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 129,\n columnNumber: 15\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: 138,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 15\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: 143,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 112,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 7\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: 157,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\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: 159,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 7\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: 166,\n columnNumber: 9\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 onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 168,\n columnNumber: 11\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: 177,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 11\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: 184,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"NhccHfL1YYIKJ8/P5v37N9cfgdQ=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","signUpFormRef","visibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","console","log","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignUpFormSubmit","preventDefault","fetch","serviceAPI","createNewUserURL","then","res","ok","alert","Promise","reject","handleSignInFormSubmit","signInWithCredentials","signInWithRedirect","originalUri","catch","err","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [visibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState)\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\r\n\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: \" + visibilityState)\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 (visibilityState) {\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 }, [visibilityState]);\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n const handleSignUpFormSubmit = (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(\"Error\")\r\n Promise.reject(\"\")\r\n return\r\n }\r\n if (res.ok) {\r\n handleSignInFormSubmit()\r\n }\r\n })\r\n }\r\n\r\n const handleSignInFormSubmit = () => {\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${visibilityState ? \"active\" : \"inactive\"}`}>\r\n\r\n {/* Modal content */}\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 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\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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, useRef } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const signUpFormRef = useRef(null);\n const [visibilityState, showSignUpForm] = useState(false);\n\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = 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: \" + visibilityState);\n toggleSignInFormVisible();\n }\n }; // If the item is active (ie open) then listen for clicks\n\n\n if (visibilityState) {\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 }, [visibilityState]);\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n };\n\n const handleSignUpFormSubmit = e => {\n e.preventDefault();\n fetch(config.serviceAPI.createNewUserURL, requestOptions).then(res => {\n if (!res.ok) {\n window.alert(\"Error\");\n Promise.reject(\"\");\n return;\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${visibilityState ? \"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: 112,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 116,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 114,\n columnNumber: 15\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: 123,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 15\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: 130,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 15\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: 137,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 15\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: 142,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 147,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 145,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 113,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 7\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: 156,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 11\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: 158,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 7\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: 165,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 167,\n columnNumber: 11\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: 176,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 11\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: 183,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 105,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"NhccHfL1YYIKJ8/P5v37N9cfgdQ=\", 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","useRef","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","signUpFormRef","visibilityState","showSignUpForm","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","console","log","current","contains","target","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignUpFormSubmit","preventDefault","fetch","serviceAPI","createNewUserURL","then","res","ok","alert","Promise","reject","handleSignInFormSubmit","signInWithCredentials","signInWithRedirect","originalUri","catch","err","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n\r\n const signUpFormRef = useRef(null);\r\n const [visibilityState, showSignUpForm] = useState(false)\r\n const toggleSignInFormVisible = () => showSignUpForm(!visibilityState)\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\r\n\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: \" + visibilityState)\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 (visibilityState) {\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 }, [visibilityState]);\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n const handleSignUpFormSubmit = (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(\"Error\")\r\n Promise.reject(\"\")\r\n return\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${visibilityState ? \"active\" : \"inactive\"}`}>\r\n\r\n {/* Modal content */}\r\n <div ref={signUpFormRef} className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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 { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(false);\n\n const toggleSignInFormVisible = () => showModal(!modalState);\n\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n useEffect(() => {\n const pageClickEvent = e => {\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\n toggleSignInFormVisible();\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 const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // toggleSignInFormVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 109,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 113,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 111,\n columnNumber: 15\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: 120,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 118,\n columnNumber: 15\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: 127,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 15\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: 134,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 15\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: 139,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 107,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 104,\n columnNumber: 7\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: 153,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"signUpForm-show-button\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 152,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 7\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: 162,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 166,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 11\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: 173,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 11\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: 180,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(\"a\", {\n onClick: toggleSignInFormVisible,\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 185,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 161,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"OW4dDdSKm2yr66WeA59Pth7xP/c=\", 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","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","toggleSignInFormVisible","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","pageClickEvent","e","dropdownRef","current","contains","target","isActive","window","addEventListener","removeEventListener","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","value","handlelastnameChange","handleUsernameChange","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 { NavLink } from 'react-router-dom';\r\nimport config from \"../../../config\"\r\n\r\nconst SignUp = () => {\r\n const { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(false)\r\n const toggleSignInFormVisible = () => showModal(!modalState)\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\r\n\r\n\r\n useEffect(() => {\r\n const pageClickEvent = (e) => {\r\n if (dropdownRef.current !== null && !dropdownRef.current.contains(e.target)) {\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 (isActive) {\r\n window.addEventListener('click', pageClickEvent);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('click', pageClickEvent);\r\n }\r\n\r\n }, [isActive]);\r\n\r\n const 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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // toggleSignInFormVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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\">\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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <a onClick={toggleSignInFormVisible}>Sign up</a>\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 } from 'react';\nimport { useOktaAuth } from '@okta/okta-react';\nimport \"./SignUp.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 oktaAuth\n } = useOktaAuth();\n const [sessionToken, setSessionToken] = useState();\n const [modalState, showModal] = useState(false);\n const [firstname, setfirstname] = useState('');\n const [lastname, setlastname] = useState('');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const setModalVisible = () => {\n showModal(!modalState);\n };\n\n const userInputData = JSON.stringify({\n firstname: `${firstname}`,\n lastname: `${lastname}`,\n Email: `${username}`,\n password: `${password}`\n });\n const requestOptions = {\n method: 'POST',\n body: userInputData\n }; // const handleSignInFormSubmit = (e) => {\n // e.preventDefault();\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\n // .then((res) => {\n // if (!res.ok) {\n // window.alert(\"Error\")\n // Promise.reject(\"\")\n // return\n // }\n // if (res.ok) {\n // setModalVisible()\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 if (sessionToken) {\n // Hide form while sessionToken is converted into id/access tokens\n return null;\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"pageContainer\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `modal ${modalState ? \"active\" : null}`,\n children: /*#__PURE__*/_jsxDEV(\"div\", {\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: 92,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\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: 96,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 94,\n columnNumber: 15\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: 103,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"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: 110,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 15\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: 117,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 115,\n columnNumber: 15\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: 122,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n className: \"formSubmitButton\",\n type: \"submit\",\n children: [\"Sign Up\\xA0\\xA0\", /*#__PURE__*/_jsxDEV(FontAwesomeIcon, {\n icon: \"user-plus\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 13\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: 132,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 130,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 91,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 90,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 87,\n columnNumber: 7\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: 143,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h5\", {\n children: \"Track bugs and usabilty issues\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 144,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 7\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: 149,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n onSubmit: handleSignInFormSubmit,\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n children: [\"Email:\", /*#__PURE__*/_jsxDEV(\"input\", {\n id: \"username\",\n type: \"text\",\n value: username,\n onChange: handleUsernameChange\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 151,\n columnNumber: 11\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: 160,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\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: 167,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 165,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 150,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"signInPrompt\",\n children: /*#__PURE__*/_jsxDEV(\"span\", {\n children: [\"Dont have an account yet?\\xA0\", /*#__PURE__*/_jsxDEV(NavLink, {\n to: \"/\",\n className: \"signUpLink\",\n children: \"Sign up\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 148,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 5\n }, this);\n};\n\n_s(SignUp, \"8w7ZFWNRn+pFiHKWV/poMBXEgQg=\", 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","useOktaAuth","FontAwesomeIcon","NavLink","config","SignUp","oktaAuth","sessionToken","setSessionToken","modalState","showModal","firstname","setfirstname","lastname","setlastname","username","setUsername","password","setPassword","setModalVisible","userInputData","JSON","stringify","Email","requestOptions","method","body","handleSignInFormSubmit","e","preventDefault","signInWithCredentials","then","res","signInWithRedirect","originalUri","catch","err","console","log","handlefirstnameChange","target","value","handlelastnameChange","handleUsernameChange","handlePasswordChange"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\r\nimport { useOktaAuth } from '@okta/okta-react';\r\nimport \"./SignUp.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 { oktaAuth } = useOktaAuth();\r\n const [sessionToken, setSessionToken] = useState()\r\n const [modalState, showModal] = useState(false)\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\r\n const setModalVisible = () => {\r\n showModal(!modalState)\r\n }\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 requestOptions = {\r\n method: 'POST',\r\n body: userInputData\r\n };\r\n\r\n // const handleSignInFormSubmit = (e) => {\r\n // e.preventDefault();\r\n\r\n // fetch(config.serviceAPI.createNewUserURL, requestOptions)\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 // setModalVisible()\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 if (sessionToken) {\r\n // Hide form while sessionToken is converted into id/access tokens\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"pageContainer\">\r\n {/* The Modal */}\r\n <div className={`modal ${modalState ? \"active\" : null}`}>\r\n\r\n {/* Modal content */}\r\n <div className=\"modal-content\">\r\n <div className=\"signUpForm\">\r\n <h2>Sign Up</h2>\r\n <form onSubmit={handleSignInFormSubmit}>\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 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 </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 </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={username}\r\n onChange={handleUsernameChange} />\r\n </label>\r\n <label>\r\n Password:\r\n <input\r\n id=\"password\" type=\"password\"\r\n value={password}\r\n onChange={handlePasswordChange} />\r\n </label>\r\n <button className=\"formSubmitButton\" type=\"submit\">\r\n Sign in&nbsp;&nbsp;\r\n <FontAwesomeIcon icon=\"sign-in-alt\"></FontAwesomeIcon>\r\n </button>\r\n </form>\r\n <div className=\"signInPrompt\">\r\n <span>Dont have an account yet?&nbsp;\r\n <NavLink to=\"/\" className=\"signUpLink\">\r\n Sign up\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\\\\home\\\\Home.jsx\",\n _s = $RefreshSig$();\n\nimport React, { useState, useEffect } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { useOktaAuth } from '@okta/okta-react';\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 if (!authState.isAuthenticated) {\n // When user isn't authenticated, forget any user info\n setUserInfo(null);\n } else {\n oktaAuth.getIdToken().then(info => {\n setUserInfo(info);\n });\n }\n }, [authState, oktaAuth]); // Update if authState changes\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"page-content-container\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"content-header\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"welcome-text\",\n children: [\"Welcome \", userInfo ? userInfo.name : \"...\", \"!\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\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: 29,\n columnNumber: 13\n }, this), \"\\xA0\\xA0Report issues\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 27,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 25,\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: 35,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 5\n }, this);\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":["React","useState","useEffect","NavLink","useOktaAuth","FontAwesomeIcon","Updates","Home","authState","oktaAuth","userInfo","setUserInfo","isAuthenticated","getIdToken","then","info","name"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,WAAT,QAA4B,kBAA5B;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,MAA0BL,WAAW,EAA3C;AACA,QAAM,CAACM,QAAD,EAAWC,WAAX,IAA0BV,QAAQ,CAAC,IAAD,CAAxC;AAEAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI,CAACM,SAAS,CAACI,eAAf,EAAgC;AAC9B;AACAD,MAAAA,WAAW,CAAC,IAAD,CAAX;AACD,KAHD,MAGO;AACLF,MAAAA,QAAQ,CAACI,UAAT,GAAsBC,IAAtB,CAA2BC,IAAI,IAAI;AACjCJ,QAAAA,WAAW,CAACI,IAAD,CAAX;AACD,OAFD;AAGD;AACF,GATQ,EASN,CAACP,SAAD,EAAYC,QAAZ,CATM,CAAT,CAJiB,CAaU;;AAE3B,sBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAA,4BACE;AAAK,MAAA,SAAS,EAAC,gBAAf;AAAA,8BACE;AAAI,QAAA,SAAS,EAAC,cAAd;AAAA,+BAAsCC,QAAQ,GAAGA,QAAQ,CAACM,IAAZ,GAAmB,KAAjE;AAAA;AAAA;AAAA;AAAA;AAAA,cADF,eAEE,QAAC,OAAD;AAAS,QAAA,EAAE,EAAC,cAAZ;AAAA,+BACE;AAAQ,UAAA,SAAS,EAAC,yBAAlB;AAAA,kCACE,QAAC,eAAD;AAAiB,YAAA,IAAI,EAAC;AAAtB;AAAA;AAAA;AAAA;AAAA,kBADF;AAAA;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,cAFF;AAAA;AAAA;AAAA;AAAA;AAAA,YADF,eAUE;AAAK,MAAA,SAAS,EAAC,kBAAf;AAAA,6BACE,QAAC,OAAD;AAAA;AAAA;AAAA;AAAA;AADF;AAAA;AAAA;AAAA;AAAA,YAVF;AAAA;AAAA;AAAA;AAAA;AAAA,UADF;AAgBD,CA/BD;;GAAMT,I;UAC4BH,W;;;KAD5BG,I;AAiCN,eAAeA,IAAf","sourcesContent":["import React, { useState, useEffect } from 'react'\r\nimport { NavLink } from 'react-router-dom'\r\nimport { useOktaAuth } from '@okta/okta-react';\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 if (!authState.isAuthenticated) {\r\n // When user isn't authenticated, forget any user info\r\n setUserInfo(null);\r\n } else {\r\n oktaAuth.getIdToken().then(info => {\r\n setUserInfo(info);\r\n });\r\n }\r\n }, [authState, oktaAuth]); // Update if authState changes\r\n\r\n return (\r\n <div className=\"page-content-container\">\r\n <div className=\"content-header\">\r\n <h2 className=\"welcome-text\">Welcome {userInfo ? userInfo.name : \"...\"}!</h2>\r\n <NavLink to=\"/reportissue\">\r\n <button className=\"report-new-issue-button\">\r\n <FontAwesomeIcon icon=\"exclamation-triangle\"></FontAwesomeIcon>\r\n &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