@@ -10,6 +10,10 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) {
1010 const { data, ...props } = useWebsiteSessionsWeekly ( websiteId ) ;
1111 const { dateLocale } = useLocale ( ) ;
1212 const { labels, formatMessage } = useMessages ( ) ;
13+ const { weekStartsOn } = dateLocale . options ;
14+ const daysOfWeek = Array ( 7 )
15+ . fill ( weekStartsOn )
16+ . map ( ( d , i ) => ( d + i ) % 7 ) ;
1317
1418 const [ , max ] = data
1519 ? data . reduce ( ( arr : number [ ] , hours : number [ ] , index : number ) => {
@@ -40,41 +44,45 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) {
4044 { Array ( 24 )
4145 . fill ( null )
4246 . map ( ( _ , i ) => {
43- const label = format ( addHours ( startOfDay ( new Date ( ) ) , i ) , 'haaa' ) ;
47+ const label = format ( addHours ( startOfDay ( new Date ( ) ) , i ) , 'p' , { locale : dateLocale } )
48+ . replace ( / \D 0 0 ? / , '' )
49+ . toLowerCase ( ) ;
4450 return (
4551 < div key = { i } className = { styles . hour } >
4652 { label }
4753 </ div >
4854 ) ;
4955 } ) }
5056 </ div >
51- { data ?. map ( ( day : number [ ] , index : number ) => {
52- return (
53- < div key = { index } className = { styles . day } >
54- < div className = { styles . header } >
55- { format ( getDayOfWeekAsDate ( index ) , 'EEE' , { locale : dateLocale } ) }
57+ { data &&
58+ daysOfWeek . map ( ( index : number ) => {
59+ const day = data [ index ] ;
60+ return (
61+ < div key = { index } className = { styles . day } >
62+ < div className = { styles . header } >
63+ { format ( getDayOfWeekAsDate ( index ) , 'EEE' , { locale : dateLocale } ) }
64+ </ div >
65+ { day ?. map ( ( hour : number ) => {
66+ const pct = hour / max ;
67+ return (
68+ < div key = { hour } className = { classNames ( styles . cell ) } >
69+ { hour > 0 && (
70+ < TooltipPopup
71+ label = { `${ formatMessage ( labels . visitors ) } : ${ hour } ` }
72+ position = "right"
73+ >
74+ < div
75+ className = { styles . block }
76+ style = { { opacity : pct , transform : `scale(${ pct } )` } }
77+ />
78+ </ TooltipPopup >
79+ ) }
80+ </ div >
81+ ) ;
82+ } ) }
5683 </ div >
57- { day ?. map ( ( hour : number , n ) => {
58- const pct = hour / max ;
59- return (
60- < div key = { n } className = { classNames ( styles . cell ) } >
61- { hour > 0 && (
62- < TooltipPopup
63- label = { `${ formatMessage ( labels . visitors ) } : ${ hour } ` }
64- position = "right"
65- >
66- < div
67- className = { styles . block }
68- style = { { opacity : pct , transform : `scale(${ pct } )` } }
69- />
70- </ TooltipPopup >
71- ) }
72- </ div >
73- ) ;
74- } ) }
75- </ div >
76- ) ;
77- } ) }
84+ ) ;
85+ } ) }
7886 </ div >
7987 </ LoadingPanel >
8088 ) ;
0 commit comments