project done
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import { SET_ALERT, REMOVE_ALERT } from '../actions/types';
|
||||
|
||||
const initialState = [];
|
||||
|
||||
function alertReducer(state = initialState, action) {
|
||||
const { type, payload } = action;
|
||||
|
||||
switch (type) {
|
||||
case SET_ALERT:
|
||||
return [...state, payload];
|
||||
case REMOVE_ALERT:
|
||||
return state.filter((alert) => alert.id !== payload);
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
export default alertReducer;
|
||||
@@ -0,0 +1,53 @@
|
||||
import {
|
||||
REGISTER_SUCCESS,
|
||||
//REGISTER_FAIL,
|
||||
USER_LOADED,
|
||||
AUTH_ERROR,
|
||||
LOGIN_SUCCESS,
|
||||
//LOGIN_FAIL,
|
||||
LOGOUT,
|
||||
ACCOUNT_DELETED
|
||||
} from '../actions/types';
|
||||
|
||||
const initialState = {
|
||||
token: localStorage.getItem('token'),
|
||||
isAuthenticated: null,
|
||||
loading: true,
|
||||
user: null
|
||||
};
|
||||
|
||||
function authReducer(state = initialState, action) {
|
||||
const { type, payload } = action;
|
||||
|
||||
switch (type) {
|
||||
case USER_LOADED:
|
||||
return {
|
||||
...state,
|
||||
isAuthenticated: true,
|
||||
loading: false,
|
||||
user: payload
|
||||
};
|
||||
case REGISTER_SUCCESS:
|
||||
case LOGIN_SUCCESS:
|
||||
return {
|
||||
...state,
|
||||
...payload,
|
||||
isAuthenticated: true,
|
||||
loading: false
|
||||
};
|
||||
case ACCOUNT_DELETED:
|
||||
case AUTH_ERROR:
|
||||
case LOGOUT:
|
||||
return {
|
||||
...state,
|
||||
token: null,
|
||||
isAuthenticated: false,
|
||||
loading: false,
|
||||
user: null
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
export default authReducer;
|
||||
@@ -0,0 +1,12 @@
|
||||
import { combineReducers } from 'redux';
|
||||
import alert from './alert';
|
||||
import auth from './auth';
|
||||
import profile from './profile';
|
||||
import post from './post';
|
||||
|
||||
export default combineReducers({
|
||||
alert,
|
||||
auth,
|
||||
profile,
|
||||
post
|
||||
});
|
||||
@@ -0,0 +1,83 @@
|
||||
import {
|
||||
GET_POSTS,
|
||||
POST_ERROR,
|
||||
UPDATE_LIKES,
|
||||
DELETE_POST,
|
||||
ADD_POST,
|
||||
GET_POST,
|
||||
ADD_COMMENT,
|
||||
REMOVE_COMMENT
|
||||
} from '../actions/types';
|
||||
|
||||
const initialState = {
|
||||
posts: [],
|
||||
post: null,
|
||||
loading: true,
|
||||
error: {}
|
||||
};
|
||||
|
||||
function postReducer(state = initialState, action) {
|
||||
const { type, payload } = action;
|
||||
|
||||
switch (type) {
|
||||
case GET_POSTS:
|
||||
return {
|
||||
...state,
|
||||
posts: payload,
|
||||
loading: false
|
||||
};
|
||||
case GET_POST:
|
||||
return {
|
||||
...state,
|
||||
post: payload,
|
||||
loading: false
|
||||
};
|
||||
case ADD_POST:
|
||||
return {
|
||||
...state,
|
||||
posts: [payload, ...state.posts],
|
||||
loading: false
|
||||
};
|
||||
case DELETE_POST:
|
||||
return {
|
||||
...state,
|
||||
posts: state.posts.filter((post) => post._id !== payload),
|
||||
loading: false
|
||||
};
|
||||
case POST_ERROR:
|
||||
return {
|
||||
...state,
|
||||
error: payload,
|
||||
loading: false
|
||||
};
|
||||
case UPDATE_LIKES:
|
||||
return {
|
||||
...state,
|
||||
posts: state.posts.map((post) =>
|
||||
post._id === payload.id ? { ...post, likes: payload.likes } : post
|
||||
),
|
||||
loading: false
|
||||
};
|
||||
case ADD_COMMENT:
|
||||
return {
|
||||
...state,
|
||||
post: { ...state.post, comments: payload },
|
||||
loading: false
|
||||
};
|
||||
case REMOVE_COMMENT:
|
||||
return {
|
||||
...state,
|
||||
post: {
|
||||
...state.post,
|
||||
comments: state.post.comments.filter(
|
||||
(comment) => comment._id !== payload
|
||||
)
|
||||
},
|
||||
loading: false
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
export default postReducer;
|
||||
@@ -0,0 +1,65 @@
|
||||
import {
|
||||
GET_PROFILE,
|
||||
PROFILE_ERROR,
|
||||
CLEAR_PROFILE,
|
||||
UPDATE_PROFILE,
|
||||
GET_PROFILES,
|
||||
GET_REPOS,
|
||||
NO_REPOS,
|
||||
} from "../actions/types";
|
||||
|
||||
const initialState = {
|
||||
profile: null,
|
||||
profiles: [],
|
||||
repos: [],
|
||||
loading: true,
|
||||
error: {},
|
||||
};
|
||||
|
||||
function profileReducer(state = initialState, action) {
|
||||
const { type, payload } = action;
|
||||
|
||||
switch (type) {
|
||||
case GET_PROFILE:
|
||||
case UPDATE_PROFILE:
|
||||
return {
|
||||
...state,
|
||||
profile: payload,
|
||||
loading: false,
|
||||
};
|
||||
case GET_PROFILES:
|
||||
return {
|
||||
...state,
|
||||
profiles: payload,
|
||||
loading: false,
|
||||
};
|
||||
case PROFILE_ERROR:
|
||||
return {
|
||||
...state,
|
||||
error: payload,
|
||||
loading: false,
|
||||
profile: null,
|
||||
};
|
||||
case CLEAR_PROFILE:
|
||||
return {
|
||||
...state,
|
||||
profile: null,
|
||||
repos: [],
|
||||
};
|
||||
case GET_REPOS:
|
||||
return {
|
||||
...state,
|
||||
repos: payload,
|
||||
loading: false,
|
||||
};
|
||||
case NO_REPOS:
|
||||
return {
|
||||
...state,
|
||||
repos: [],
|
||||
};
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
export default profileReducer;
|
||||
Reference in New Issue
Block a user