Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 14eafd8

Browse files
committed
update to v2.1.0
1 parent a1c3230 commit 14eafd8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1279
-1165
lines changed

.eslintrc.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es6": true,
5+
"node": true
6+
},
7+
"plugins": [
8+
"react"
9+
],
10+
"globals": {
11+
"__DEVCLIENT__": true,
12+
"__DEVSERVER__": true,
13+
"__DEVTOOLS__": true,
14+
"__DEVLOGGER__": true
15+
},
16+
"extends": ["eslint:recommended","plugin:react/recommended"],
17+
"parserOptions": {
18+
"sourceType": "module",
19+
"ecmaVersion": 7,
20+
"ecmaFeatures": {
21+
"globalReturn": true,
22+
"impliedStrict": true,
23+
"experimentalObjectRestSpread":true,
24+
"jsx": true
25+
}
26+
},
27+
"parser": "babel-eslint",
28+
"rules": {
29+
"strict": 0,
30+
"indent": [
31+
"error",
32+
2,
33+
{"SwitchCase": 1}
34+
],
35+
"linebreak-style": [
36+
"error",
37+
"unix"
38+
],
39+
"quotes": [
40+
"error",
41+
"single"
42+
],
43+
"semi": [
44+
"error",
45+
"never"
46+
],
47+
"no-console": 0,
48+
"no-unused-vars": ["error", { "vars": "all", "args": "none" }],
49+
"no-mixed-spaces-and-tabs": [0],
50+
"react/no-danger": 0,
51+
"react/display-name": 0
52+
}
53+
}

