diff --git a/src/components/ContributionCalendar.jsx b/src/components/ContributionCalendar.jsx new file mode 100644 index 0000000..77180ce --- /dev/null +++ b/src/components/ContributionCalendar.jsx @@ -0,0 +1,75 @@ +import React from 'react'; + +// Helper to get all days in the last 52 weeks +function getCalendarDays() { + const days = []; + const today = new Date(); + today.setHours(0, 0, 0, 0); + // Go back 51 weeks (to get 52 weeks total) + const start = new Date(today); + start.setDate(start.getDate() - (7 * 51 + today.getDay())); + for (let i = 0; i < 7 * 52; i++) { + const d = new Date(start); + d.setDate(start.getDate() + i); + days.push(d); + } + return days; +} + +// Color scale (GitHub-like) +const COLORS = [ + '#ebedf0', // 0 + '#c6e48b', // 1 + '#7bc96f', // 2 + '#239a3b', // 3 + '#196127', // 4+ +]; +function getColor(count) { + if (!count) return COLORS[0]; + if (count >= 4) return COLORS[4]; + return COLORS[count]; +} + +export default function ContributionCalendar({ data }) { + const days = getCalendarDays(); + // Get max count for scaling (optional, for more dynamic color) + // const max = Math.max(...Object.values(data)); + + return ( +
{commit.message}
+{commit.commit?.message || ''}
- {commit.id.slice(0, 7)}
-
+ Commit:{' '}
+ {commit.html_url ? (
+
+
+ {commit.sha ? commit.sha.slice(0, 7) : ''}
+
+
+ ) : (
+
+ {commit.sha ? commit.sha.slice(0, 7) : ''}
+
+ )}