Skip to content

Commit 5ec8be2

Browse files
committed
Merge branch 'dev' into cloudfrontavatar
2 parents 5e72589 + 34e8439 commit 5ec8be2

File tree

5 files changed

+31
-16
lines changed

5 files changed

+31
-16
lines changed

src/api/projects.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export function getProjectById(projectId) {
5656
_.forEach(res.attachments, a => {
5757
a.downloadUrl = `/projects/${projectId}/attachments/${a.id}`
5858
})
59+
if (!res.invites) res.invites = []
5960
return res
6061
})
6162
}

src/config/constants.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,11 @@ export const ACCEPT_OR_REFUSE_INVITE_PENDING = 'ACCEPT_OR_REFUSE_INVITE_PENDING'
346346
export const ACCEPT_OR_REFUSE_INVITE_FAILURE = 'ACCEPT_OR_REFUSE_INVITE_FAILURE'
347347
export const ACCEPT_OR_REFUSE_INVITE_SUCCESS = 'ACCEPT_OR_REFUSE_INVITE_SUCCESS'
348348

349+
export const RELOAD_PROJECT_MEMBERS = 'RELOAD_PROJECT_MEMBERS'
350+
export const RELOAD_PROJECT_MEMBERS_PENDING = 'RELOAD_PROJECT_MEMBERS_PENDING'
351+
export const RELOAD_PROJECT_MEMBERS_FAILURE = 'RELOAD_PROJECT_MEMBERS_FAILURE'
352+
export const RELOAD_PROJECT_MEMBERS_SUCCESS = 'RELOAD_PROJECT_MEMBERS_SUCCESS'
353+
349354
export const ADD_PROJECT_MEMBERS = 'ADD_PROJECT_MEMBERS'
350355
export const ADD_PROJECT_MEMBERS_PENDING = 'ADD_PROJECT_MEMBERS_PENDING'
351356
export const ADD_PROJECT_MEMBERS_SUCCESS = 'ADD_PROJECT_MEMBERS_SUCCESS'

src/projects/actions/projectMember.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { addProjectMember as addMember,
66
import { createProjectMemberInvite as createProjectMemberInvite,
77
updateProjectMemberInvite as updateProjectMemberInvite
88
} from '../../api/projectMemberInvites'
9-
import { loadProjectDashboard } from './projectDashboard'
9+
import { getProjectById } from '../../api/projects'
1010
import { loadMembers, loadMembersByHandle } from '../../actions/members'
1111

1212
import {ADD_PROJECT_MEMBER, REMOVE_PROJECT_MEMBER, UPDATE_PROJECT_MEMBER,
@@ -17,7 +17,8 @@ import {ADD_PROJECT_MEMBER, REMOVE_PROJECT_MEMBER, UPDATE_PROJECT_MEMBER,
1717
INVITE_CUSTOMER,
1818
ACCEPT_OR_REFUSE_INVITE,
1919
PROJECT_ROLE_CUSTOMER,
20-
PROJECT_MEMBER_INVITE_STATUS_CANCELED
20+
PROJECT_MEMBER_INVITE_STATUS_CANCELED,
21+
RELOAD_PROJECT_MEMBERS
2122
} from '../../config/constants'
2223

2324

@@ -141,22 +142,20 @@ export function inviteProjectMembers(projectId, emailIds, handles) {
141142
}
142143
}
143144

144-
145-
function acceptOrRefuseInviteWithData(dispatch, projectId, item) {
146-
return new Promise((resolve, reject) => {
147-
return updateProjectMemberInvite(projectId, item)
148-
.then(() => {
149-
return dispatch(loadProjectDashboard(projectId))
150-
})
151-
.catch(err => reject(err))
152-
})
153-
}
154-
155145
export function acceptOrRefuseInvite(projectId, item) {
156146
return (dispatch) => {
157147
return dispatch({
158148
type: ACCEPT_OR_REFUSE_INVITE,
159-
payload: acceptOrRefuseInviteWithData(dispatch, projectId, item)
149+
payload: updateProjectMemberInvite(projectId, item)
150+
})
151+
}
152+
}
153+
154+
export function reloadProjectMembers(projectId) {
155+
return (dispatch) => {
156+
return dispatch({
157+
type: RELOAD_PROJECT_MEMBERS,
158+
payload: getProjectById(projectId)
160159
})
161160
}
162161
}

src/projects/detail/containers/TeamManagementContainer.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
import TeamManagement from '../../../components/TeamManagement/TeamManagement'
1919
import {
2020
acceptOrRefuseInvite,
21+
reloadProjectMembers,
2122
addProjectMember,
2223
deleteProjectInvite,
2324
deleteTopcoderMemberInvite,
@@ -103,6 +104,7 @@ class TeamManagementContainer extends Component {
103104

104105
onAcceptOrRefuse(invite) {
105106
this.props.acceptOrRefuseInvite(this.props.projectId, invite)
107+
.then(() => this.props.reloadProjectMembers(this.props.projectId))
106108
}
107109

108110
changeRole(memberId, item) {
@@ -243,6 +245,7 @@ const mapDispatchToProps = {
243245
inviteTopcoderMembers,
244246
deleteTopcoderMemberInvite,
245247
acceptOrRefuseInvite,
248+
reloadProjectMembers,
246249
}
247250

248251
TeamManagementContainer.propTypes = {

src/projects/reducers/project.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
INVITE_TOPCODER_MEMBER_SUCCESS, REMOVE_TOPCODER_MEMBER_INVITE_SUCCESS, INVITE_TOPCODER_MEMBER_PENDING, REMOVE_CUSTOMER_INVITE_PENDING,
2020
REMOVE_TOPCODER_MEMBER_INVITE_PENDING, REMOVE_TOPCODER_MEMBER_INVITE_FAILURE, REMOVE_CUSTOMER_INVITE_FAILURE,
2121
INVITE_CUSTOMER_FAILURE, INVITE_TOPCODER_MEMBER_FAILURE, INVITE_CUSTOMER_PENDING,
22-
ACCEPT_OR_REFUSE_INVITE_SUCCESS, ACCEPT_OR_REFUSE_INVITE_FAILURE, ACCEPT_OR_REFUSE_INVITE_PENDING,
22+
ACCEPT_OR_REFUSE_INVITE_SUCCESS, ACCEPT_OR_REFUSE_INVITE_FAILURE, ACCEPT_OR_REFUSE_INVITE_PENDING, RELOAD_PROJECT_MEMBERS_SUCCESS,
2323
UPLOAD_PROJECT_ATTACHMENT_FILES, DISCARD_PROJECT_ATTACHMENT, CHANGE_ATTACHMENT_PERMISSION
2424
} from '../../config/constants'
2525
import _ from 'lodash'
@@ -182,7 +182,14 @@ export const projectState = function (state=initialState, action) {
182182

183183
case ACCEPT_OR_REFUSE_INVITE_SUCCESS: {
184184
return Object.assign({}, state, {
185-
showUserInvited: false
185+
showUserInvited: false,
186+
project: action.payload
187+
})
188+
}
189+
190+
case RELOAD_PROJECT_MEMBERS_SUCCESS: {
191+
return Object.assign({}, state, {
192+
project: action.payload
186193
})
187194
}
188195

0 commit comments

Comments
 (0)