Skip to content

Commit e5a8ce4

Browse files
Merge pull request #5071 from OneCommunityGlobal/peterson-fix-user-email-not-showing
Peterson fix email column not displaying in user search
2 parents 6ee0b53 + 6a4e046 commit e5a8ce4

3 files changed

Lines changed: 46 additions & 22 deletions

File tree

src/components/Projects/Members/FoundUser/FoundUser.jsx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,22 @@ const FoundUser = props => {
1717
<div>{props.index + 1}</div>
1818
</th>
1919
<td className="foundUsers__order">
20-
<a href={`/userprofile/${props.uid}`} className={darkMode ? 'text-azure' : ''}>{props.firstName + ' ' + props.lastName}</a>
20+
<a href={`/userprofile/${props.uid}`}>
21+
{props.fullName}
22+
</a>
23+
</td>
24+
<td className="foundUsers__email">
25+
{props.email}
2126
</td>
22-
<td className="foundUsers__email">{props.email}</td>
2327
<td className="foundUsers__assign">
2428
{props.assigned ? (
2529
<span className="text-success">Assigned</span>
2630
) : (
2731
<button
2832
className="btn btn-outline-primary btn-sm"
2933
type="button"
30-
onClick={async e => {
31-
await props.assignProject(
32-
props.projectId,
33-
props.uid,
34-
'Assign',
35-
props.firstName,
36-
props.lastName,
37-
props.isActive,
38-
);
39-
// Optionally, trigger a refresh or update local state if needed
40-
// e.g., props.onAssigned && props.onAssigned(props.uid);
41-
}}
4234
style={darkMode ? {} : boxStyle}
35+
onClick={() => props.assignProject(props.projectId, props.uid, 'Assign', props.firstName, props.lastName, 'true')}
4336
>
4437
<i className="fa fa-plus" aria-hidden="true"></i>
4538
</button>

src/components/Projects/Members/FoundUser/__tests__/FoundUser.test.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ describe('FoundUser Component', () => {
3333
uid: 'user123',
3434
firstName: 'John',
3535
lastName: 'Smith',
36+
fullName: 'John Smith',
3637
isActive: 'true',
3738
email: 'john.smith@example.com',
3839
assigned: false,

src/components/Projects/Members/Members.jsx

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import { boxStyle, boxStyleDark } from '~/styles';
2222
import ToggleSwitch from '~/components/UserProfile/UserProfileEdit/ToggleSwitch';
2323
import Loading from '~/components/common/Loading';
2424
import { getProjectDetail } from '~/actions/project';
25+
import axios from 'axios';
26+
import { ENDPOINTS } from '~/utils/URL';
2527

2628
const Members = props => {
2729
const darkMode = props.state.theme.darkMode;
@@ -34,6 +36,37 @@ const Members = props => {
3436

3537
const [isLoading, setIsLoading] = useState(true);
3638

39+
const [allProfiles, setAllProfiles] = useState([]);
40+
41+
useEffect(() => {
42+
axios.get(ENDPOINTS.USER_PROFILES)
43+
.then(response => {
44+
setAllProfiles(response.data || []);
45+
})
46+
.catch(() => {
47+
setAllProfiles([]);
48+
});
49+
}, []);
50+
51+
const filteredUsers = searchText.trim()
52+
? allProfiles
53+
.filter(user => {
54+
const search = searchText.trim().toLowerCase();
55+
return (
56+
(user.firstName && user.firstName.toLowerCase().includes(search)) ||
57+
(user.lastName && user.lastName.toLowerCase().includes(search)) ||
58+
(user.email && user.email.toLowerCase().includes(search))
59+
);
60+
})
61+
.map(user => ({
62+
fullName: `${user.firstName || ''} ${user.lastName || ''}`.trim(),
63+
email: user.email,
64+
assigned: false,
65+
_id: user._id,
66+
}))
67+
.filter(user => !!user.email)
68+
: [];
69+
3770
const canAssignProjectToUsers = props.hasPermission('assignProjectToUsers');
3871
const canUnassignUserInProject = props.hasPermission('unassignUserInProject');
3972

@@ -232,13 +265,11 @@ const Members = props => {
232265

233266

234267

235-
{showFindUserList && props.state.projectMembers.foundUsers.length > 0 ? (
268+
{showFindUserList && filteredUsers.length > 0 && (
236269
<table className={`table table-bordered table-responsive-sm ${darkMode ? 'text-light' : ''}`}>
237270
<thead>
238271
<tr className={darkMode ? 'bg-space-cadet' : ''}>
239-
<th scope="col" id="foundUsers__order">
240-
#
241-
</th>
272+
<th scope="col" id="foundUsers__order">#</th>
242273
<th scope="col">Name</th>
243274
<th scope="col">Email</th>
244275
{canAssignProjectToUsers ? (
@@ -257,22 +288,21 @@ const Members = props => {
257288
</tr>
258289
</thead>
259290
<tbody>
260-
{props.state.projectMembers.foundUsers.map((user, i) => (
291+
{filteredUsers.map((user, i) => (
261292
<FoundUser
262293
index={i}
263294
key={user._id}
264295
projectId={projectId}
265296
uid={user._id}
297+
fullName={user.fullName}
266298
email={user.email}
267-
firstName={user.firstName}
268-
lastName={user.lastName}
269299
assigned={user.assigned}
270300
darkMode={darkMode}
271301
/>
272302
))}
273303
</tbody>
274304
</table>
275-
) : null}
305+
)}
276306

277307
<ToggleSwitch
278308
switchType="active_members"

0 commit comments

Comments
 (0)