88 LinkBox ,
99 icons ,
1010 If ,
11- Separator
11+ Separator ,
1212} from '../../../../components' ;
1313
1414import styles from './AuthenticatedHeader.module.scss' ;
@@ -18,9 +18,7 @@ import {
1818 userSelectors ,
1919} from '../../../../../redux/selectors' ;
2020import { getInitials } from '../../../../../utils/name' ;
21- import {
22- DEFAULT_FULL_NAME ,
23- } from '../../../../../constants' ;
21+ import { DEFAULT_FULL_NAME } from '../../../../../constants' ;
2422import OutsideClickHandler from 'react-outside-click-handler' ;
2523import {
2624 useDispatch ,
@@ -54,7 +52,7 @@ export const AuthenticatedHeader: React.FC<{
5452 const [ popupOpen , setPopupOpen ] = useState < boolean > ( false ) ;
5553 const [ createPopupOpen , setCreatePopupOpen ] = useState < boolean > ( false ) ;
5654 // const [showCookiePopup, setShowCookiePopup] = useState<any>(localStorage.getItem('showCookie'));
57-
55+
5856 const dispatch = useDispatch ( ) ;
5957 const { push } = usePushRoute ( ) ;
6058 const locationPath = useLocationPath ( ) ;
@@ -116,7 +114,10 @@ export const AuthenticatedHeader: React.FC<{
116114
117115 const userFullName = user . fullName || user . name || DEFAULT_FULL_NAME ;
118116 const userInitials = getInitials ( userFullName ) ;
119-
117+ const ITEMS_PER_PAGE = parseInt (
118+ process . env . REACT_APP_ITEMS_PER_PAGE as string ,
119+ ) ;
120+ const DEFAULT_ITEMS_PER_PAGE = 10 ;
120121 const logout = ( ) => {
121122 dispatch ( sessionActions . logout ( ) ) ;
122123 history . push ( '/login' ) ;
@@ -150,19 +151,22 @@ export const AuthenticatedHeader: React.FC<{
150151 sort_by : 'created' ,
151152 logical_operator : 'and' ,
152153 page : 1 ,
153- size : 5 ,
154+ size : ITEMS_PER_PAGE ? ITEMS_PER_PAGE : DEFAULT_ITEMS_PER_PAGE ,
154155 project : e ?. name ,
155156 onSuccess : ( ) => stopLoad ( ) ,
156157 onFailure : ( ) => stopLoad ( ) ,
157158 } ) ,
158159 ) ;
159- await dispatch ( projectsActions . getMy ( { selectDefault : false , selectedProject : e ?. name } ) )
160+ await dispatch (
161+ projectsActions . getMy ( { selectDefault : false , selectedProject : e ?. name } ) ,
162+ ) ;
160163 } ;
161164
162- const selected = projects . some ( ( project ) => project [ 'name' ] === locationPath . split ( '/' ) [ 2 ] )
163- ? locationPath . split ( '/' ) [ 2 ] . substring ( 0 , 10 )
164- : selectedProject
165-
165+ const selected = projects . some (
166+ ( project ) => project [ 'name' ] === locationPath . split ( '/' ) [ 2 ] ,
167+ )
168+ ? locationPath . split ( '/' ) [ 2 ] . substring ( 0 , 10 )
169+ : selectedProject ;
166170
167171 return (
168172 < >
@@ -187,9 +191,9 @@ export const AuthenticatedHeader: React.FC<{
187191 < LinkBox onClick = { ( ) => setPopupOpen ( ! popupOpen ) } >
188192 < FlexBox alignItems = "center" >
189193 < FlexBox alignItems = "center" className = "d-none d-md-flex" >
190- < Box paddingRight = "sm" style = { { textAlign : 'end' } } >
194+ < Box paddingRight = "sm" style = { { textAlign : 'end' } } >
191195 < Paragraph > { userFullName } </ Paragraph >
192- < span className = { styles . selectedProject } > { selected } </ span >
196+ < span className = { styles . selectedProject } > { selected } </ span >
193197 </ Box >
194198 </ FlexBox >
195199 < Box marginRight = "sm" >
@@ -198,15 +202,15 @@ export const AuthenticatedHeader: React.FC<{
198202 </ ColoredCircle >
199203 </ Box >
200204 < Box >
201- < icons . chevronDownLight
202- size = { iconSizes . xs }
203- color = { iconColors . black }
204- />
205- </ Box >
205+ < icons . chevronDownLight
206+ size = { iconSizes . xs }
207+ color = { iconColors . black }
208+ />
209+ </ Box >
206210 </ FlexBox >
207211 </ LinkBox >
208212 < If condition = { popupOpen } >
209- { ( ) => (
213+ { ( ) => (
210214 < OutsideClickHandler
211215 onOutsideClick = { ( ) => setPopupOpen ( false ) }
212216 >
@@ -220,32 +224,78 @@ export const AuthenticatedHeader: React.FC<{
220224 < Paragraph size = "small" > Settings</ Paragraph >
221225 </ FlexBox >
222226 </ LinkBox >
223-
224-
225- < Box marginHorizontal = 'md' > < Separator . LightNew /> </ Box >
226- < Box marginTop = 'sm' marginHorizontal = "md" > < Paragraph color = 'grey' style = { { fontSize : '14px' } } > Your workspaces</ Paragraph > </ Box >
227-
228- < Box marginVertical = 'sm' marginHorizontal = 'md' className = "d-none d-md-block" >
229- < Box marginTop = 'sm' style = { { maxHeight : '290px' , overflow : projects ?. length > 10 ? 'auto' :'hidden' } } >
230- { projects . map ( ( option , index ) => (
231- < Box marginTop = 'sm' onClick = { ( ) => onChange ( option ) } key = { index } >
232- < div data-tip data-for = { option . name } >
233- < Paragraph style = { { fontSize : '16px' , color : '#443E99' , cursor : 'pointer' , fontWeight : selected === option . name ? 'bold' : 'normal' } } >
234- { option . name . substring ( 0 , 10 ) } < span style = { { color : selected === option . name ? '#443E99' : '#fff' } } > •</ span >
235- </ Paragraph >
236- </ div >
237227
238- < ReactTooltip id = { option . name } place = "top" effect = "solid" >
239- < Paragraph color = "white" > { option . name } </ Paragraph >
240- </ ReactTooltip >
228+ < Box marginHorizontal = "md" >
229+ < Separator . LightNew />
230+ </ Box >
231+ < Box marginTop = "sm" marginHorizontal = "md" >
232+ < Paragraph color = "grey" style = { { fontSize : '14px' } } >
233+ Your workspaces
234+ </ Paragraph >
235+ </ Box >
236+
237+ < Box
238+ marginVertical = "sm"
239+ marginHorizontal = "md"
240+ className = "d-none d-md-block"
241+ >
242+ < Box
243+ marginTop = "sm"
244+ style = { {
245+ maxHeight : '290px' ,
246+ overflow : projects ?. length > 10 ? 'auto' : 'hidden' ,
247+ } }
248+ >
249+ { projects . map ( ( option , index ) => (
250+ < Box
251+ marginTop = "sm"
252+ onClick = { ( ) => onChange ( option ) }
253+ key = { index }
254+ >
255+ < div data-tip data-for = { option . name } >
256+ < Paragraph
257+ style = { {
258+ fontSize : '16px' ,
259+ color : '#443E99' ,
260+ cursor : 'pointer' ,
261+ fontWeight :
262+ selected === option . name
263+ ? 'bold'
264+ : 'normal' ,
265+ } }
266+ >
267+ { option . name . substring ( 0 , 10 ) } { ' ' }
268+ < span
269+ style = { {
270+ color :
271+ selected === option . name
272+ ? '#443E99'
273+ : '#fff' ,
274+ } }
275+ >
276+ •
277+ </ span >
278+ </ Paragraph >
279+ </ div >
241280
242- </ Box >
243- ) ) }
281+ < ReactTooltip
282+ id = { option . name }
283+ place = "top"
284+ effect = "solid"
285+ >
286+ < Paragraph color = "white" >
287+ { option . name }
288+ </ Paragraph >
289+ </ ReactTooltip >
290+ </ Box >
291+ ) ) }
244292 </ Box >
245293 </ Box >
246294
247- < Box marginHorizontal = 'md' > < Separator . LightNew /> </ Box >
248-
295+ < Box marginHorizontal = "md" >
296+ < Separator . LightNew />
297+ </ Box >
298+
249299 { process . env . REACT_APP_DEMO_SETUP === 'true' ? null : (
250300 < LinkBox onClick = { logout } >
251301 < FlexBox
@@ -278,4 +328,4 @@ export const AuthenticatedHeader: React.FC<{
278328 { /* {showCookiePopup !== 'false' && <CookiePopup setShowCookie={setShowCookiePopup} /> } */ }
279329 </ >
280330 ) ;
281- } ;
331+ } ;
0 commit comments