Initial git

This commit is contained in:
Qolzam
2017-07-06 11:20:18 +04:30
commit 7c691d8e4d
142 changed files with 13046 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
uid: 0,
authed: false,
updatePassword: false,
guest:false
}
/**
* Authorize reducer
* @param {object} state
* @param {object} action
*/
export var authorizeReducer = (state = defaultState, action) =>{
switch (action.type) {
case types.LOGIN:
return{
uid: action.uid,
authed: true,
guest:false
}
case types.LOGOUT:
return{
...state,
uid: 0,
authed: false,
guest:true
}
case types.SIGNUP:
return{
...state,
uid: action.uid
}
case types.UPDATE_PASSWORD:
return{
...state,
updatePassword: action.updatePassword
}
default:
return state
}
}

View File

@@ -0,0 +1,166 @@
// - Import react components
var uuid = require('uuid');
import moment from 'moment'
import _ from 'lodash'
// - Import action types
import * as types from 'actionTypes'
/* ---------------- */
/**
* Default State
*/
var defaultState = {
userCircles: {},
loaded: false
}
/**
* Circle reducer
* @param {object} state
* @param {object} action
*/
export var circleReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.CLEAR_ALL_CIRCLES:
return defaultState
case types.ADD_CIRCLE:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.circle.id]: { ...payload.circle }
}
}
}
case types.UPDATE_CIRCLE:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.circle.id]: {
...state.userCircles[payload.uid][payload.circle.id],
...payload.circle,
openCircleSettings:false }
}
}
}
case types.DELETE_CIRCLE:
let filteredCircles = {}
Object.keys(state.userCircles[payload.uid]).map((key) => {
if (key !== payload.id) {
return _.merge(filteredCircles, { [key]: { ...state.userCircles[payload.uid][key] } })
}
})
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...filteredCircles
}
}
}
case types.ADD_LIST_CIRCLE:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
...payload.circles
}
},
loaded:true
}
case types.ADD_FOLLOWING_USER:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.cid]: {
...state.userCircles[payload.uid][payload.cid],
users:{
...state.userCircles[payload.uid][payload.cid].users,
[payload.followingId]: {
...payload.userCircle
}
}
}
}
}
}
case types.DELETE_FOLLOWING_USER:
let filteredUserCircle = {}
Object.keys(state.userCircles[payload.uid][payload.cid].users).map((key) => {
if (key !== payload.followingId) {
return _.merge(filteredUserCircle, { [key]: { ...state.userCircles[payload.uid][payload.cid].users[key] } })
}
})
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.cid]: {
...state.userCircles[payload.uid][payload.cid],
users:{
...filteredUserCircle
}
}
}
}
}
case types.CLOSE_CIRCLE_SETTINGS:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.id]: {
...state.userCircles[payload.uid][payload.id],
openCircleSettings: false
}
}
}
}
case types.OPEN_CIRCLE_SETTINGS:
return {
...state,
userCircles: {
...state.userCircles,
[payload.uid]: {
...state.userCircles[payload.uid],
[payload.id]: {
...state.userCircles[payload.uid][payload.id],
openCircleSettings: true
}
}
}
}
default:
return state;
}
}

View File

