source: jobvista-frontend/src/redux/reducers/authReducer.js@ 28b3398

main
Last change on this file since 28b3398 was 19398ad, checked in by 223021 <daniel.ilievski.2@…>, 7 weeks ago

Implemented backend and frontend CRUD operations for job advertisements

  • Property mode set to 100644
File size: 2.2 KB
Line 
1import { createSlice } from '@reduxjs/toolkit';
2import { AUTH_TOKEN } from "../../axios/axiosInstance";
3import {isExpired} from "react-jwt";
4import {CURRENT_USER, SIGN_IN, SIGN_OUT, UPDATE_TOKEN} from "../actionTypes";
5
6const initialState = {
7 currentUser: "",
8 token: ""
9};
10
11const AuthReducer = (state = initialState, action) => {
12 switch (action.type) {
13 case SIGN_IN:
14 localStorage.setItem(AUTH_TOKEN, action.payload.token);
15 localStorage.setItem(CURRENT_USER, JSON.stringify(action.payload.user));
16 return {
17 ...state,
18 currentUser: action.payload.user,
19 token: action.payload.token
20 };
21 case UPDATE_TOKEN:
22 let token = action.payload;
23 let currentUser = "";
24 if(!isExpired(token)) {
25 localStorage.setItem(AUTH_TOKEN, token);
26 currentUser = JSON.parse(localStorage.getItem(CURRENT_USER));
27 } else {
28 localStorage.removeItem(CURRENT_USER);
29 localStorage.removeItem(AUTH_TOKEN);
30 currentUser = "";
31 token = "";
32 }
33 return {
34 ...state,
35 currentUser: currentUser,
36 token: token
37 };
38 case SIGN_OUT:
39 localStorage.removeItem(CURRENT_USER);
40 localStorage.removeItem(AUTH_TOKEN);
41 return {
42 ...state,
43 currentUser: "",
44 token: "",
45 }
46
47 default:
48 return {
49 ...state,
50 };
51 }
52}
53export default AuthReducer
54
55//naredna prilika :(
56// const authSlice = createSlice({
57// name: 'auth',
58// initialState,
59// reducers: {
60// signIn: (state, action) => {
61// console.log("stigam tuka")
62// const { token, user } = action.payload;
63// localStorage.setItem(AUTH_TOKEN, token);
64// localStorage.setItem("CURRENT_USER", JSON.stringify(user));
65// state.currentUser = user;
66// state.token = token;
67// },
68// }
69// });
70//
71// //export const { signIn, signOut } = authSlice.actions;
72// export default authSlice.reducer;
Note: See TracBrowser for help on using the repository browser.