@@ -10,19 +10,16 @@ type Props = {
1010} ;
1111const BasicDetails = ( props : Props ) => {
1212 const [ editIg , setEditIg ] = useState ( false ) ;
13- const [ allIg , setAllIg ] = useState < any [ ] > ( [ ] ) ;
14- const [ ig , setIg ] = useState < any [ ] > ( props . userProfile . interest_groups ) ;
13+ const [ allIg , setAllIg ] = useState < any > ( [ ] ) ;
1514
15+ const [ ig , setIg ] = useState < any > ( props . userProfile . interest_groups ) ;
1616 const { id } = useParams < { id : string } > ( ) ;
1717 useEffect ( ( ) => {
1818 getAllIg ( setAllIg ) ;
1919 } , [ ] ) ;
20- const ig_sorted = [ ...ig ]
21- . filter ( ( ig ) => ig . selected )
22- . sort ( ( a , b ) => a . name . localeCompare ( b . name ) ) ;
23-
24- const capitalize = ( text = "" ) =>
25- text . charAt ( 0 ) . toUpperCase ( ) + text . slice ( 1 ) ;
20+ const ig_sorted = ig . sort ( ( a : any , b : any ) => {
21+ return a . name > b . name ? 1 : - 1 ;
22+ } ) ;
2623
2724 return (
2825 < >
@@ -73,118 +70,106 @@ const BasicDetails = (props: Props) => {
7370 </ div >
7471 </ div >
7572 < div className = { styles . igs_container } >
76- { ig_sorted . length > 0 ? (
77- ig_sorted . map ( ( data : any , i : number ) => (
78- < div
79- key = { i }
80- style = { editIg ? { transform : "scale(0.955)" } : { } }
81- className = { styles . igs }
82- >
83- { editIg && (
84- < i
85- onClick = { ( ) => {
86- if ( ig_sorted . length > 1 ) {
87- setIg ( ( prev ) =>
88- prev . map ( ( item ) =>
89- item . name === data . name
90- ? { ...item , selected : false }
91- : item
92- )
93- ) ;
94- } else {
95- toast . error (
96- "You must have at least one interest group"
97- ) ;
98- }
99- } }
100- className = "fi fi-sr-circle-xmark"
101- > </ i >
102- ) }
103- < div className = { styles . igText } >
104- < span className = { styles . igName } > { data . name } </ span >
105- < span className = { styles . igKarma } >
106- Karma:{ " " }
107- { data . karma != null && data . karma > 1000
108- ? ( data . karma / 1000 ) . toPrecision ( 2 ) + "K"
109- : data . karma ?? "0" }
110- </ span >
73+ { props . userProfile . interest_groups . length !== 0 ? (
74+ ig . map ( ( data : any , i : number ) => {
75+ return (
76+ < div
77+ style = {
78+ editIg
79+ ? {
80+ transform : "scale(0.955)"
81+ }
82+ : { }
83+ }
84+ className = { styles . igs }
85+ key = { i }
86+ >
87+ { editIg && (
88+ < i
89+ onClick = { ( ) => {
90+ if ( ig . length > 1 ) {
91+ setIg (
92+ ig . filter (
93+ ( ig : any ) =>
94+ ig . name !==
95+ data . name
96+ )
97+ ) ;
98+ } else {
99+ toast . error (
100+ "You must have at least one interest group"
101+ ) ;
102+ }
103+ } }
104+ className = "fi fi-sr-circle-xmark"
105+ > </ i >
106+ ) }
107+ { data . name }
108+ < p >
109+ { data . karma !== null
110+ ? data . karma > 1000
111+ ? (
112+ data . karma / 1000
113+ ) . toPrecision ( 2 ) + "K"
114+ : data . karma
115+ ? data . karma
116+ : "0"
117+ : "0" }
118+ </ p >
111119 </ div >
112- < p >
113- { capitalize ( data . level . unit ) } { " " }
114- { data . level . count }
115- </ p >
116- </ div >
117- ) )
120+ ) ;
121+ } )
118122 ) : (
119123 < p >
120- No Interest Groups Selected, Must be level 4 or above to select
124+ No Interest Groups to Selected, Must be level 4 or above to select
121125 </ p >
122126 ) }
123127 { editIg && < hr /> }
124128 </ div >
125129 { editIg && (
126130 < div className = { styles . igs_container } >
127131 { allIg
128- . filter (
129- ( data : any ) =>
130- ! ig . some (
131- ( item : any ) =>
132- item . name === data . name && item . selected
133- )
134- )
135- . map ( ( data : any , i : number ) => (
136- < div key = { i } className = { styles . igs } >
137- < i
138- onClick = { ( ) => {
139- if ( ig_sorted . length < 3 ) {
140- if ( ig . some ( ( item ) => item . name === data . name ) ) {
141- setIg ( ( prev ) =>
142- prev . map ( ( item ) =>
143- item . name === data . name
144- ? { ...item , selected : true }
145- : item
146- )
147- ) ;
148- } else {
149- setIg ( ( prev ) => {
150- const exists = prev . some (
151- ( item : any ) => item . name === data . name
132+ . filter ( ( data : any ) => {
133+ return ! ig . some (
134+ ( ig : any ) => ig . name === data . name
135+ ) ;
136+ } )
137+ . map ( ( data : any , i : number ) => {
138+ return (
139+ < div key = { i } className = { styles . igs } >
140+ < i
141+ onClick = { ( ) => {
142+ {
143+ ig . length < 3 &&
144+ setIg (
145+ (
146+ prevState : any
147+ ) => [
148+ ...prevState ,
149+ data
150+ ]
152151 ) ;
153- if ( exists ) {
154- return prev . map ( ( item : any ) =>
155- item . name === data . name
156- ? { ...item , selected : true }
157- : item
158- ) ;
159- }
160- return [
161- ...prev ,
162- { ...data , selected : true } ,
163- ] ;
164- } ) ;
165152 }
166- } else {
167- toast . error ( "You can only select up to 3 interest groups" ) ;
168- }
169- // editIgDetails(
170- // toast,
171- // [...ig, data].map(
172- // (ig: any) => {
173- // return ig.id;
174- // }
175- // )
176- // ).then(() => {
177- // // getIgDetails(
178- // // toast,
179- // // setIg
180- // // );
181- // });
182- } }
183- className = "fi fi-sr-add"
184- > </ i >
185- { data . name }
186- </ div >
187- ) ) }
153+ // editIgDetails(
154+ // toast,
155+ // [...ig, data].map(
156+ // (ig: any) => {
157+ // return ig.id;
158+ // }
159+ // )
160+ // ).then(() => {
161+ // // getIgDetails(
162+ // // toast,
163+ // // setIg
164+ // // );
165+ // });
166+ } }
167+ className = "fi fi-sr-add"
168+ > </ i >
169+ { data . name }
170+ </ div >
171+ ) ;
172+ } ) }
188173 </ div >
189174 ) }
190175 </ div >
0 commit comments