1+ import  {  DateTime  }  from  "luxon" ; 
12import  React ,  {  useState  }  from  "react" ; 
23import  {  useUserInfo  }  from  "../utils/queries/base" ; 
3- import  {  RawUserInfo ,  UserInfo  }  from  "../utils/types" ; 
44import  {  useUserInfoUpdateMutation  }  from  "../utils/queries/profiles" ; 
5- import  {  DateTime  }  from  "luxon " ; 
5+ import  {  RawUserInfo  }  from  "../utils/types " ; 
66
77import  "../css/profile.scss" ; 
88
99export  const  UserProfile  =  ( ) : React . ReactElement  =>  { 
1010  const  {  data : jsonUserInfo ,  isSuccess : userInfoLoaded  }  =  useUserInfo ( ) ; 
1111
12-   // let userInfo: UserInfo; 
13-   // if (userInfoLoaded) { 
14-   //   let priorityEnrollment = undefined; 
15-   //   if (jsonUserInfo.priorityEnrollment) { 
16-   //     priorityEnrollment = DateTime.fromISO(jsonUserInfo.priorityEnrollment); 
17-   //   } 
18-   //   const convertedUserInfo: UserInfo = { 
19-   //     ...jsonUserInfo, 
20-   //     priorityEnrollment 
21-   //   }; 
22-   //   userInfo = convertedUserInfo; 
23-   // } 
24-   // else { 
25-   //   // not done loading yet 
26-   //   userInfo = null; 
27-   // } 
28- 
2912  return  ( 
3013    < React . Fragment > 
3114      < div > 
@@ -54,31 +37,32 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
5437  /** 
5538   * User First Name 
5639   */ 
57-   const  [ userFirstName ,   setUserFirstName ]   =   useState < string > ( "" ) ; 
40+   const  userFirstName   =   userInfo . firstName ; 
5841
5942  /** 
6043   * User Last Name 
6144   */ 
62-   const  [ userLastName ,  setUserLastName ]  =  useState < string > ( "" ) ; 
45+ 
46+   const  userLastName  =  userInfo . lastName ; 
6347  /** 
6448   * User email 
6549   */ 
66-   const  [ userEmail ,   setUserEmail ]   =   useState < string > ( "" ) ; 
50+   const  userEmail   =   userInfo . email ; 
6751  /** 
6852   * User Pronoun 
6953   */ 
70-   const  [ userPronoun ,  setUserPronoun ]  =  useState < string > ( "" ) ; 
54+   const  [ userPronoun ,  setUserPronoun ]  =  useState < string > ( userInfo . pronouns ) ; 
7155  /** 
7256   * User Bio 
7357   */ 
74-   const  [ bio ,  setBio ]  =  useState < string > ( "" ) ; 
75-   /** 
76-    * Pronunciation 
77-    */ 
78-   const  [ pronunciation ,  setPronunciation ]  =  useState < string > ( "" ) ; 
58+   const  [ userBio ,  setUserBio ]  =  useState < string > ( userInfo . bio ) ; 
7959  /** 
8060   * Pronunciation 
8161   */ 
62+   const  [ userPreferredName ,  setUserPreferredName ]  =  useState < string > ( userInfo . preferredName ) ; 
63+ 
64+   const  CHARACTER_LIMIT  =  500 ; 
65+ 
8266  let  priority : DateTime  |  undefined ; 
8367  if  ( priorityEnrollment )  { 
8468    priority  =  DateTime . fromISO ( priorityEnrollment ) ; 
@@ -104,10 +88,10 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
10488      lastName : userLastName , 
10589      email : userEmail , 
10690      isPrivate : userInfo . isPrivate , 
107-       bio, 
91+       bio :  userBio , 
10892      priorityEnrollment : priority , 
10993      pronouns : userPronoun , 
110-       pronunciation 
94+       preferredName :  userPreferredName 
11195    } ; 
11296    console . log ( data ) ; 
11397    createSectionMutation . mutate ( data ,  { 
@@ -122,30 +106,25 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
122106   */ 
123107  const  handleChange  =  ( name : string ,  value : string ) : void =>  { 
124108    switch  ( name )  { 
125-       case  "firstName" :
126-         setUserFirstName ( value ) ; 
127-         break ; 
128-       case  "lastName" :
129-         setUserLastName ( value ) ; 
130-         break ; 
131-       case  "email" :
132-         setUserEmail ( value ) ; 
133-         break ; 
134109      case  "pronouns" :
135110        setUserPronoun ( value ) ; 
136111        break ; 
137112      case  "bio" :
138-         setBio ( value ) ; 
113+         setUserBio ( value ) ; 
139114        break ; 
140-       case  "pronunciation " :
141-         setPronunciation ( value ) ; 
115+       case  "preferredName " :
116+         setUserPreferredName ( value ) ; 
142117        break ; 
143118      default :
144119        console . error ( "Unknown input name: "  +  name ) ; 
145120        break ; 
146121    } 
147122  } ; 
148123
124+   // const handleBio = (value: string): void => { 
125+   //   setUserBio() 
126+   // } 
127+ 
149128  return  ( 
150129    < div > 
151130      { userInfo  !==  null  ? ( 
@@ -160,8 +139,7 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
160139                    id = "firstname" 
161140                    defaultValue = { userInfo . firstName } 
162141                    className = "formbold-form-input" 
163-                     disabled = { ! editing } 
164-                     onChange = { e  =>  handleChange ( "firstName" ,  e . target . value ) } 
142+                     disabled = { true } 
165143                  /> 
166144                  < label  className = "formbold-form-label" >  First name </ label > 
167145                </ div > 
@@ -172,13 +150,24 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
172150                    id = "lastname" 
173151                    defaultValue = { userInfo . lastName } 
174152                    className = "formbold-form-input" 
175-                     disabled = { ! editing } 
176-                     onChange = { e  =>  handleChange ( "lastName" ,  e . target . value ) } 
153+                     disabled = { true } 
177154                  /> 
178155                  < label  className = "formbold-form-label" >  Last name </ label > 
179156                </ div > 
180157              </ div > 
181- 
158+               < div  className = "formbold-textarea" > 
159+                 < textarea 
160+                   name = "bio" 
161+                   id = "bio" 
162+                   placeholder = "Write your bio..." 
163+                   className = "formbold-form-input-bio" 
164+                   disabled = { ! editing } 
165+                   defaultValue = { userInfo . bio } 
166+                   maxLength = { 500 } 
167+                   onChange = { e  =>  handleChange ( "bio" ,  e . target . value ) } 
168+                 > </ textarea > 
169+                 < label  className = "formbold-form-label" >  Bio { `[${ userBio . length } ${ CHARACTER_LIMIT }  } </ label > 
170+               </ div > 
182171              < div  className = "formbold-input-flex" > 
183172                < div > 
184173                  < input 
@@ -188,7 +177,6 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
188177                    defaultValue = { userInfo . email } 
189178                    className = "formbold-form-input" 
190179                    disabled = { true } 
191-                     onChange = { e  =>  handleChange ( "email" ,  e . target . value ) } 
192180                  /> 
193181                  < label  className = "formbold-form-label" >  Email </ label > 
194182                </ div > 
@@ -201,32 +189,24 @@ const DisplayUser = ({ userInfo, priorityEnrollment }: UserInfoProps) => {
201189                    className = "formbold-form-input" 
202190                    defaultValue = { userInfo . pronouns } 
203191                    disabled = { ! editing } 
192+                     maxLength = { 20 } 
204193                    onChange = { e  =>  handleChange ( "pronouns" ,  e . target . value ) } 
205194                  /> 
206195                  < label  className = "formbold-form-label" >  Pronouns </ label > 
207196                </ div > 
208197              </ div > 
209198              < div  className = "formbold-textarea" > 
210199                < textarea 
211-                   name = "pronunciation" 
212-                   id = "pronunciation" 
213-                   placeholder = "How to pronounce your name" 
214-                   className = "formbold-form-input" 
215-                   disabled = { true } 
216-                 > </ textarea > 
217-                 < label  className = "formbold-form-label" >  Pronunciation </ label > 
218-               </ div > 
219-               < div  className = "formbold-textarea" > 
220-                 < textarea 
221-                   name = "bio" 
222-                   id = "bio" 
223-                   placeholder = "Write your bio..." 
200+                   name = "preferredName" 
201+                   id = "preferredName" 
202+                   placeholder = "" 
224203                  className = "formbold-form-input" 
225204                  disabled = { ! editing } 
226-                   defaultValue = { userInfo . bio } 
227-                   onChange = { e  =>  handleChange ( "bio" ,  e . target . value ) } 
205+                   defaultValue = { userInfo . preferredName } 
206+                   maxLength = { 50 } 
207+                   onChange = { e  =>  handleChange ( "preferredName" ,  e . target . value ) } 
228208                > </ textarea > 
229-                 < label  className = "formbold-form-label" >  Bio  </ label > 
209+                 < label  className = "formbold-form-label" >  Preferred Name  </ label > 
230210              </ div > 
231211            </ form > 
232212            < div  className = "button-wrapper" > 
0 commit comments