diff --git a/__tests__/__snapshots__/index.js.snap b/__tests__/__snapshots__/index.js.snap
index fb0ba447..19789173 100644
--- a/__tests__/__snapshots__/index.js.snap
+++ b/__tests__/__snapshots__/index.js.snap
@@ -86,6 +86,7 @@ Object {
"addSkillInit": [Function],
"addWebLinkDone": [Function],
"addWebLinkInit": [Function],
+ "clearProfile": [Function],
"deletePhotoDone": [Function],
"deletePhotoInit": [Function],
"deleteWebLinkDone": [Function],
diff --git a/__tests__/actions/__snapshots__/profile.js.snap b/__tests__/actions/__snapshots__/profile.js.snap
index 17e184aa..47b779ea 100644
--- a/__tests__/actions/__snapshots__/profile.js.snap
+++ b/__tests__/actions/__snapshots__/profile.js.snap
@@ -7,6 +7,7 @@ Object {
"addSkillInit": [Function],
"addWebLinkDone": [Function],
"addWebLinkInit": [Function],
+ "clearProfile": [Function],
"deletePhotoDone": [Function],
"deletePhotoInit": [Function],
"deleteWebLinkDone": [Function],
diff --git a/docs/actions.profile.md b/docs/actions.profile.md
index e84440c2..3b2bb991 100644
--- a/docs/actions.profile.md
+++ b/docs/actions.profile.md
@@ -11,6 +11,7 @@ Actions for interactions with profile details API.
* [actions.profile](#module_actions.profile)
* [.loadProfile(handle)](#module_actions.profile.loadProfile) ⇒ Action
+ * [.clearProfile()](#module_actions.profile.clearProfile) ⇒ Action
* [.getAchievementsInit()](#module_actions.profile.getAchievementsInit) ⇒ Action
* [.getAchievementsDone(handle)](#module_actions.profile.getAchievementsDone) ⇒ Action
* [.getExternalAccountsInit()](#module_actions.profile.getExternalAccountsInit) ⇒ Action
@@ -67,6 +68,17 @@ Creates and action that loads user profile.
| --- | --- | --- |
| handle | String
| User handle. |
+
+
+### actions.profile.clearProfile() ⇒ Action
+Creates and action that clear user profile.
+
+**Kind**: static method of [actions.profile
](#module_actions.profile)
+**Todo**
+
+- [ ] This action does not follow the pattern with init/done pairs of
+ actions. Should be improved.
+
### actions.profile.getAchievementsInit() ⇒ Action
diff --git a/package-lock.json b/package-lock.json
index 09570569..26c39869 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "topcoder-react-lib",
- "version": "0.4.8",
+ "version": "0.4.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 05dfd084..88903a7f 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .",
"test": "npm run lint && npm run jest"
},
- "version": "0.4.8",
+ "version": "0.4.9",
"dependencies": {
"auth0-js": "^6.8.4",
"isomorphic-fetch": "^2.2.1",
diff --git a/src/actions/profile.js b/src/actions/profile.js
index 69c4cb99..58dc2cbf 100644
--- a/src/actions/profile.js
+++ b/src/actions/profile.js
@@ -5,7 +5,7 @@
* should be refactored to avoid redundancy.
*/
import { createActions } from 'redux-actions';
-
+import _ from 'lodash';
import { getService as getUserService } from '../services/user';
import { getService as getMembersService } from '../services/members';
@@ -415,6 +415,7 @@ function updatePasswordDone(profile, tokenV3, newPassword, oldPassword) {
export default createActions({
PROFILE: {
LOAD_PROFILE: loadProfile,
+ CLEAR_PROFILE: _.noop,
GET_ACHIEVEMENTS_INIT: getAchievementsInit,
GET_ACHIEVEMENTS_DONE: getAchievementsDone,
GET_EXTERNAL_ACCOUNTS_INIT: getExternalAccountsInit,
diff --git a/src/reducers/profile.js b/src/reducers/profile.js
index 1fb3bddc..12c734c5 100644
--- a/src/reducers/profile.js
+++ b/src/reducers/profile.js
@@ -432,6 +432,9 @@ function onUpdatePasswordDone(state, { payload, error }) {
function create(initialState) {
const a = actions.profile;
return handleActions({
+ [a.clearProfile]: state => ({
+ ...state, achievements: null, country: '', info: null, skills: null, stats: null,
+ }),
[a.loadProfile]: (state, action) => ({ ...state, profileForHandle: action.payload }),
[a.getAchievementsInit]: state => state,
[a.getAchievementsDone]: onGetAchievementsDone,