@@ -106,85 +106,88 @@ const Statistics: React.FC<{
106106 const getTotalCount = ( ) => all ?. get ( 'all' ) || 0 ;
107107
108108 return (
109- < Paper { ...paperProps } >
110- < Group >
111- < RingProgress
112- size = { 120 }
113- thickness = { 8 }
114- roundCaps
115- sections = {
116- isHovering && difficultySections
117- ? difficultySections
118- : getProgressSections ( )
119- }
120- label = {
121- < Center >
122- < Stack gap = { 0 } align = "center" >
123- { isHovering ? (
124- < >
125- < Text fz = "xs" > Beats</ Text >
126- < Group gap = { 0 } >
127- < Text fw = "bolder" fz = "lg" >
128- { Math . floor ( beats ?? totalBeats ) }
129- </ Text >
130- < Text fz = "sm" >
131- .{ ( beats ?? totalBeats ) . toFixed ( 2 ) . split ( '.' ) [ 1 ] } %
132- </ Text >
133- </ Group >
134- </ >
135- ) : (
136- < >
137- < Group gap = { 0 } >
138- < Text fw = "bolder" fz = "lg" >
139- { getTotalAc ( ) }
140- </ Text >
141- < Text fz = "sm" > /{ getTotalCount ( ) } </ Text >
142- </ Group >
143- < Group gap = { 0 } >
144- < IconCheck
145- size = { 12 }
146- stroke = { 1.5 }
147- color = { StatusColors [ 'SOLVED' ] }
148- />
149- < Text fz = "xs" > Solved</ Text >
150- </ Group >
151- </ >
152- ) }
153- </ Stack >
154- </ Center >
155- }
156- onMouseOver = { ( ) => setIsHovering ( true ) }
157- onMouseLeave = { ( ) => setIsHovering ( false ) }
158- />
159- < Stack gap = "xs" w = "5em" >
160- { Object . entries ( DifficultyColors ) . map ( ( [ d , c ] ) => (
161- < DifficultyStatistics
162- key = { d }
163- text = { d }
164- color = { c }
165- solved = { accepted ?. get ( d ) ?? 0 }
166- total = { all ?. get ( d ) ?? 0 }
167- onHover = { ( ) => {
168- setIsHovering ( true ) ;
169- setBeats ( difficultyBeats ?. get ( d ) ?? 0 ) ;
170- setDifficultySections ( [
171- {
172- value : Math . round (
173- ( ( accepted ?. get ( d ) ?? 0 ) / ( all ?. get ( d ) ?? 0 ) ) * 100
174- ) ,
175- color : c
176- }
177- ] ) ;
178- } }
179- onLeave = { ( ) => {
180- setIsHovering ( false ) ;
181- setBeats ( null ) ;
182- setDifficultySections ( null ) ;
183- } }
184- />
185- ) ) }
186- </ Stack >
187- </ Group >
109+ < Paper { ...paperProps } style = { { alignContent : 'center' } } >
110+ < Center >
111+ < Group >
112+ < RingProgress
113+ size = { 120 }
114+ thickness = { 8 }
115+ roundCaps
116+ transitionDuration = { 250 }
117+ sections = {
118+ isHovering && difficultySections
119+ ? difficultySections
120+ : getProgressSections ( )
121+ }
122+ label = {
123+ < Center >
124+ < Stack gap = { 0 } align = "center" >
125+ { isHovering ? (
126+ < >
127+ < Text fz = "xs" > Beats</ Text >
128+ < Group gap = { 0 } >
129+ < Text fw = "bolder" fz = "lg" >
130+ { Math . floor ( beats ?? totalBeats ) }
131+ </ Text >
132+ < Text fz = "sm" >
133+ .{ ( beats ?? totalBeats ) . toFixed ( 2 ) . split ( '.' ) [ 1 ] } %
134+ </ Text >
135+ </ Group >
136+ </ >
137+ ) : (
138+ < >
139+ < Group gap = { 0 } >
140+ < Text fw = "bolder" fz = "lg" >
141+ { getTotalAc ( ) }
142+ </ Text >
143+ < Text fz = "xs" > /{ getTotalCount ( ) } </ Text >
144+ </ Group >
145+ < Group gap = { 0 } >
146+ < IconCheck
147+ size = { 12 }
148+ stroke = { 1.5 }
149+ color = { StatusColors [ 'SOLVED' ] }
150+ />
151+ < Text fz = "xs" > Solved</ Text >
152+ </ Group >
153+ </ >
154+ ) }
155+ </ Stack >
156+ </ Center >
157+ }
158+ onMouseOver = { ( ) => setIsHovering ( true ) }
159+ onMouseLeave = { ( ) => setIsHovering ( false ) }
160+ />
161+ < Stack gap = "xs" w = "5em" >
162+ { Object . entries ( DifficultyColors ) . map ( ( [ d , c ] ) => (
163+ < DifficultyStatistics
164+ key = { d }
165+ text = { d }
166+ color = { c }
167+ solved = { accepted ?. get ( d ) ?? 0 }
168+ total = { all ?. get ( d ) ?? 0 }
169+ onHover = { ( ) => {
170+ setIsHovering ( true ) ;
171+ setBeats ( difficultyBeats ?. get ( d ) ?? 0 ) ;
172+ setDifficultySections ( [
173+ {
174+ value : Math . round (
175+ ( ( accepted ?. get ( d ) ?? 0 ) / ( all ?. get ( d ) ?? 0 ) ) * 100
176+ ) ,
177+ color : c
178+ }
179+ ] ) ;
180+ } }
181+ onLeave = { ( ) => {
182+ setIsHovering ( false ) ;
183+ setBeats ( null ) ;
184+ setDifficultySections ( null ) ;
185+ } }
186+ />
187+ ) ) }
188+ </ Stack >
189+ </ Group >
190+ </ Center >
188191 </ Paper >
189192 ) ;
190193} ;
0 commit comments