-
Notifications
You must be signed in to change notification settings - Fork 51
[PROD RELEASE] - Bug fixes #1648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
879c08c
0ebe42d
3cf1900
0493017
d673228
f089527
1fc4c52
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,7 @@ import { deleteProjectMemberInvite } from '../../services/projectMemberInvites' | |
import ConfirmationModal from '../Modal/ConfirmationModal' | ||
import UserAddModalContent from './user-add.modal' | ||
import InviteUserModalContent from './invite-user.modal' // Import the new component | ||
import Loader from '../Loader' | ||
|
||
const theme = { | ||
container: styles.modalContainer | ||
|
@@ -109,15 +110,15 @@ class Users extends Component { | |
async onRemoveConfirmClick () { | ||
if (this.state.isRemoving) { return } | ||
|
||
const { removeProjectNember, invitedMembers } = this.props | ||
const { removeProjectMember, invitedMembers } = this.props | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typo fix: The variable |
||
const userToRemove = this.state.userToRemove | ||
const isInvite = !!_.find(invitedMembers, { email: userToRemove.email }) | ||
try { | ||
this.setState({ isRemoving: true }) | ||
await ( | ||
isInvite ? deleteProjectMemberInvite(userToRemove.projectId, userToRemove.id) : removeUserFromProject(userToRemove.projectId, userToRemove.id) | ||
) | ||
removeProjectNember(userToRemove) | ||
removeProjectMember(userToRemove) | ||
|
||
this.resetRemoveUserState() | ||
} catch (e) { | ||
|
@@ -156,11 +157,12 @@ class Users extends Component { | |
projects, | ||
projectMembers, | ||
invitedMembers, | ||
updateProjectNember, | ||
updateProjectMember, | ||
isEditable, | ||
isSearchingUserProjects, | ||
resultSearchUserProjects, | ||
loadNextProjects | ||
loadNextProjects, | ||
isLoadingProject | ||
} = this.props | ||
const { | ||
searchKey | ||
|
@@ -251,7 +253,7 @@ class Users extends Component { | |
) | ||
} | ||
{ | ||
membersExist && ( | ||
!isLoadingProject && membersExist && ( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider checking the |
||
<> | ||
<div className={styles.header}> | ||
<div className={cn(styles.col5)}> | ||
|
@@ -278,7 +280,7 @@ class Users extends Component { | |
<UserCard | ||
user={member} | ||
onRemoveClick={this.onRemoveClick} | ||
updateProjectNember={updateProjectNember} | ||
updateProjectMember={updateProjectMember} | ||
isEditable={isEditable} /> | ||
</li> | ||
) | ||
|
@@ -294,7 +296,7 @@ class Users extends Component { | |
isInvite | ||
user={member} | ||
onRemoveClick={this.onRemoveClick} | ||
updateProjectNember={updateProjectNember} | ||
updateProjectMember={updateProjectMember} | ||
isEditable={isEditable} /> | ||
</li> | ||
) | ||
|
@@ -305,15 +307,17 @@ class Users extends Component { | |
) | ||
} | ||
|
||
{isLoadingProject && <Loader />} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider adding a conditional rendering check to ensure that the |
||
|
||
</div> | ||
) | ||
} | ||
} | ||
|
||
Users.propTypes = { | ||
loadProject: PropTypes.func.isRequired, | ||
updateProjectNember: PropTypes.func.isRequired, | ||
removeProjectNember: PropTypes.func.isRequired, | ||
updateProjectMember: PropTypes.func.isRequired, | ||
removeProjectMember: PropTypes.func.isRequired, | ||
addNewProjectInvite: PropTypes.func.isRequired, | ||
addNewProjectMember: PropTypes.func.isRequired, | ||
auth: PropTypes.object, | ||
|
@@ -322,6 +326,7 @@ Users.propTypes = { | |
projects: PropTypes.arrayOf(PropTypes.object), | ||
projectMembers: PropTypes.arrayOf(PropTypes.object), | ||
invitedMembers: PropTypes.arrayOf(PropTypes.object), | ||
isLoadingProject: PropTypes.bool.isRequired, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of |
||
searchUserProjects: PropTypes.func.isRequired, | ||
resultSearchUserProjects: PropTypes.arrayOf(PropTypes.object), | ||
loadNextProjects: PropTypes.func.isRequired | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,11 +21,12 @@ class Users extends Component { | |
loginUserRoleInProject: '', | ||
projectMembers: null, | ||
invitedMembers: null, | ||
isAdmin: false | ||
isAdmin: false, | ||
isLoadingProject: false | ||
} | ||
this.loadProject = this.loadProject.bind(this) | ||
this.updateProjectNember = this.updateProjectNember.bind(this) | ||
this.removeProjectNember = this.removeProjectNember.bind(this) | ||
this.updateProjectMember = this.updateProjectMember.bind(this) | ||
this.removeProjectMember = this.removeProjectMember.bind(this) | ||
this.addNewProjectInvite = this.addNewProjectInvite.bind(this) | ||
this.addNewProjectMember = this.addNewProjectMember.bind(this) | ||
this.loadNextProjects = this.loadNextProjects.bind(this) | ||
|
@@ -80,9 +81,10 @@ class Users extends Component { | |
} | ||
|
||
loadProject (projectId) { | ||
this.setState({ isLoadingProject: true }) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider handling potential errors from |
||
fetchProjectById(projectId).then(async (project) => { | ||
const projectMembers = _.get(project, 'members') | ||
const invitedMembers = _.get(project, 'invites') | ||
const invitedMembers = _.get(project, 'invites') || [] | ||
const invitedUserIds = _.filter(_.map(invitedMembers, 'userId')) | ||
const invitedUsers = await fetchInviteMembers(invitedUserIds) | ||
|
||
|
@@ -91,14 +93,15 @@ class Users extends Component { | |
invitedMembers: invitedMembers.map(m => ({ | ||
...m, | ||
email: m.email || invitedUsers[m.userId].handle | ||
})) | ||
})), | ||
isLoadingProject: false | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The addition of |
||
}) | ||
const { loggedInUser } = this.props | ||
this.updateLoginUserRoleInProject(projectMembers, loggedInUser) | ||
}) | ||
} | ||
|
||
updateProjectNember (newMemberInfo) { | ||
updateProjectMember (newMemberInfo) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The function name |
||
const { projectMembers } = this.state | ||
const newProjectMembers = projectMembers.map(pm => pm.id === newMemberInfo.id ? ({ | ||
...pm, | ||
|
@@ -111,7 +114,7 @@ class Users extends Component { | |
this.updateLoginUserRoleInProject(newProjectMembers, loggedInUser) | ||
} | ||
|
||
removeProjectNember (projectMember) { | ||
removeProjectMember (projectMember) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typo fix: The method name was corrected from |
||
const { projectMembers, invitedMembers } = this.state | ||
const newProjectMembers = _.filter(projectMembers, pm => pm.id !== projectMember.id) | ||
const newInvitedMembers = _.filter(invitedMembers, pm => pm.id !== projectMember.id) | ||
|
@@ -156,19 +159,21 @@ class Users extends Component { | |
const { | ||
projectMembers, | ||
invitedMembers, | ||
isAdmin | ||
isAdmin, | ||
isLoadingProject | ||
} = this.state | ||
return ( | ||
<UsersComponent | ||
projects={projects} | ||
loadProject={this.loadProject} | ||
updateProjectNember={this.updateProjectNember} | ||
removeProjectNember={this.removeProjectNember} | ||
updateProjectMember={this.updateProjectMember} | ||
removeProjectMember={this.removeProjectMember} | ||
addNewProjectMember={this.addNewProjectMember} | ||
addNewProjectInvite={this.addNewProjectInvite} | ||
loadNextProjects={this.loadNextProjects} | ||
projectMembers={projectMembers} | ||
invitedMembers={invitedMembers} | ||
isLoadingProject={isLoadingProject} | ||
auth={auth} | ||
isAdmin={isAdmin} | ||
isEditable={this.isEditable()} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo fix: The variable
updateProjectNember
was corrected toupdateProjectMember
. Ensure that all references to this function are updated throughout the codebase to prevent any potential errors.