@twreporter/redux 7.5.2-rc.0 → 7.6.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/lib/actions/index.js +5 -1
- package/lib/actions/user.js +183 -0
- package/lib/constants/action-types.js +13 -1
- package/lib/constants/redux-state-field-names.js +4 -2
- package/lib/index.js +4 -1
- package/lib/reducers/index.js +3 -1
- package/lib/reducers/user.js +84 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.6.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/redux@7.5.2-rc.1...@twreporter/redux@7.6.0-rc.0) (2023-06-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add firstName and lastName and role for user store ([ea21518](https://github.com/twreporter/twreporter-npm-packages/commit/ea21518b60ccd1d7ae098895af1a01c94d35e846))
|
|
12
|
+
* add user action test ([c8d5fc8](https://github.com/twreporter/twreporter-npm-packages/commit/c8d5fc8d25eac02a245653383ddf0c72935617d8))
|
|
13
|
+
* add user reducer test ([28cc793](https://github.com/twreporter/twreporter-npm-packages/commit/28cc793bdf68559a4f81e44ab62e6ee62b58a1b7))
|
|
14
|
+
* get and set user data ([17668f3](https://github.com/twreporter/twreporter-npm-packages/commit/17668f34eee9e305fd9c27278b986c1c2d251b99))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## [7.5.2-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/redux@7.5.2-rc.0...@twreporter/redux@7.5.2-rc.1) (2023-05-23)
|
|
21
|
+
|
|
22
|
+
**Note:** Version bump only for package @twreporter/redux
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [7.5.2-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/redux@7.5.1...@twreporter/redux@7.5.2-rc.0) (2023-05-22)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @twreporter/redux
|
package/lib/actions/index.js
CHANGED
|
@@ -23,6 +23,8 @@ var _bookmarks = require("./bookmarks");
|
|
|
23
23
|
|
|
24
24
|
var _latest = require("./latest");
|
|
25
25
|
|
|
26
|
+
var _user = require("./user");
|
|
27
|
+
|
|
26
28
|
var _default = {
|
|
27
29
|
createSingleBookmark: _bookmarks.createSingleBookmark,
|
|
28
30
|
deleteSingleBookmark: _bookmarks.deleteSingleBookmark,
|
|
@@ -42,6 +44,8 @@ var _default = {
|
|
|
42
44
|
getAccessToken: _auth.getAccessToken,
|
|
43
45
|
getMultipleBookmarks: _bookmarks.getMultipleBookmarks,
|
|
44
46
|
getSingleBookmark: _bookmarks.getSingleBookmark,
|
|
45
|
-
searchAuthorsIfNeeded: _authors.searchAuthorsIfNeeded
|
|
47
|
+
searchAuthorsIfNeeded: _authors.searchAuthorsIfNeeded,
|
|
48
|
+
getUserData: _user.getUserData,
|
|
49
|
+
setUserData: _user.setUserData
|
|
46
50
|
};
|
|
47
51
|
exports["default"] = _default;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getUserData = getUserData;
|
|
7
|
+
exports.setUserData = setUserData;
|
|
8
|
+
|
|
9
|
+
var _url = require("../utils/url");
|
|
10
|
+
|
|
11
|
+
var _apiConfig = _interopRequireDefault(require("../constants/api-config"));
|
|
12
|
+
|
|
13
|
+
var _apiEndpoints = _interopRequireDefault(require("../constants/api-endpoints"));
|
|
14
|
+
|
|
15
|
+
var _errorActionCreators = _interopRequireDefault(require("./error-action-creators"));
|
|
16
|
+
|
|
17
|
+
var _reduxStateFieldNames = _interopRequireDefault(require("../constants/redux-state-field-names"));
|
|
18
|
+
|
|
19
|
+
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
|
|
20
|
+
|
|
21
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
22
|
+
|
|
23
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
24
|
+
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
26
|
+
|
|
27
|
+
// lodash
|
|
28
|
+
var _ = {
|
|
29
|
+
get: _get["default"]
|
|
30
|
+
};
|
|
31
|
+
var apiTimeout = _apiConfig["default"].timeout;
|
|
32
|
+
/**
|
|
33
|
+
* @typedef {Object} userData
|
|
34
|
+
* @property {string} email - email of user
|
|
35
|
+
* @property {string} id - id of user
|
|
36
|
+
* @property {string} jwt - json web token issued by backend for this certain user
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @typedef {Object} RequestAction
|
|
41
|
+
* @property {string} type - The type of action
|
|
42
|
+
* @property {string} payload.method - The HTTP request method
|
|
43
|
+
* @property {string} payload.url - The target to send request
|
|
44
|
+
* @property {Object} payload.body - The request body with POST, PUT, DELETE, or PATCH request
|
|
45
|
+
* @property {Object} payload.headers - The request header
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @typedef {Object} SuccessAction
|
|
50
|
+
* @property {string} type - The type of action
|
|
51
|
+
* @property {string} payload
|
|
52
|
+
* @property {Object} payload.data - Response data
|
|
53
|
+
* @property {string} payload.statusCode - Response status code
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @param {Object} axiosResponse
|
|
58
|
+
* @param {string} actionType
|
|
59
|
+
* @returns {SuccessAction}
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
function buildSuccessActionFromRes(axiosResponse, actionType) {
|
|
63
|
+
return {
|
|
64
|
+
type: actionType,
|
|
65
|
+
payload: {
|
|
66
|
+
data: _.get(axiosResponse, 'data'),
|
|
67
|
+
statusCode: _.get(axiosResponse, 'status')
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @typedef {Object} FailAction
|
|
73
|
+
* @property {string} type - Action error type
|
|
74
|
+
* @property {string} payload
|
|
75
|
+
* @property {string} payload.statusCode - Response status code
|
|
76
|
+
* @property {string} payload.message - Error message
|
|
77
|
+
* @property {object} payload.error - Error object
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
*
|
|
83
|
+
* @export
|
|
84
|
+
* @param {string} jwt - access_token granted for the user
|
|
85
|
+
* @param {number} userID - id of user
|
|
86
|
+
* @return {Function} - function will be executed in Redux Thunk middleware
|
|
87
|
+
*/
|
|
88
|
+
// TODO: wait till api ready
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
function getUserData(jwt, userID) {
|
|
92
|
+
/**
|
|
93
|
+
* @param {Function} dispatch - Redux store dispatch function
|
|
94
|
+
* @param {Function} getState - Redux store getState function
|
|
95
|
+
* @return {Promise} resolve with success action or reject with fail action
|
|
96
|
+
*/
|
|
97
|
+
// return function(dispatch, getState) {
|
|
98
|
+
// const state = getState()
|
|
99
|
+
// const apiOrigin = _.get(state, [stateFieldNames.origins, 'api'])
|
|
100
|
+
// const url = formURL(
|
|
101
|
+
// apiOrigin,
|
|
102
|
+
// `/v2/${apiEndpoints.users}/${userID}`,
|
|
103
|
+
// )
|
|
104
|
+
// dispatch({
|
|
105
|
+
// type: types.user.read.request,
|
|
106
|
+
// url
|
|
107
|
+
// })
|
|
108
|
+
// const axiosConfig = {
|
|
109
|
+
// timeout: apiTimeout,
|
|
110
|
+
// headers: {
|
|
111
|
+
// Authorization: `Bearer ${jwt}`,
|
|
112
|
+
// },
|
|
113
|
+
// }
|
|
114
|
+
// return axios
|
|
115
|
+
// .get(url, axiosConfig)
|
|
116
|
+
// .then(res => {
|
|
117
|
+
// const successAction = buildSuccessActionFromRes(
|
|
118
|
+
// res,
|
|
119
|
+
// types.user.read.success
|
|
120
|
+
// )
|
|
121
|
+
// dispatch(successAction)
|
|
122
|
+
// return successAction
|
|
123
|
+
// })
|
|
124
|
+
// .catch(error => {
|
|
125
|
+
// const failAction = failActionCreators.axios(
|
|
126
|
+
// error,
|
|
127
|
+
// types.user.read.failure
|
|
128
|
+
// )
|
|
129
|
+
// dispatch(failAction)
|
|
130
|
+
// return Promise.reject(failAction)
|
|
131
|
+
// })
|
|
132
|
+
// }
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
*
|
|
136
|
+
*
|
|
137
|
+
* @export
|
|
138
|
+
* @param {string} jwt - access_token granted for the user
|
|
139
|
+
* @param {number} userID - id of user
|
|
140
|
+
* @param {string[]} readPreference - subscribed topics
|
|
141
|
+
* @param {string[]} maillist - subscribed mail list
|
|
142
|
+
* @return {Function} - function will be executed in Redux Thunk middleware
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
function setUserData(jwt, userID, readPreference, maillist) {
|
|
147
|
+
/**
|
|
148
|
+
* @param {Function} dispatch - Redux store dispatch function
|
|
149
|
+
* @param {Function} getState - Redux store getState function
|
|
150
|
+
* @return {Promise} resolve with success action or reject with fail action
|
|
151
|
+
*/
|
|
152
|
+
return function (dispatch, getState) {
|
|
153
|
+
var state = getState();
|
|
154
|
+
|
|
155
|
+
var apiOrigin = _.get(state, [_reduxStateFieldNames["default"].origins, 'api']);
|
|
156
|
+
|
|
157
|
+
var url = (0, _url.formURL)(apiOrigin, "/v2/".concat(_apiEndpoints["default"].users, "/").concat(userID));
|
|
158
|
+
dispatch({
|
|
159
|
+
type: _actionTypes["default"].user.update.request,
|
|
160
|
+
url: url
|
|
161
|
+
});
|
|
162
|
+
var axiosConfig = {
|
|
163
|
+
timeout: apiTimeout,
|
|
164
|
+
headers: {
|
|
165
|
+
Authorization: "Bearer ".concat(jwt)
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
var body = {
|
|
169
|
+
read_preference: readPreference,
|
|
170
|
+
maillist: maillist
|
|
171
|
+
};
|
|
172
|
+
return _axios["default"].post(url, body, axiosConfig).then(function (res) {
|
|
173
|
+
var successAction = buildSuccessActionFromRes(res, _actionTypes["default"].user.update.success);
|
|
174
|
+
dispatch(successAction);
|
|
175
|
+
return successAction;
|
|
176
|
+
})["catch"](function (error) {
|
|
177
|
+
var failAction = _errorActionCreators["default"].axios(error, _actionTypes["default"].user.update.failure);
|
|
178
|
+
|
|
179
|
+
dispatch(failAction);
|
|
180
|
+
return Promise.reject(failAction);
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
}
|
|
@@ -131,6 +131,18 @@ var _default = {
|
|
|
131
131
|
},
|
|
132
132
|
dataAlreadyExists: 'data already exists',
|
|
133
133
|
noMoreItemsToFetch: 'no more items to fetch',
|
|
134
|
-
lastActionIsStillProcessing: 'last action is still processing'
|
|
134
|
+
lastActionIsStillProcessing: 'last action is still processing',
|
|
135
|
+
user: {
|
|
136
|
+
read: {
|
|
137
|
+
request: 'request to fetch single user data',
|
|
138
|
+
success: 'succes to fetch single user data',
|
|
139
|
+
failure: 'fail to fetch single user data'
|
|
140
|
+
},
|
|
141
|
+
update: {
|
|
142
|
+
request: 'request to update user data',
|
|
143
|
+
success: 'succes to update user data',
|
|
144
|
+
failure: 'fail to update user data'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
135
147
|
};
|
|
136
148
|
exports["default"] = _default;
|
|
@@ -22,7 +22,8 @@ var authorsList = 'authorsList';
|
|
|
22
22
|
var bookmarks = 'bookmarks';
|
|
23
23
|
var bookmarkWidget = 'bookmarkWidget';
|
|
24
24
|
var entitiesForAuthors = 'entitiesForAuthors';
|
|
25
|
-
var searchedAuthorsList = 'searchedAuthorsList';
|
|
25
|
+
var searchedAuthorsList = 'searchedAuthorsList';
|
|
26
|
+
var user = 'user'; // sections in index_page
|
|
26
27
|
|
|
27
28
|
var editorPicksSection = 'editor_picks_section';
|
|
28
29
|
var infographicsSection = 'infographics_section';
|
|
@@ -100,6 +101,7 @@ var _default = {
|
|
|
100
101
|
searchedAuthorsList: searchedAuthorsList,
|
|
101
102
|
settings: settings,
|
|
102
103
|
relatedPostsOf: 'relatedPostsOf',
|
|
103
|
-
featureTopic: 'featureTopic'
|
|
104
|
+
featureTopic: 'featureTopic',
|
|
105
|
+
user: user
|
|
104
106
|
};
|
|
105
107
|
exports["default"] = _default;
|
package/lib/index.js
CHANGED
|
@@ -41,6 +41,8 @@ var _posts = require("./reducers/posts");
|
|
|
41
41
|
|
|
42
42
|
var _topics = require("./reducers/topics");
|
|
43
43
|
|
|
44
|
+
var _user = _interopRequireDefault(require("./reducers/user"));
|
|
45
|
+
|
|
44
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
47
|
|
|
46
48
|
// actions
|
|
@@ -59,7 +61,8 @@ var _default = {
|
|
|
59
61
|
posts: _posts.posts,
|
|
60
62
|
relatedPostsOf: _relatedPostsOf["default"],
|
|
61
63
|
topic: _topics.topic,
|
|
62
|
-
topics: _topics.topics
|
|
64
|
+
topics: _topics.topics,
|
|
65
|
+
user: _user["default"]
|
|
63
66
|
},
|
|
64
67
|
reduxStateFields: _reduxStateFieldNames["default"],
|
|
65
68
|
ReduxStoreContext: _reduxStore["default"],
|
package/lib/reducers/index.js
CHANGED
|
@@ -39,12 +39,14 @@ var _settings = _interopRequireDefault(require("./settings"));
|
|
|
39
39
|
|
|
40
40
|
var _latest = _interopRequireDefault(require("./latest"));
|
|
41
41
|
|
|
42
|
+
var _user = _interopRequireDefault(require("./user"));
|
|
43
|
+
|
|
42
44
|
var _combineReducers;
|
|
43
45
|
|
|
44
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
47
|
|
|
46
48
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
47
49
|
|
|
48
|
-
var rootReducer = (0, _redux.combineReducers)((_combineReducers = {}, _defineProperty(_combineReducers, _reduxStateFieldNames["default"].articlesByAuthor, _authorArticles.articlesByAuthor), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].auth, _auth["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].authorsList, _authors.authorsList), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].bookmarks, _bookmarks["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].bookmarkWidget, _bookmarkWidget["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].entities, _entities["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].indexPage, _indexPage["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].lists, _posts.posts), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].searchedAuthorsList, _authors.searchedAuthorsList), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].selectedPost, _posts.post), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].selectedTopic, _topics.topic), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].topicList, _topics.topics), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].relatedPostsOf, _relatedPostsOf["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].featureTopic, _featureTopic["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].entitiesForAuthors, _entitiesForAuthors["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].origins, _origins["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].settings, _settings["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].latest, _latest["default"]), _combineReducers));
|
|
50
|
+
var rootReducer = (0, _redux.combineReducers)((_combineReducers = {}, _defineProperty(_combineReducers, _reduxStateFieldNames["default"].articlesByAuthor, _authorArticles.articlesByAuthor), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].auth, _auth["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].authorsList, _authors.authorsList), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].bookmarks, _bookmarks["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].bookmarkWidget, _bookmarkWidget["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].entities, _entities["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].indexPage, _indexPage["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].lists, _posts.posts), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].searchedAuthorsList, _authors.searchedAuthorsList), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].selectedPost, _posts.post), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].selectedTopic, _topics.topic), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].topicList, _topics.topics), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].relatedPostsOf, _relatedPostsOf["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].featureTopic, _featureTopic["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].entitiesForAuthors, _entitiesForAuthors["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].origins, _origins["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].settings, _settings["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].latest, _latest["default"]), _defineProperty(_combineReducers, _reduxStateFieldNames["default"].user, _user["default"]), _combineReducers));
|
|
49
51
|
var _default = rootReducer;
|
|
50
52
|
exports["default"] = _default;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = user;
|
|
7
|
+
|
|
8
|
+
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
|
|
9
|
+
|
|
10
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
|
+
|
|
12
|
+
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19
|
+
|
|
20
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
+
|
|
22
|
+
var _ = {
|
|
23
|
+
get: _get["default"],
|
|
24
|
+
merge: _merge["default"]
|
|
25
|
+
};
|
|
26
|
+
var initState = {
|
|
27
|
+
error: null,
|
|
28
|
+
isFetching: false,
|
|
29
|
+
isReady: false,
|
|
30
|
+
// TODO: need add other user state after connect to getUser api
|
|
31
|
+
// userID: -1,
|
|
32
|
+
// firstName: '',
|
|
33
|
+
// lastName: '',
|
|
34
|
+
// role: MEMBER_ROLE.explorer,
|
|
35
|
+
// email: '',
|
|
36
|
+
// activated: false,
|
|
37
|
+
readPreference: [],
|
|
38
|
+
maillist: []
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
function user() {
|
|
42
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initState;
|
|
43
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
44
|
+
var payload = action.payload;
|
|
45
|
+
|
|
46
|
+
switch (action.type) {
|
|
47
|
+
case _actionTypes["default"].user.update.request:
|
|
48
|
+
{
|
|
49
|
+
return _.merge({}, state, {
|
|
50
|
+
isFetching: true,
|
|
51
|
+
isReady: false
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
case _actionTypes["default"].user.update.success:
|
|
56
|
+
{
|
|
57
|
+
var readPreference = _.get(payload, 'data.record.read_preference', []);
|
|
58
|
+
|
|
59
|
+
var maillist = _.get(payload, 'data.record.maillist', []);
|
|
60
|
+
|
|
61
|
+
state.readPreference = readPreference;
|
|
62
|
+
state.maillist = maillist;
|
|
63
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
64
|
+
error: null,
|
|
65
|
+
isFetching: false,
|
|
66
|
+
isReady: true,
|
|
67
|
+
maillist: maillist,
|
|
68
|
+
readPreference: readPreference
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
case _actionTypes["default"].user.update.failure:
|
|
73
|
+
{
|
|
74
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
75
|
+
error: payload.error,
|
|
76
|
+
isFetching: false,
|
|
77
|
+
isReady: false
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
default:
|
|
82
|
+
return state;
|
|
83
|
+
}
|
|
84
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twreporter/redux",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.6.0-rc.0",
|
|
4
4
|
"description": "redux actions and reducers for twreporter website",
|
|
5
5
|
"repository": "https://github.com/twreporter/twreporter-npm-packages.git",
|
|
6
6
|
"author": "twreporter <developer@twreporter.org>",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"homepage": "https://github.com/twreporter/twreporter-redux/#readme",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@twreporter/core": "^1.10.0-rc.
|
|
28
|
+
"@twreporter/core": "^1.10.0-rc.2",
|
|
29
29
|
"axios": "^0.19.0",
|
|
30
30
|
"es6-error": "^4.0.2",
|
|
31
31
|
"humps": "^0.6.0",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"files": [
|
|
45
45
|
"lib"
|
|
46
46
|
],
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "7f423041f31558196c12a2cb438b506619bc5f68"
|
|
48
48
|
}
|