Skip to content
This repository was archived by the owner on Sep 8, 2021. It is now read-only.

Commit 0a0c8f6

Browse files
authored
Merge pull request #51 from foopang/fix/constants
Use constants for action types
2 parents 390c2f1 + 2c9fa98 commit 0a0c8f6

26 files changed

+254
-104
lines changed

src/components/App.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import agent from '../agent';
22
import Header from './Header';
33
import React from 'react';
44
import { connect } from 'react-redux';
5+
import { APP_LOAD, REDIRECT } from '../constants/actionTypes';
56

67
const mapStateToProps = state => ({
78
appLoaded: state.common.appLoaded,
@@ -12,9 +13,9 @@ const mapStateToProps = state => ({
1213

1314
const mapDispatchToProps = dispatch => ({
1415
onLoad: (payload, token) =>
15-
dispatch({ type: 'APP_LOAD', payload, token, skipTracking: true }),
16+
dispatch({ type: APP_LOAD, payload, token, skipTracking: true }),
1617
onRedirect: () =>
17-
dispatch({ type: 'REDIRECT' })
18+
dispatch({ type: REDIRECT })
1819
});
1920

2021
class App extends React.Component {

src/components/Article/ArticleActions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import { Link } from 'react-router';
22
import React from 'react';
33
import agent from '../../agent';
44
import { connect } from 'react-redux';
5+
import { DELETE_ARTICLE } from '../../constants/actionTypes';
56

67
const mapDispatchToProps = dispatch => ({
78
onClickDelete: payload =>
8-
dispatch({ type: 'DELETE_ARTICLE', payload })
9+
dispatch({ type: DELETE_ARTICLE, payload })
910
});
1011

1112
const ArticleActions = props => {

src/components/Article/CommentInput.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import React from 'react';
22
import agent from '../../agent';
33
import { connect } from 'react-redux';
4+
import { ADD_COMMENT } from '../../constants/actionTypes';
45

56
const mapDispatchToProps = dispatch => ({
67
onSubmit: payload =>
7-
dispatch({ type: 'ADD_COMMENT', payload })
8+
dispatch({ type: ADD_COMMENT, payload })
89
});
910

1011
class CommentInput extends React.Component {

src/components/Article/DeleteButton.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import React from 'react';
22
import agent from '../../agent';
33
import { connect } from 'react-redux';
4+
import { DELETE_COMMENT } from '../../constants/actionTypes';
45

56
const mapDispatchToProps = dispatch => ({
67
onClick: (payload, commentId) =>
7-
dispatch({ type: 'DELETE_COMMENT', payload, commentId })
8+
dispatch({ type: DELETE_COMMENT, payload, commentId })
89
});
910

1011
const DeleteButton = props => {

src/components/Article/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import React from 'react';
77
import agent from '../../agent';
88
import { connect } from 'react-redux';
99
import marked from 'marked';
10+
import { ARTICLE_PAGE_LOADED, ARTICLE_PAGE_UNLOADED } from '../../constants/actionTypes';
1011

1112
const mapStateToProps = state => ({
1213
...state.article,
@@ -15,9 +16,9 @@ const mapStateToProps = state => ({
1516

1617
const mapDispatchToProps = dispatch => ({
1718
onLoad: payload =>
18-
dispatch({ type: 'ARTICLE_PAGE_LOADED', payload }),
19+
dispatch({ type: ARTICLE_PAGE_LOADED, payload }),
1920
onUnload: () =>
20-
dispatch({ type: 'ARTICLE_PAGE_UNLOADED' })
21+
dispatch({ type: ARTICLE_PAGE_UNLOADED })
2122
});
2223

2324
class Article extends React.Component {

src/components/ArticlePreview.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import React from 'react';
44
import { Link } from 'react-router';
55
import agent from '../agent';
66
import { connect } from 'react-redux';
7+
import { ARTICLE_FAVORITED, ARTICLE_UNFAVORITED } from '../constants/actionTypes';
78

89
const FAVORITED_CLASS = 'btn btn-sm btn-primary';
910
const NOT_FAVORITED_CLASS = 'btn btn-sm btn-outline-primary';
1011

1112
const mapDispatchToProps = dispatch => ({
1213
favorite: slug => dispatch({
13-
type: 'ARTICLE_FAVORITED',
14+
type: ARTICLE_FAVORITED,
1415
payload: agent.Articles.favorite(slug)
1516
}),
1617
unfavorite: slug => dispatch({
17-
type: 'ARTICLE_UNFAVORITED',
18+
type: ARTICLE_UNFAVORITED,
1819
payload: agent.Articles.unfavorite(slug)
1920
})
2021
});

src/components/Editor.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,32 @@ import ListErrors from './ListErrors';
44
import React from 'react';
55
import agent from '../agent';
66
import { connect } from 'react-redux';
7+
import {
8+
ADD_TAG,
9+
EDITOR_PAGE_LOADED,
10+
REMOVE_TAG,
11+
ARTICLE_SUBMITTED,
12+
EDITOR_PAGE_UNLOADED,
13+
UPDATE_FIELD_EDITOR
14+
} from '../constants/actionTypes';
715

816
const mapStateToProps = state => ({
917
...state.editor
1018
});
1119

1220
const mapDispatchToProps = dispatch => ({
1321
onAddTag: () =>
14-
dispatch({ type: 'ADD_TAG' }),
22+
dispatch({ type: ADD_TAG }),
1523
onLoad: payload =>
16-
dispatch({ type: 'EDITOR_PAGE_LOADED', payload }),
24+
dispatch({ type: EDITOR_PAGE_LOADED, payload }),
1725
onRemoveTag: tag =>
18-
dispatch({ type: 'REMOVE_TAG', tag }),
26+
dispatch({ type: REMOVE_TAG, tag }),
1927
onSubmit: payload =>
20-
dispatch({ type: 'ARTICLE_SUBMITTED', payload }),
28+
dispatch({ type: ARTICLE_SUBMITTED, payload }),
2129
onUnload: payload =>
22-
dispatch({ type: 'EDITOR_PAGE_UNLOADED' }),
30+
dispatch({ type: EDITOR_PAGE_UNLOADED }),
2331
onUpdateField: (key, value) =>
24-
dispatch({ type: 'UPDATE_FIELD_EDITOR', key, value })
32+
dispatch({ type: UPDATE_FIELD_EDITOR, key, value })
2533
});
2634

2735
class Editor extends React.Component {

src/components/Home/MainView.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import ArticleList from '../ArticleList';
22
import React from 'react';
33
import agent from '../../agent';
44
import { connect } from 'react-redux';
5+
import { CHANGE_TAB } from '../../constants/actionTypes';
56

67
const YourFeedTab = props => {
78
if (props.token) {

src/components/Home/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ import React from 'react';
44
import Tags from './Tags';
55
import agent from '../../agent';
66
import { connect } from 'react-redux';
7+
import {
8+
HOME_PAGE_LOADED,
9+
HOME_PAGE_UNLOADED,
10+
APPLY_TAG_FILTER
11+
} from '../../constants/actionTypes';
712

813
const Promise = global.Promise;
914

@@ -19,7 +24,7 @@ const mapDispatchToProps = dispatch => ({
1924
onLoad: (tab, pager, payload) =>
2025
dispatch({ type: 'HOME_PAGE_LOADED', tab, pager, payload }),
2126
onUnload: () =>
22-
dispatch({ type: 'HOME_PAGE_UNLOADED' })
27+
dispatch({ type: HOME_PAGE_UNLOADED })
2328
});
2429

2530
class Home extends React.Component {

src/components/ListPagination.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import React from 'react';
22
import agent from '../agent';
33
import { connect } from 'react-redux';
4+
import { SET_PAGE } from '../constants/actionTypes';
45

56
const mapDispatchToProps = dispatch => ({
67
onSetPage: (page, payload) =>
7-
dispatch({ type: 'SET_PAGE', page, payload })
8+
dispatch({ type: SET_PAGE, page, payload })
89
});
910

1011
const ListPagination = props => {

src/components/Login.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,23 @@ import ListErrors from './ListErrors';
33
import React from 'react';
44
import agent from '../agent';
55
import { connect } from 'react-redux';
6+
import {
7+
UPDATE_FIELD_AUTH,
8+
LOGIN,
9+
LOGIN_PAGE_UNLOADED
10+
} from '../constants/actionTypes';
611

712
const mapStateToProps = state => ({ ...state.auth });
813

914
const mapDispatchToProps = dispatch => ({
1015
onChangeEmail: value =>
11-
dispatch({ type: 'UPDATE_FIELD_AUTH', key: 'email', value }),
16+
dispatch({ type: UPDATE_FIELD_AUTH, key: 'email', value }),
1217
onChangePassword: value =>
13-
dispatch({ type: 'UPDATE_FIELD_AUTH', key: 'password', value }),
18+
dispatch({ type: UPDATE_FIELD_AUTH, key: 'password', value }),
1419
onSubmit: (email, password) =>
15-
dispatch({ type: 'LOGIN', payload: agent.Auth.login(email, password) }),
20+
dispatch({ type: LOGIN, payload: agent.Auth.login(email, password) }),
1621
onUnload: () =>
17-
dispatch({ type: 'LOGIN_PAGE_UNLOADED' })
22+
dispatch({ type: LOGIN_PAGE_UNLOADED })
1823
});
1924

2025
class Login extends React.Component {

src/components/Profile.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import React from 'react';
55
import { Link } from 'react-router';
66
import agent from '../agent';
77
import { connect } from 'react-redux';
8+
import {
9+
FOLLOW_USER,
10+
UNFOLLOW_USER,
11+
PROFILE_PAGE_LOADED,
12+
PROFILE_PAGE_UNLOADED
13+
} from '../constants/actionTypes';
814

915
const EditProfileSettings = props => {
1016
if (props.isUser) {
@@ -59,15 +65,15 @@ const mapStateToProps = state => ({
5965

6066
const mapDispatchToProps = dispatch => ({
6167
onFollow: username => dispatch({
62-
type: 'FOLLOW_USER',
68+
type: FOLLOW_USER,
6369
payload: agent.Profile.follow(username)
6470
}),
65-
onLoad: payload => dispatch({ type: 'PROFILE_PAGE_LOADED', payload }),
71+
onLoad: payload => dispatch({ type: PROFILE_PAGE_LOADED, payload }),
6672
onUnfollow: username => dispatch({
67-
type: 'UNFOLLOW_USER',
73+
type: UNFOLLOW_USER,
6874
payload: agent.Profile.unfollow(username)
6975
}),
70-
onUnload: () => dispatch({ type: 'PROFILE_PAGE_UNLOADED' })
76+
onUnload: () => dispatch({ type: PROFILE_PAGE_UNLOADED })
7177
});
7278

7379
class Profile extends React.Component {

src/components/ProfileFavorites.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@ import React from 'react';
55
import { Link } from 'react-router';
66
import agent from '../agent';
77
import { connect } from 'react-redux';
8+
import {
9+
PROFILE_FAVORITES_PAGE_LOADED,
10+
PROFILE_FAVORITES_PAGE_UNLOADED
11+
} from '../constants/actionTypes';
812

913
const mapDispatchToProps = dispatch => ({
1014
onLoad: (pager, payload) =>
1115
dispatch({ type: 'PROFILE_FAVORITES_PAGE_LOADED', pager, payload }),
1216
onUnload: () =>
13-
dispatch({ type: 'PROFILE_FAVORITES_PAGE_UNLOADED' })
17+
dispatch({ type: PROFILE_FAVORITES_PAGE_UNLOADED })
1418
});
1519

1620
class ProfileFavorites extends Profile {

src/components/Register.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,27 @@ import ListErrors from './ListErrors';
33
import React from 'react';
44
import agent from '../agent';
55
import { connect } from 'react-redux';
6+
import {
7+
UPDATE_FIELD_AUTH,
8+
REGISTER,
9+
REGISTER_PAGE_UNLOADED
10+
} from '../constants/actionTypes';
611

712
const mapStateToProps = state => ({ ...state.auth });
813

914
const mapDispatchToProps = dispatch => ({
1015
onChangeEmail: value =>
11-
dispatch({ type: 'UPDATE_FIELD_AUTH', key: 'email', value }),
16+
dispatch({ type: UPDATE_FIELD_AUTH, key: 'email', value }),
1217
onChangePassword: value =>
13-
dispatch({ type: 'UPDATE_FIELD_AUTH', key: 'password', value }),
18+
dispatch({ type: UPDATE_FIELD_AUTH, key: 'password', value }),
1419
onChangeUsername: value =>
15-
dispatch({ type: 'UPDATE_FIELD_AUTH', key: 'username', value }),
20+
dispatch({ type: UPDATE_FIELD_AUTH, key: 'username', value }),
1621
onSubmit: (username, email, password) => {
1722
const payload = agent.Auth.register(username, email, password);
18-
dispatch({ type: 'REGISTER', payload })
23+
dispatch({ type: REGISTER, payload })
1924
},
2025
onUnload: () =>
21-
dispatch({ type: 'REGISTER_PAGE_UNLOADED' })
26+
dispatch({ type: REGISTER_PAGE_UNLOADED })
2227
});
2328

2429
class Register extends React.Component {

src/components/Settings.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ import { Link } from 'react-router';
44
import agent from '../agent';
55
import { connect } from 'react-redux';
66
import store from '../store';
7+
import {
8+
SETTINGS_SAVED,
9+
SETTINGS_PAGE_UNLOADED,
10+
LOGOUT
11+
} from '../constants/actionTypes';
712

813
class SettingsForm extends React.Component {
914
constructor() {
@@ -127,10 +132,10 @@ const mapStateToProps = state => ({
127132
});
128133

129134
const mapDispatchToProps = dispatch => ({
130-
onClickLogout: () => dispatch({ type: 'LOGOUT' }),
135+
onClickLogout: () => dispatch({ type: LOGOUT }),
131136
onSubmitForm: user =>
132-
dispatch({ type: 'SETTINGS_SAVED', payload: agent.Auth.save(user) }),
133-
onUnload: () => dispatch({ type: 'SETTINGS_PAGE_UNLOADED' })
137+
dispatch({ type: SETTINGS_SAVED, payload: agent.Auth.save(user) }),
138+
onUnload: () => dispatch({ type: SETTINGS_PAGE_UNLOADED })
134139
});
135140

136141
class Settings extends React.Component {

src/constants/actionTypes.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
export const APP_LOAD = 'APP_LOAD';
2+
export const REDIRECT = 'REDIRECT';
3+
export const ARTICLE_SUBMITTED = 'ARTICLE_SUBMITTED';
4+
export const SETTINGS_SAVED = 'SETTINGS_SAVED';
5+
export const DELETE_ARTICLE = 'DELETE_ARTICLE';
6+
export const SETTINGS_PAGE_UNLOADED = 'SETTINGS_PAGE_UNLOADED';
7+
export const HOME_PAGE_LOADED = 'HOME_PAGE_LOADED';
8+
export const HOME_PAGE_UNLOADED = 'HOME_PAGE_UNLOADED';
9+
export const ARTICLE_PAGE_LOADED = 'ARTICLE_PAGE_LOADED';
10+
export const ARTICLE_PAGE_UNLOADED = 'ARTICLE_PAGE_UNLOADED';
11+
export const ADD_COMMENT = 'ADD_COMMENT';
12+
export const DELETE_COMMENT = 'DELETE_COMMENT';
13+
export const ARTICLE_FAVORITED = 'ARTICLE_FAVORITED';
14+
export const ARTICLE_UNFAVORITED = 'ARTICLE_UNFAVORITED';
15+
export const SET_PAGE = 'SET_PAGE';
16+
export const APPLY_TAG_FILTER = 'APPLY_TAG_FILTER';
17+
export const CHANGE_TAB = 'CHANGE_TAB';
18+
export const PROFILE_PAGE_LOADED = 'PROFILE_PAGE_LOADED';
19+
export const PROFILE_PAGE_UNLOADED = 'PROFILE_PAGE_UNLOADED';
20+
export const PROFILE_FAVORITES_PAGE_LOADED = 'PROFILE_FAVORITES_PAGE_LOADED';
21+
export const PROFILE_FAVORITES_PAGE_UNLOADED = 'PROFILE_FAVORITES_PAGE_UNLOADED';
22+
export const LOGIN = 'LOGIN';
23+
export const LOGOUT = 'LOGOUT';
24+
export const REGISTER = 'REGISTER';
25+
export const LOGIN_PAGE_UNLOADED = 'LOGIN_PAGE_UNLOADED';
26+
export const REGISTER_PAGE_UNLOADED = 'REGISTER_PAGE_UNLOADED';
27+
export const ASYNC_START = 'ASYNC_START';
28+
export const ASYNC_END = 'ASYNC_END';
29+
export const EDITOR_PAGE_LOADED = 'EDITOR_PAGE_LOADED';
30+
export const EDITOR_PAGE_UNLOADED = 'EDITOR_PAGE_UNLOADED';
31+
export const ADD_TAG = 'ADD_TAG';
32+
export const REMOVE_TAG = 'REMOVE_TAG';
33+
export const UPDATE_FIELD_AUTH = 'UPDATE_FIELD_AUTH';
34+
export const UPDATE_FIELD_EDITOR = 'UPDATE_FIELD_EDITOR';
35+
export const FOLLOW_USER = 'FOLLOW_USER';
36+
export const UNFOLLOW_USER = 'UNFOLLOW_USER';

0 commit comments

Comments
 (0)