Changeset b248810 for jobvista-frontend/src/views
- Timestamp:
- 06/10/24 22:34:32 (5 months ago)
- Branches:
- main
- Children:
- befb988
- Parents:
- 28b3398
- Location:
- jobvista-frontend/src/views
- Files:
-
- 5 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
jobvista-frontend/src/views/dashboard/Dashboard.js
r28b3398 rb248810 4 4 import {useEffect, useState} from "react"; 5 5 import {JobAdvertisementActions} from "../../redux/actions/jobAdvertisementActions"; 6 import {formatRelativeTime, sortElementsBy DateCreated} from "../../utils/utils";6 import {formatRelativeTime, sortElementsBy} from "../../utils/utils"; 7 7 import {dataRangeOptions, industryOptions, industryOptionsFilter, sortOptions} from "../selectOptions"; 8 8 import Select from "react-select"; … … 10 10 import {Link} from "react-router-dom"; 11 11 import JobType from "../../enumerations/JobType"; 12 import {AUTH_TOKEN} from "../../axios/axiosInstance"; 13 import {jwtDecode} from "jwt-decode"; 12 14 13 export const Dashboard = ( ) => {15 export const Dashboard = (props) => { 14 16 15 17 const dispatch = useDispatch(); … … 17 19 const [jobAdvertisements, setJobAdvertisements] = useState([]); 18 20 let jobAdvertisementsState = useSelector(state => state.jobAd.jobAdvertisements) 19 const auth = useSelector(state => state.auth .currentUser);21 const auth = useSelector(state => state.auth); 20 22 21 const [role, setRole] = useState("");23 // const [role, setRole] = useState(""); 22 24 const [selectedSortOrder, setSelectedSortOrder] = useState("date_newest"); 23 25 const [selectedIndustry, setSelectedIndustry] = useState("all"); … … 25 27 const [dispatched, setDispatched] = useState(false) 26 28 27 useEffect(() => { 28 if (auth) { 29 setRole(auth.role); 30 } 31 }, [auth]); 29 // const [user, setUser] = useState(null); 30 // 31 // useEffect(() => { 32 // const token = localStorage.getItem(AUTH_TOKEN); 33 // if (token!=null) { 34 // try { 35 // const decodedToken = jwtDecode(token); 36 // setUser({ 37 // name: decodedToken.name, 38 // role: decodedToken.role, 39 // hasAccess: decodedToken.access, 40 // }); 41 // } catch (error) { 42 // console.error('Failed to decode token', error); 43 // } 44 // } 45 // console.log(user) 46 // }, [auth]); 47 48 // useEffect(() => { 49 // if (auth) { 50 // setRole(auth.role); 51 // } 52 // console.log(props) 53 // }, [auth]); 32 54 33 55 useEffect(() => { … … 35 57 dispatch(JobAdvertisementActions.fetchJobAdvertisements((success, response) => { 36 58 if (success && response.data.length > 0) { 37 setJobAdvertisements(sortElementsBy DateCreated(response.data))59 setJobAdvertisements(sortElementsBy(response.data)) 38 60 } 39 61 setDispatched(true) … … 62 84 63 85 return ( 86 64 87 <div className="container"> 65 88 <div className="head-dashboard-box"> -
jobvista-frontend/src/views/job_advertisements/JobAdvertisements.js
r28b3398 rb248810 5 5 import {useEffect, useState} from "react"; 6 6 import {JobAdvertisementActions} from "../../redux/actions/jobAdvertisementActions"; 7 import {formatRelativeTime, sortElementsBy DateCreated} from "../../utils/utils";7 import {formatRelativeTime, sortElementsBy} from "../../utils/utils"; 8 8 import {dataRangeOptions, industryOptions, industryOptionsFilter, sortOptions} from "../selectOptions"; 9 9 import Select from "react-select"; … … 37 37 dispatch(JobAdvertisementActions.fetchJobAdvertisementsByRecruiter((success, response) => { 38 38 if (success && response.data.length > 0) { 39 setJobAdvertisementsByRecruiter(sortElementsBy DateCreated(response.data))39 setJobAdvertisementsByRecruiter(sortElementsBy(response.data)) 40 40 } 41 41 console.log("Fetch job advertisements by recruiter GET") -
jobvista-frontend/src/views/static/Header.js
r28b3398 rb248810 1 1 import {Link, NavLink} from "react-router-dom"; 2 2 import "./Header.css" 3 import { jwtDecode } from "jwt-decode"; 3 4 import {useDispatch, useSelector} from 'react-redux'; 4 5 import {useEffect, useState} from "react"; … … 6 7 import Roles from "../../enumerations/Roles"; 7 8 import {useNavigate} from "react-router"; 9 import {AUTH_TOKEN} from "../../axios/axiosInstance"; 8 10 9 11 export const Header = (props) => { … … 16 18 const [username, setUsername] = useState(""); 17 19 20 const [user, setUser] = useState(""); 21 18 22 const signOut = () => { 19 23 dispatch(AuthActions.signOut()); 20 24 window.location = "/"; 21 25 } 26 27 useEffect(() => { 28 const token = localStorage.getItem(AUTH_TOKEN); 29 if (token!=null) { 30 try { 31 const decodedToken = jwtDecode(token); 32 setUser({ 33 name: decodedToken.name, 34 role: decodedToken.role, 35 hasAccess: decodedToken.hasAccess, 36 }); 37 } catch (error) { 38 console.error('Failed to decode token', error); 39 } 40 } 41 }, [auth]); 22 42 23 43 useEffect(() => { … … 49 69 </> 50 70 } 71 {role===Roles.ADMIN && 72 <> 73 <NavLink to="/admin-panel" className="nav-item nav-link">Admin Panel</NavLink> 74 </> 75 76 } 51 77 <NavLink to="/about" className="nav-item nav-link">About</NavLink> 52 78 <NavLink to="/contact" className="nav-item nav-link">Support</NavLink> … … 57 83 <img src="/images/user.png" width="45" height="45"/> 58 84 <div className="auth-box"> 59 <p className="user"><b>{username}</b></p> 60 <p className="role">{role==Roles.RECRUITER ? "Recruiter" : "Job Seeker"}</p> 85 <p className="user"><b>{user.name}</b></p> 86 {user.role==Roles.RECRUITER && <p className="role">Recruiter</p>} 87 {user.role==Roles.JOBSEEKER && <p className="role">Job Seeker</p>} 88 {user.role==Roles.ADMIN && <p className="role">Admin</p>} 89 {/*<p className="role">{user.role==Roles.RECRUITER ? "Recruiter" : "Job Seeker"}</p>*/} 61 90 </div> 62 91
Note:
See TracChangeset
for help on using the changeset viewer.