feat(project-member-drawer): filter out already invited members from the selection list
- Implemented logic to filter available members by excluding those already part of the current project. - Updated the member selection dropdown to display only non-invited members, enhancing the user experience during the invitation process.
This commit is contained in:
@@ -33,6 +33,12 @@ const ProjectMemberDrawer = () => {
|
|||||||
const [members, setMembers] = useState<ITeamMembersViewModel>({ data: [], total: 0 });
|
const [members, setMembers] = useState<ITeamMembersViewModel>({ data: [], total: 0 });
|
||||||
const [teamMembersLoading, setTeamMembersLoading] = useState(false);
|
const [teamMembersLoading, setTeamMembersLoading] = useState(false);
|
||||||
|
|
||||||
|
// Filter out members already in the project
|
||||||
|
const currentProjectMemberIds = (currentMembersList || []).map(m => m.team_member_id).filter(Boolean);
|
||||||
|
const availableMembers = (members?.data || []).filter(
|
||||||
|
member => member.id && !currentProjectMemberIds.includes(member.id)
|
||||||
|
);
|
||||||
|
|
||||||
const fetchProjectMembers = async () => {
|
const fetchProjectMembers = async () => {
|
||||||
if (!projectId) return;
|
if (!projectId) return;
|
||||||
dispatch(getAllProjectMembers(projectId));
|
dispatch(getAllProjectMembers(projectId));
|
||||||
@@ -226,7 +232,7 @@ const ProjectMemberDrawer = () => {
|
|||||||
onSearch={handleSearch}
|
onSearch={handleSearch}
|
||||||
onChange={handleSelectChange}
|
onChange={handleSelectChange}
|
||||||
onKeyDown={handleKeyDown}
|
onKeyDown={handleKeyDown}
|
||||||
options={members?.data?.map(member => ({
|
options={availableMembers.map(member => ({
|
||||||
key: member.id,
|
key: member.id,
|
||||||
value: member.id,
|
value: member.id,
|
||||||
name: member.name,
|
name: member.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user