@@ -0,0 +1,127 @@
// - Import react components
import moment from 'moment'
import _ from 'lodash'
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
postComments: {},
loaded:false
}
/**
* Comment actions
* @param {object} state
* @param {object} action
*/
export var commentReducer = (state = defaultState, action) => {
var { payload } = action
switch (action.type) {
/* _____________ CRUD _____________ */
case types.ADD_COMMENT:
return {
...state,
postComments: {
...state.postComments,
[payload.postId]: {
...state.postComments[payload.postId],
[payload.id]: {
...payload.comment,
editorStatus: false
}
}
}
}
case types.ADD_COMMENT_LIST:
return {
...state,
postComments: {
...payload
},
loaded:true
}
case types.UPDATE_COMMENT:
return {
...state,
postComments: {
...state.postComments,
[payload.postId]: {
...state.postComments[payload.postId],
[payload.id]: {
...state.postComments[payload.postId][payload.id],
text: payload.text,
editorStatus: payload.editorStatus
}
}
}
}
case types.DELETE_COMMENT:
var parsedComments = {}
if (!state.postComments[payload.postId]) {
return state
}
Object.keys(state.postComments[payload.postId]).map((id) => {
if (id !== payload.id) {
_.merge(parsedComments, { [id]: { ...state.postComments[payload.postId][id] } })
}
})
return {
...state,
postComments: {
...state.postComments,
[payload.postId]: {
...parsedComments
}
}
}
case types.CLOSE_COMMENT_EDITOR:
return {
...state,
postComments: {
...state.postComments,
[payload.postId]: {
...state.postComments[payload.postId],
[payload.id]: {
...state.postComments[payload.postId][payload.id],
editorStatus: false
}
}
}
}
case types.OPEN_COMMENT_EDITOR:
return {
...state,
postComments: {
...state.postComments,
[payload.postId]: {
...state.postComments[payload.postId],
[payload.id]: {
...state.postComments[payload.postId][payload.id],
editorStatus: true
}
}
}
}
case types.CLEAR_ALL_DATA_COMMENT:
return defaultState
default:
return state;
}
}

View File

@@ -0,0 +1,47 @@
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
downloadFileName: '',
uploadFileName:'',
error: {},
result: {}
}
/**
* File reducer
* @param {object} state
* @param {object} action
*/
export const fileReducer = (state = defaultState, action) => {
switch (action.type) {
case types.UPLOAD_FILE:
return{
...state,
uploadFileName: action.fileName
}
case types.UPLOAD_FILE_ERROR:
return{
state,
error: action.error
}
case types.UPLOAD_FILE_COMPLETE:
return{
...state,
result: action.result
}
case types.DOWNLOAD_FILE:
return{
...state,
downloadFileName: action.fileName
}
default:
return state
}
}

View File

@@ -0,0 +1,127 @@
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
progress: {
percent: 0,
visible: false
},
loadingStatus: true,
defaultLoadDataStatus: false,
messageOpen: false,
message: '',
sidebarMainStyle: {},
sidebarStyle: { width: "210px" },
sidebarClass: "",
sidebarOpen: (window.innerWidth > 750) ? true : false,
windowWidth: 0,
windowHeight: 0,
overSidebarStatus: false,
onResizeOpenSidebar: false,
sidebarAuto: false,
headerTitle: '',
editProfileOpen: false,
showTopLoading: false,
topLoadingQueue: 0,
temp: {}
}
/**
* Global reducer
* @param {object} state
* @param {object} action
*/
export const globalReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.PROGRESS_CHANGE:
return {
...state,
progress: {
...state.progress,
percent: payload.percent,
visible: payload.visible
}
}
case types.DEFAULT_DATA_DISABLE:
return {
...state,
defaultLoadDataStatus: false
}
case types.DEFAULT_DATA_ENABLE:
return {
...state,
defaultLoadDataStatus: true
}
case types.SHOW_ERROR_MESSAGE_GLOBAL:
return {
...state,
message: action.payload,
messageOpen: true
}
case types.SHOW_NORMAL_MESSAGE_GLOBAL:
return {
...state,
message: action.payload.message,
messageOpen: true
}
case types.SHOW_SEND_REQUEST_MESSAGE_GLOBAL:
return {
...state,
message: "Request has been sent",
messageOpen: true
}
case types.SHOW_REQUEST_SUCCESS_MESSAGE_GLOBAL:
return {
...state,
message: "Your request has processed successfuly",
messageOpen: true
}
case types.HIDE_MESSAGE_GLOBAL:
return {
...state,
message: '',
messageOpen: false,
messageColor: ''
}
case types.SET_HEADER_TITLE:
return {
...state,
headerTitle: action.payload
}
case types.HIDE_TOP_LOADING:
const queue = state.topLoadingQueue > 0 ? (state.topLoadingQueue - 1) : 0
return {
...state,
topLoadingQueue: queue,
showTopLoading: (queue > 0 ? true : false)
}
case types.SHOW_TOP_LOADING:
return {
...state,
topLoadingQueue: (state.topLoadingQueue + 1),
showTopLoading: true
}
case types.TEMP:
return {
...state,
temp: {
...state.temp,
...payload
}
}
default:
return state
}
}

