Skip to content

Commit 77983b2

Browse files
authored
Merge pull request #1067 from FaheemOnHub/fix/meshery-cloud-3567/viewModal
fix: view-modal fails to hold multiple entries at once across whole cloud ui.
2 parents 6ceb4bf + c373f9a commit 77983b2

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

src/custom/UserSearchField/UserSearchFieldInput.tsx

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { iconSmall } from '../../constants/iconsSizes';
1919
import { CloseIcon, PersonIcon } from '../../icons';
2020

2121
interface User {
22-
id: string;
22+
user_id: string;
2323
first_name: string;
2424
last_name: string;
2525
email: string;
@@ -47,21 +47,21 @@ interface UserSearchFieldProps {
4747
}
4848

4949
const UserSearchField: React.FC<UserSearchFieldProps> = ({
50-
usersData,
51-
setUsersData,
50+
usersData, //updatedOrgUsers
51+
setUsersData, //setupdatedOrgUsers
5252
label = 'Add User',
5353
setDisableSave,
5454
handleNotifyPref,
5555
notifyUpdate,
5656
isCreate,
5757
searchType,
5858
disabled = false,
59-
currentUserData,
60-
searchedUsers = [],
59+
currentUserData, //current logged in user data
60+
searchedUsers = [], //users result by api
6161
isUserSearchLoading,
62-
fetchSearchedUsers,
63-
usersSearch,
64-
setUsersSearch
62+
fetchSearchedUsers, //function to perform search
63+
usersSearch, //username value
64+
setUsersSearch //state to modify username value
6565
}) => {
6666
const [error, setError] = useState('');
6767
const [open, setOpen] = useState(false);
@@ -80,10 +80,7 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
8080
}
8181

8282
const filteredResults = searchedUsers.filter(
83-
(user: User) =>
84-
user.id !== currentUserData?.id &&
85-
!localUsersData.some((selectedUser) => selectedUser.id === user.id) &&
86-
!user.deleted_at?.Valid
83+
(user: User) => user.user_id !== currentUserData?.user_id
8784
);
8885

8986
if (!usersSearch && currentUserData) {
@@ -97,7 +94,7 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
9794
(idToDelete: string, event: React.MouseEvent) => {
9895
event.stopPropagation();
9996

100-
const updatedUsers = localUsersData.filter((user) => user.id !== idToDelete);
97+
const updatedUsers = localUsersData.filter((user) => user.user_id !== idToDelete);
10198
setLocalUsersData(updatedUsers);
10299
setUsersData(updatedUsers);
103100

@@ -112,7 +109,7 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
112109
(event: React.SyntheticEvent<Element, Event>, value: User | null) => {
113110
if (!value) return;
114111

115-
const isDuplicate = localUsersData.some((user) => user.id === value.id);
112+
const isDuplicate = localUsersData.some((user) => user.user_id === value.user_id);
116113
const isDeleted = value.deleted_at?.Valid === true;
117114

118115
if (isDuplicate || isDeleted) {
@@ -152,7 +149,6 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
152149
},
153150
[fetchSearchedUsers]
154151
);
155-
156152
return (
157153
<>
158154
<Autocomplete
@@ -161,7 +157,7 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
161157
open={open}
162158
options={displayOptions}
163159
getOptionLabel={() => inputValue}
164-
isOptionEqualToValue={(option, value) => option.id === value.id}
160+
isOptionEqualToValue={(option, value) => option.user_id === value.user_id}
165161
onOpen={() => setOpen(true)}
166162
onClose={() => setOpen(false)}
167163
inputValue={inputValue}
@@ -211,7 +207,7 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
211207
/>
212208
)}
213209
renderOption={(props, option: User) => (
214-
<li {...props} id={option.id}>
210+
<li {...props} id={option.user_id}>
215211
<Box sx={{ '& > img': { mr: 2, flexShrink: 0 } }}>
216212
{' '}
217213
<Grid2 container alignItems="center">
@@ -270,14 +266,14 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
270266
>
271267
{!showAllUsers && localUsersData?.[0] && (
272268
<Chip
273-
key={localUsersData[0].id}
269+
key={localUsersData[0].user_id}
274270
avatar={
275271
<Avatar alt={localUsersData[0].first_name} src={localUsersData[0].avatar_url}>
276272
{!localUsersData[0].avatar_url && localUsersData[0].first_name?.[0]}
277273
</Avatar>
278274
}
279275
label={localUsersData[0].email}
280-
onDelete={(e) => handleDelete(localUsersData[0].id, e)}
276+
onDelete={(e) => handleDelete(localUsersData[0].user_id, e)}
281277
deleteIcon={
282278
<Tooltip title="Remove user">
283279
<CloseIcon style={iconSmall} />
@@ -290,14 +286,14 @@ const UserSearchField: React.FC<UserSearchFieldProps> = ({
290286
{showAllUsers &&
291287
localUsersData?.map((user) => (
292288
<Chip
293-
key={user.id}
289+
key={user.user_id}
294290
avatar={
295291
<Avatar alt={user.first_name} src={user.avatar_url}>
296292
{!user.avatar_url && user.first_name?.[0]}
297293
</Avatar>
298294
}
299295
label={user.email}
300-
onDelete={(e) => handleDelete(user.id, e)}
296+
onDelete={(e) => handleDelete(user.user_id, e)}
301297
deleteIcon={
302298
<Tooltip title="Remove user">
303299
<CloseIcon style={iconSmall} />

0 commit comments

Comments
 (0)