History.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2.1.0 / 2016-04-09
2+
==================
3+
4+
* 更新react, react-dom 到 v15.0.1
5+
* 更新redux-form 到 v5.0.1
6+
* 使用eslint 代码检查
7+
* 弃用 react-addons-linked-state-mixin, 改成onChange/setState
8+
* 修复logger中间件immutable数据转换
9+
* 修复alert message背景色
10+
* 修复navbar 小屏幕样式
11+
* 修复navbar dropdown菜单
12+
13+
114
2.0.0 / 2016-03-28
215
==================
316

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@ $ cd jackblog-react-redux
1818
$ npm install
1919
$ npm run dev
2020
```
21+
在浏览中打开http://localhost:5000
22+
23+
24+
### 调试
25+
- redux-logger 默认开启, 关闭方法
26+
27+
```
28+
webpack-> webpack.config.dev.client.js -> __DEVLOGGER__ : false
29+
```
30+
31+
- redux-devtools 默认使用chrome扩展, [Redux DevTools Chrome Extension](https://github.com/zalmoxisus/redux-devtools-extension) , 网页方式默认关闭, 开启方法:
32+
33+
```
34+
webpack-> webpack.config.dev.client.js -> __DEVTOOLS__ : true
35+
```
2136

2237
### 目录结构
2338

nodemon.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"verbose": false,
3-
"watch": [
4-
"src/server.js",
5-
"src/routes.js",
6-
"server.js",
7-
"webpack"
8-
]
2+
"verbose": false,
3+
"watch": [
4+
"src/server.js",
5+
"src/routes.js",
6+
"server.js",
7+
"webpack"
8+
]
99
}

package.json

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jackblog-react-redux",
3-
"version": "2.0.0",
3+
"version": "2.1.0",
44
"description": "Jackblog react redux 版",
55
"repository": "https://github.com/jackhutu/jackblog-react-redux",
66
"license": "MIT",
@@ -59,6 +59,7 @@
5959
"devDependencies": {
6060
"axios": "^0.9.1",
6161
"babel-core": "^6.7.5",
62+
"babel-eslint": "^6.0.2",
6263
"babel-loader": "^6.2.4",
6364
"babel-plugin-react-transform": "^2.0.2",
6465
"babel-plugin-syntax-async-functions": "^6.5.0",
@@ -68,14 +69,16 @@
6869
"babel-preset-react": "^6.5.0",
6970
"babel-preset-react-hmre": "^1.1.1",
7071
"babel-preset-stage-0": "^6.5.0",
71-
"babel-register": "^6.7.2",
7272
"babel-runtime": "^6.6.1",
7373
"better-npm-run": "0.0.8",
7474
"bootstrap": "^3.3.6",
7575
"classnames": "^2.2.3",
7676
"concurrently": "^2.0.0",
7777
"css-loader": "^0.23.1",
7878
"es6-promise": "^3.1.2",
79+
"eslint": "^2.7.0",
80+
"eslint-loader": "^1.3.0",
81+
"eslint-plugin-react": "^4.3.0",
7982
"extract-text-webpack-plugin": "^1.0.1",
8083
"file-loader": "^0.8.5",
8184
"font-awesome": "^4.5.0",
@@ -88,26 +91,25 @@
8891
"node-libs-browser": "^1.0.0",
8992
"nodemon": "^1.9.1",
9093
"npm-run-all": "^1.7.0",
91-
"react": "^0.14.7",
92-
"react-addons-css-transition-group": "^0.14.7",
93-
"react-addons-linked-state-mixin": "^0.14.7",
94-
"react-addons-test-utils": "^0.14.7",
94+
"react": "^15.0.1",
95+
"react-addons-css-transition-group": "^15.0.1",
96+
"react-addons-test-utils": "^15.0.1",
9597
"react-bootstrap": "^0.28.5",
9698
"react-cookie": "^0.4.5",
97-
"react-dom": "^0.14.7",
98-
"react-mixin": "^3.0.4",
99+
"react-dom": "^15.0.1",
100+
"react-linked-input": "^1.0.1",
99101
"react-redux": "^4.4.1",
100102
"react-router": "^2.0.1",
101103
"react-router-redux": "^4.0.2",
102-
"react-s-alert": "^1.1.0",
104+
"react-s-alert": "^1.1.1",
103105
"react-transform-catch-errors": "^1.0.2",
104106
"react-transform-hmr": "^1.0.4",
105107
"redbox-react": "^1.2.3",
106-
"redux": "^3.3.1",
108+
"redux": "^3.4.0",
107109
"redux-devtools": "^3.2.0",
108110
"redux-devtools-dock-monitor": "^1.1.1",
109111
"redux-devtools-log-monitor": "^1.0.9",
110-
"redux-form": "^5.0.0",
112+
"redux-form": "^5.0.1",
111113
"redux-immutablejs": "0.0.8",
112114
"redux-logger": "^2.6.1",
113115
"redux-router": "^1.0.0-beta7",

process.json

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
2-
"apps" : [
3-
{
4-
"name" : "jackblog-react-redux",
5-
"script" : "./server.js",
6-
"log_date_format" : "YYYY-MM-DD HH:mm Z",
7-
"out_file" : "./logs/pm2-out.log",
8-
"error_file" : "./logs/pm2-err.log",
9-
"pid_file" : "./logs/jackblog-react-redux.pid",
10-
"ignoreWatch" : ["[\\/\\\\]\\./", "node_modules"],
11-
"watch" : "false",
12-
"exec_mode" : "fork_mode", //cluster_mode
13-
"env": {
14-
"NODE_ENV": "production",
15-
"PORT": 8300
16-
}
17-
}
18-
]
2+
"apps":[
3+
{
4+
"name" : "jackblog-react-redux",
5+
"script" : "./server.js",
6+
"log_date_format" : "YYYY-MM-DD HH:mm Z",
7+
"out_file" : "./logs/pm2-out.log",
8+
"error_file" : "./logs/pm2-err.log",
9+
"pid_file" : "./logs/jackblog-react-redux.pid",
10+
"ignoreWatch" : ["[\\/\\\\]\\./", "node_modules"],
11+
"watch" : "false",
12+
"exec_mode" : "fork_mode", //cluster_mode
13+
"env": {
14+
"NODE_ENV": "production",
15+
"PORT": 8300
16+
}
17+
}
18+
]
1919
}

src/actions/article.js

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4,88 +4,88 @@ import { getUserInfo } from './auth'
44

55
//获取标签列表.
66
export const getTagList = () =>{
7-
return {
8-
type: types.TAG_LIST,
9-
promise: api.getTagList()
10-
}
7+
return {
8+
type: types.TAG_LIST,
9+
promise: api.getTagList()
10+
}
1111
}
1212
//更改options
1313
export const changeOptions = (option) => ({ type: types.CHANGE_OPTIONS, option: option})
1414

1515
//切换Like
1616
function receiveToggleLike(json) {
17-
return {
18-
type: types.TOGGLE_LIKE_SUCCESS,
19-
like_count: json.count,
20-
isLike: json.isLike
21-
}
17+
return {
18+
type: types.TOGGLE_LIKE_SUCCESS,
19+
like_count: json.count,
20+
isLike: json.isLike
21+
}
2222
}
2323

2424
export function toggleLike(aid) {
25-
return (dispatch,getState)=>{
26-
return api.toggleLike(aid)
27-
.then(response => ({json: response.data, status: response.statusText}))
28-
.then(({json,status}) => {
29-
if(status !== 'OK'){
30-
return dispatch({ type: types.TOGGLE_LIKE_FAILURE })
31-
}
32-
dispatch(getUserInfo())
33-
return dispatch(receiveToggleLike(json))
34-
})
35-
.catch(error => {
36-
return dispatch({ type: types.TOGGLE_LIKE_FAILURE })
37-
})
38-
}
25+
return (dispatch,getState)=>{
26+
return api.toggleLike(aid)
27+
.then(response => ({json: response.data, status: response.statusText}))
28+
.then(({json,status}) => {
29+
if(status !== 'OK'){
30+
return dispatch({ type: types.TOGGLE_LIKE_FAILURE })
31+
}
32+
dispatch(getUserInfo())
33+
return dispatch(receiveToggleLike(json))
34+
})
35+
.catch(error => {
36+
return dispatch({ type: types.TOGGLE_LIKE_FAILURE })
37+
})
38+
}
3939
}
4040

4141
/*获取文章列表*/
4242
export const getArticleList = (isAdd = true) =>{
43-
return (dispatch,getState) => {
44-
const options = getState().options.toJS()
45-
return dispatch({
46-
type: types.ARTICLE_LIST,
47-
itemsPerPage: options.itemsPerPage,
48-
promise: api.getArticleList(options),
49-
isAdd: isAdd
50-
})
51-
}
43+
return (dispatch,getState) => {
44+
const options = getState().options.toJS()
45+
return dispatch({
46+
type: types.ARTICLE_LIST,
47+
itemsPerPage: options.itemsPerPage,
48+
promise: api.getArticleList(options),
49+
isAdd: isAdd
50+
})
51+
}
5252
}
5353
//获取文章详情
5454
export const getArticleDetail = (id) =>{
55-
return (dispatch, getState) => {
56-
const auth = getState().auth.toJS()
57-
return api.getArticleDetaile(id)
58-
.then(response => ({json: response.data, status: response.statusText}))
59-
.then(({json,status}) => {
60-
let isLike = false
61-
let article = json.data
62-
if(auth.user){
63-
auth.user.likes.map(item=>{
64-
if(item.toString() === article._id){
65-
isLike = true
66-
}
67-
})
68-
}
69-
return dispatch({
70-
type: types.ARTICLE_DETAIL_SUCCESS,
71-
articleDetail: {...article,isLike:isLike}
72-
})
73-
})
74-
.catch(error => {
75-
return dispatch({
76-
type: types.ARTICLE_DETAIL_FAILURE
77-
})
78-
})
79-
}
55+
return (dispatch, getState) => {
56+
const auth = getState().auth.toJS()
57+
return api.getArticleDetaile(id)
58+
.then(response => ({json: response.data, status: response.statusText}))
59+
.then(({json,status}) => {
60+
let isLike = false
61+
let article = json.data
62+
if(auth.user){
63+
auth.user.likes.map(item=>{
64+
if(item.toString() === article._id){
65+
isLike = true
66+
}
67+
})
68+
}
69+
return dispatch({
70+
type: types.ARTICLE_DETAIL_SUCCESS,
71+
articleDetail: {...article,isLike:isLike}
72+
})
73+
})
74+
.catch(error => {
75+
return dispatch({
76+
type: types.ARTICLE_DETAIL_FAILURE
77+
})
78+
})
79+
}
8080
}
8181

8282
//获取上下一篇文章
8383
export const getPrenext = (id)=>{
84-
return (dispatch,getState) => {
85-
const options = getState().options.toJS()
86-
return dispatch({
87-
type: types.PRENEXT_ARTICLE,
88-
promise: api.getPrenext(id,options)
89-
})
90-
}
84+
return (dispatch,getState) => {
85+
const options = getState().options.toJS()
86+
return dispatch({
87+
type: types.PRENEXT_ARTICLE,
88+
promise: api.getPrenext(id,options)
89+
})
90+
}
9191
}

0 commit comments

Comments
 (0)