View File

@@ -0,0 +1,95 @@
// - Import react components
import _ from 'lodash'
// - Import image gallery action types
import * as types from 'actionTypes'
/**
* Default state for reducer
*/
var defaultState = {
status: false,
images: [],
selectImage: '',
selectURL: '',
loaded: false,
imageURLList: {},
imageRequests: []
}
/**
* Image gallery reducer
*/
export var imageGalleryReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.OPEN_IMAGE_GALLERY:
return {
...state,
status: action.status
}
/* ----------------- CRUD ----------------- */
case types.ADD_IMAGE_GALLERY:
return {
...state,
images: [...state.images, action.image]
}
case types.ADD_IMAGE_LIST_GALLERY:
{
return {
...state,
images: [...action.images],
loaded: true
}
}
case types.DELETE_IMAGE:
return {
...state,
images: [
...state.images.filter((item) => {
return item.id !== action.id
})
]
}
case types.IMAGE_SELECT_GALLERY:
return {
...state,
selectImage: action.image,
selectURL: action.URL
}
case types.CLEARS_SELECT_IMAGE_GALLERY:
return {
...state,
selectImage: '',
selectURL: ''
}
case types.SET_IMAGE_URL:
return {
...state,
imageURLList: {
...state.imageURLList,
[payload.name]: payload.url
}
}
case types.SEND_IMAGE_REQUEST:
return {
...state,
imageRequests: [
...state.imageRequests,
payload
]
}
case types.CLEAT_ALL_DATA_IMAGE_GALLERY:
return defaultState
default:
return state;
}
}

View File

@@ -0,0 +1,44 @@
// - Import action types
import * as types from 'actionTypes'
/**
* Default state for reducer
*/
var defaultState = {
status: false,
editStatus:false
}
/**
* Image uploader reducer
* @param {object} state
* @param {object} action
*/
export var imageUploaderReducer = (state = defaultState, action) => {
switch (action.type) {
case types.OPEN_IMAGE_UPLOADER:
if(action.status)
{
return{
...state,
status: true
}
}
else{
return{
...state,
status: false,
editStatus: false
}
}
case types.OPEN_IMAGE_EDITOR:
return{
...state,
editStatus: action.editStatus
}
default:
return state;
}
}

View File

@@ -0,0 +1,81 @@
// - Import react components
import moment from 'moment'
import _ from 'lodash'
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
userNotifies: {},
loaded:false
}
/**
* Notify actions
* @param {object} state
* @param {object} action
*/
export var notifyReducer = (state = defaultState, action) => {
var { payload } = action
switch (action.type) {
/* _____________ CRUD _____________ */
case types.ADD_NOTIFY:
return state
case types.ADD_NOTIFY_LIST:
return {
...state,
userNotifies: {
...payload
},
loaded:true
}
case types.SEEN_NOTIFY:
return {
...state,
userNotifies: {
...state.userNotifies,
[payload]:{
...state.userNotifies[payload],
isSeen:true
}
},
loaded:true
}
case types.DELETE_NOTIFY:
var parsedNotifies = {}
Object.keys(state.userNotifies).map((id) => {
if (id !== payload) {
_.merge(parsedNotifies, { [id]: { ...state.userNotifies[id] } })
}
})
return {
...state,
userNotifies: {
...parsedNotifies
}
}
case types.CLEAR_ALL_DATA_NOTIFY:
return defaultState
default:
return state;
}
}

View File

