@@ -122,6 +122,31 @@ const submissionCalendarData = {
122122 "1707417600" : 1 ,
123123} ;
124124
125+ function worthCalculator (
126+ streak : number ,
127+ easySolved : number ,
128+ mediumSolved : number ,
129+ hardSolved : number ,
130+ activeYears : number ,
131+ totalActiveDays : number
132+ ) {
133+ const easyPoints = 1 ;
134+ const mediumPoints = 2 ;
135+ const hardPoints = 5 ;
136+ const streakPoints = streak >= 30 ? 10 : 5 ;
137+ const activeYearPoints = 2 ;
138+ const totalActiveDaysPoints = 10 ;
139+
140+ return (
141+ easySolved * easyPoints +
142+ mediumSolved * mediumPoints +
143+ hardSolved * hardPoints +
144+ streak * streakPoints +
145+ activeYears * activeYearPoints +
146+ totalActiveDays * totalActiveDaysPoints
147+ ) ;
148+ }
149+
125150export default function Heatmap ( ) {
126151 const [ isMounted , setIsMounted ] = useState ( false ) ;
127152 const [ username , setUsername ] = useState ( "" ) ;
@@ -316,9 +341,9 @@ export default function Heatmap() {
316341 < button
317342 type = "button"
318343 onClick = { downloadAsImage }
319- disabled = { ! username || loading }
344+ disabled = { ! data || loading }
320345 className = { `border flex items-center text-center bg-gradient-to-r from-[#cb42b2] to-[#f38d90] bg-clip-text text-transparent justify-center gap-2 px-4 h-[40px] rounded-md font-semibold text-lg mt-4 ${
321- loading || ! username
346+ loading || ! data
322347 ? "cursor-not-allowed opacity-50"
323348 : "cursor-pointer"
324349 } `}
@@ -404,7 +429,15 @@ export default function Heatmap() {
404429
405430 < h2 className = "text-sm font-semibold mt-4 text-gray-400 text-center" >
406431 < span className = "text-[#f3e58d] text-2xl" >
407- { data . totalSolved * 10 } $
432+ { worthCalculator (
433+ data . easySolved ,
434+ data . mediumSolved ,
435+ data . hardSolved ,
436+ data ?. activeYears . length ,
437+ data ?. calendarData . userCalendar . streak ,
438+ data ?. calendarData . userCalendar . totalActiveDays
439+ ) }
440+ $
408441 </ span >
409442 < br />
410443 Estimated Worth
0 commit comments