@@ -25,7 +25,24 @@ const ProjectAddMember = () => {
25
25
26
26
const { spaceName, projectName } = useParams ( ) ;
27
27
const [ projectMembers , setProjectMembers ] = useState < string [ ] > ( [ ] ) ;
28
- const [ orgMembers , setOrgMembers ] = useState < string [ ] > ( [ ] ) ;
28
+ const [ orgMembers , setOrgMembers ] = useState < string [ ] > ( [
29
+ 'kituuu' ,
30
+ 'karthik' ,
31
+ 'kartik' ,
32
+ 'kartar' ,
33
+ ] ) ;
34
+ const [ searchedMembers , setSearchedMembers ] = useState < string [ ] > ( [ ] ) ;
35
+
36
+ const filterMembers = ( search : string ) => {
37
+ let temp : string [ ] = [ ] ;
38
+ orgMembers . forEach ( ( member ) => {
39
+ if ( member . includes ( search ) ) {
40
+ temp . push ( member ) ;
41
+ }
42
+ } ) ;
43
+
44
+ setSearchedMembers ( temp ) ;
45
+ } ;
29
46
30
47
const dataFetch = async ( ) => {
31
48
try {
@@ -41,7 +58,7 @@ const ProjectAddMember = () => {
41
58
42
59
useEffect ( ( ) => {
43
60
dataFetch ( ) ;
44
- } , [ ] ) ;
61
+ } , [ memberName ] ) ;
45
62
46
63
const addMembers = ( ) => {
47
64
if ( memberName ) {
@@ -52,6 +69,8 @@ const ProjectAddMember = () => {
52
69
) {
53
70
setMembers ( [ ...members , memberName ] ) ;
54
71
setMemberName ( null ) ;
72
+ } else if ( projectMembers . includes ( memberName ) ) {
73
+ toast . error ( 'Member already exists in the project' ) ;
55
74
}
56
75
}
57
76
} ;
@@ -108,13 +127,31 @@ const ProjectAddMember = () => {
108
127
value = { memberName ? memberName : '' }
109
128
onChange = { ( e : ChangeEvent < HTMLInputElement > ) => {
110
129
setMemberName ( e . target . value ) ;
130
+ if ( memberName ) filterMembers ( memberName ) ;
111
131
} }
112
132
placeholder = 'Github ID of user'
113
133
/>
114
134
< button onClick = { addMembers } className = 'add-member-button' >
115
135
{ '+ Add' }
116
136
</ button >
117
137
</ div >
138
+ { memberName && searchedMembers . length > 0 && (
139
+ < div className = 'add-member-container member-search-result' >
140
+ { searchedMembers . map ( ( member , index ) => {
141
+ return (
142
+ < p
143
+ onClick = { ( ) => {
144
+ setMemberName ( member ) ;
145
+ setSearchedMembers ( [ ] ) ;
146
+ } }
147
+ key = { index }
148
+ >
149
+ { member }
150
+ </ p >
151
+ ) ;
152
+ } ) }
153
+ </ div >
154
+ ) }
118
155
</ div >
119
156
< div className = 'added-members' >
120
157
{ members . map ( ( member , index ) => {
0 commit comments