@@ -0,0 +1,105 @@
// - Import react components
var uuid = require('uuid');
import moment from 'moment'
import _ from 'lodash'
// - Import action types
import * as types from 'actionTypes'
/* ---------------- */
/**
* Default State
*/
var defaultState = {
userPosts: {},
loaded: false
}
/**
* Post reducer
* @param {object} state
* @param {object} action
*/
export var postReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.CLEAR_ALL_DATA_POST:
return defaultState
case types.ADD_IMAGE_POST:
return {
...state,
userPosts: {
...state.userPosts,
[payload.uid]: {
...state.userPosts[payload.uid],
[payload.post.id]: { ...payload.post }
}
}
}
case types.ADD_POST:
return {
...state,
userPosts: {
...state.userPosts,
[payload.uid]: {
...state.userPosts[payload.uid],
[payload.post.id]: { ...payload.post }
}
}
}
case types.UPDATE_POST:
return {
...state,
userPosts: {
...state.userPosts,
[payload.uid]: {
...state.userPosts[payload.uid],
[payload.post.id]: {
...state.userPosts[payload.uid][payload.post.id],
...payload.post
}
}
}
}
case types.DELETE_POST:
let filteredPosts = {}
Object.keys(state.userPosts[payload.uid]).map((key) => {
if (key !== payload.id) {
return _.merge(filteredPosts, { [key]: { ...state.userPosts[payload.uid][key] } })
}
})
return {
...state,
userPosts: {
...state.userPosts,
[payload.uid]: {
...filteredPosts
}
}
}
case types.ADD_LIST_POST:
return {
...state,
userPosts: {
...state.userPosts,
[payload.uid]: {
...state.userPosts[payload.uid],
...payload.posts
}
},
loaded:true
}
default:
return state;
}
}

View File

@@ -0,0 +1,81 @@
// - Import action types
import * as types from 'actionTypes'
/**
* Default state for reducer
*/
var defaultState = {
info: {},
loaded: false,
openEditProfile: false
}
/**
* User reducer
*/
export var userReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.USER_INFO:
return {
...state,
info: {
...state.info,
[payload.uid]: {
...payload.info
}
}
}
case types.ADD_USER_INFO:
return {
...state,
info: {
...state.info,
[payload.uid]: {
...payload.info
}
},
loaded: true
}
case types.ADD_PEOPLE_INFO:
return {
...state,
info: {
...state.info,
...payload
}
}
case types.UPDATE_USER_INFO:
return {
...state,
info: {
...state.info,
[payload.uid]: {
...state.info[payload.uid],
...payload.info
}
}
}
case types.CLEAR_ALL_DATA_USER:
return defaultState
case types.CLOSE_EDIT_PROFILE:
return {
...state,
openEditProfile: false
}
case types.OPEN_EDIT_PROFILE:
return {
...state,
openEditProfile: true
}
default:
return state;
}
}

View File

@@ -0,0 +1,83 @@
// - Import react components
import moment from 'moment'
import _ from 'lodash'
// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
postVotes: {},
loaded:false
}
/**
* Vote actions
* @param {object} state
* @param {object} action
*/
export var voteReducer = (state = defaultState, action) => {
var { payload } = action
switch (action.type) {
/* _____________ CRUD _____________ */
case types.ADD_VOTE:
return {
...state,
postVotes: {
...state.postVotes,
[payload.postId]: {
...state.postVotes[payload.postId],
[payload.id]: {
...payload.vote
}
}
}
}
case types.ADD_VOTE_LIST:
return {
...state,
postVotes: {
...payload
},
loaded:true
}
case types.DELETE_VOTE:
var parsedVotes = {}
if (state.postVotes[payload.postId])
Object.keys(state.postVotes[payload.postId]).map((id) => {
if (id !== payload.id) {
_.merge(parsedVotes, { [id]: { ...state.postVotes[payload.postId][id] } })
}
})
return {
...state,
postVotes: {
...state.postVotes,
[payload.postId]: {
...parsedVotes
}
}
}
case types.CLEAR_ALL_DATA_VOTE:
return defaultState
default:
return state;
}
}