From 879c08ce7e677ebf6f03eb4433e02bb4f4970e8b Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Thu, 24 Apr 2025 22:30:37 +0200 Subject: [PATCH 1/5] fix: search broken in projects --- src/components/ProjectCard/index.js | 1 + src/config/constants.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/components/ProjectCard/index.js b/src/components/ProjectCard/index.js index 97376dc4..f9a25956 100644 --- a/src/components/ProjectCard/index.js +++ b/src/components/ProjectCard/index.js @@ -9,6 +9,7 @@ import { PROJECT_STATUSES } from '../../config/constants' import styles from './ProjectCard.module.scss' const ProjectCard = ({ projectName, projectStatus, projectId, selected, isInvited }) => { + console.log(find(PROJECT_STATUSES, { value: projectStatus }), projectStatus, projectName, projectId) return (
Date: Thu, 24 Apr 2025 22:32:04 +0200 Subject: [PATCH 2/5] removed console log --- src/components/ProjectCard/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/ProjectCard/index.js b/src/components/ProjectCard/index.js index f9a25956..97376dc4 100644 --- a/src/components/ProjectCard/index.js +++ b/src/components/ProjectCard/index.js @@ -9,7 +9,6 @@ import { PROJECT_STATUSES } from '../../config/constants' import styles from './ProjectCard.module.scss' const ProjectCard = ({ projectName, projectStatus, projectId, selected, isInvited }) => { - console.log(find(PROJECT_STATUSES, { value: projectStatus }), projectStatus, projectName, projectId) return (
Date: Fri, 25 Apr 2025 19:14:42 +0200 Subject: [PATCH 3/5] fix: show spinner when changing between projects --- src/components/Users/index.js | 9 +++++++-- src/containers/Users/index.js | 13 +++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/components/Users/index.js b/src/components/Users/index.js index 3d00edc0..609bcdbf 100644 --- a/src/components/Users/index.js +++ b/src/components/Users/index.js @@ -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 @@ -160,7 +161,8 @@ class Users extends Component { isEditable, isSearchingUserProjects, resultSearchUserProjects, - loadNextProjects + loadNextProjects, + isLoadingProject } = this.props const { searchKey @@ -251,7 +253,7 @@ class Users extends Component { ) } { - membersExist && ( + !isLoadingProject && membersExist && ( <>
@@ -305,6 +307,8 @@ class Users extends Component { ) } + {isLoadingProject && } +
) } @@ -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, searchUserProjects: PropTypes.func.isRequired, resultSearchUserProjects: PropTypes.arrayOf(PropTypes.object), loadNextProjects: PropTypes.func.isRequired diff --git a/src/containers/Users/index.js b/src/containers/Users/index.js index 08ee1f01..25f13821 100644 --- a/src/containers/Users/index.js +++ b/src/containers/Users/index.js @@ -21,7 +21,8 @@ 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) @@ -80,9 +81,10 @@ class Users extends Component { } loadProject (projectId) { + this.setState({ isLoadingProject: true }) 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,7 +93,8 @@ class Users extends Component { invitedMembers: invitedMembers.map(m => ({ ...m, email: m.email || invitedUsers[m.userId].handle - })) + })), + isLoadingProject: false }) const { loggedInUser } = this.props this.updateLoginUserRoleInProject(projectMembers, loggedInUser) @@ -156,7 +159,8 @@ class Users extends Component { const { projectMembers, invitedMembers, - isAdmin + isAdmin, + isLoadingProject } = this.state return ( Date: Mon, 12 May 2025 20:46:18 +0200 Subject: [PATCH 4/5] fix: typo for updateProjectMember --- src/components/UserCard/index.js | 6 +++--- src/components/Users/index.js | 8 ++++---- src/containers/Users/index.js | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/UserCard/index.js b/src/components/UserCard/index.js index ef79ce82..58b30ab7 100644 --- a/src/components/UserCard/index.js +++ b/src/components/UserCard/index.js @@ -42,11 +42,11 @@ class UserCard extends Component { isUpdatingPermission: true }) - const { user, updateProjectNember } = this.props + const { user, updateProjectMember } = this.props try { const newUserInfoRole = await updateProjectMemberRole(user.projectId, user.id, newRole) - updateProjectNember(newUserInfoRole) + updateProjectMember(newUserInfoRole) this.setState({ showSuccessModal: true }) } catch (e) { const error = _.get( @@ -190,7 +190,7 @@ class UserCard extends Component { UserCard.propTypes = { isInvite: PropTypes.bool, user: PropTypes.object, - updateProjectNember: PropTypes.func.isRequired, + updateProjectMember: PropTypes.func.isRequired, onRemoveClick: PropTypes.func.isRequired, isEditable: PropTypes.bool } diff --git a/src/components/Users/index.js b/src/components/Users/index.js index 609bcdbf..7027258a 100644 --- a/src/components/Users/index.js +++ b/src/components/Users/index.js @@ -157,7 +157,7 @@ class Users extends Component { projects, projectMembers, invitedMembers, - updateProjectNember, + updateProjectMember, isEditable, isSearchingUserProjects, resultSearchUserProjects, @@ -280,7 +280,7 @@ class Users extends Component { ) @@ -296,7 +296,7 @@ class Users extends Component { isInvite user={member} onRemoveClick={this.onRemoveClick} - updateProjectNember={updateProjectNember} + updateProjectMember={updateProjectMember} isEditable={isEditable} /> ) @@ -316,7 +316,7 @@ class Users extends Component { Users.propTypes = { loadProject: PropTypes.func.isRequired, - updateProjectNember: PropTypes.func.isRequired, + updateProjectMember: PropTypes.func.isRequired, removeProjectNember: PropTypes.func.isRequired, addNewProjectInvite: PropTypes.func.isRequired, addNewProjectMember: PropTypes.func.isRequired, diff --git a/src/containers/Users/index.js b/src/containers/Users/index.js index 25f13821..ef5471b5 100644 --- a/src/containers/Users/index.js +++ b/src/containers/Users/index.js @@ -25,7 +25,7 @@ class Users extends Component { isLoadingProject: false } this.loadProject = this.loadProject.bind(this) - this.updateProjectNember = this.updateProjectNember.bind(this) + this.updateProjectMember = this.updateProjectMember.bind(this) this.removeProjectNember = this.removeProjectNember.bind(this) this.addNewProjectInvite = this.addNewProjectInvite.bind(this) this.addNewProjectMember = this.addNewProjectMember.bind(this) @@ -101,7 +101,7 @@ class Users extends Component { }) } - updateProjectNember (newMemberInfo) { + updateProjectMember (newMemberInfo) { const { projectMembers } = this.state const newProjectMembers = projectMembers.map(pm => pm.id === newMemberInfo.id ? ({ ...pm, @@ -166,7 +166,7 @@ class Users extends Component { Date: Mon, 12 May 2025 21:12:19 +0200 Subject: [PATCH 5/5] fix: typo --- src/components/Users/index.js | 6 +++--- src/containers/Users/index.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/Users/index.js b/src/components/Users/index.js index 7027258a..5ddc2e67 100644 --- a/src/components/Users/index.js +++ b/src/components/Users/index.js @@ -110,7 +110,7 @@ class Users extends Component { async onRemoveConfirmClick () { if (this.state.isRemoving) { return } - const { removeProjectNember, invitedMembers } = this.props + const { removeProjectMember, invitedMembers } = this.props const userToRemove = this.state.userToRemove const isInvite = !!_.find(invitedMembers, { email: userToRemove.email }) try { @@ -118,7 +118,7 @@ class Users extends Component { await ( isInvite ? deleteProjectMemberInvite(userToRemove.projectId, userToRemove.id) : removeUserFromProject(userToRemove.projectId, userToRemove.id) ) - removeProjectNember(userToRemove) + removeProjectMember(userToRemove) this.resetRemoveUserState() } catch (e) { @@ -317,7 +317,7 @@ class Users extends Component { Users.propTypes = { loadProject: PropTypes.func.isRequired, updateProjectMember: PropTypes.func.isRequired, - removeProjectNember: PropTypes.func.isRequired, + removeProjectMember: PropTypes.func.isRequired, addNewProjectInvite: PropTypes.func.isRequired, addNewProjectMember: PropTypes.func.isRequired, auth: PropTypes.object, diff --git a/src/containers/Users/index.js b/src/containers/Users/index.js index ef5471b5..ab6b39f6 100644 --- a/src/containers/Users/index.js +++ b/src/containers/Users/index.js @@ -26,7 +26,7 @@ class Users extends Component { } this.loadProject = this.loadProject.bind(this) this.updateProjectMember = this.updateProjectMember.bind(this) - this.removeProjectNember = this.removeProjectNember.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) @@ -114,7 +114,7 @@ class Users extends Component { this.updateLoginUserRoleInProject(newProjectMembers, loggedInUser) } - removeProjectNember (projectMember) { + removeProjectMember (projectMember) { const { projectMembers, invitedMembers } = this.state const newProjectMembers = _.filter(projectMembers, pm => pm.id !== projectMember.id) const newInvitedMembers = _.filter(invitedMembers, pm => pm.id !== projectMember.id) @@ -167,7 +167,7 @@ class Users extends Component { projects={projects} loadProject={this.loadProject} updateProjectMember={this.updateProjectMember} - removeProjectNember={this.removeProjectNember} + removeProjectMember={this.removeProjectMember} addNewProjectMember={this.addNewProjectMember} addNewProjectInvite={this.addNewProjectInvite} loadNextProjects={this.loadNextProjects}