added recent contributions to the contribution section

This commit is contained in:
dvorakmortonxd 2026-05-15 13:13:06 +02:00
commit ab18ff319e
2 changed files with 60 additions and 0 deletions

View file

@ -0,0 +1,9 @@
export async function GET() {
try {
const res = await fetch("https://git.dvorakmortonxd.dev/api/v1/users/dvorakmortonxd/activities/feeds?limit=20");
const data = await res.json();
return Response.json(data);
} catch (e) {
return Response.json({ error: "failed to load" }, { status: 500 });
}
}

View file

@ -12,6 +12,7 @@ export default function ContributionHeatmap() {
const [loading, setLoading] = useState(true);
const [error, setError] = useState(false);
const [totalContribs, setTotalContribs] = useState(0);
const [activities, setActivities] = useState<any[]>([]);
useEffect(() => {
async function fetchHeatmap() {
@ -73,7 +74,22 @@ export default function ContributionHeatmap() {
}
}
async function fetchActivities() {
try {
const res = await fetch("/api/activities");
if (res.ok) {
const data = await res.json();
// Filter to just standard push/commit events
const valid = data.filter((d: any) => d.op_type === "commit_repo" || d.op_type === "push_repo").slice(0, 3);
setActivities(valid);
}
} catch (err) {
console.error("Failed to load activities:", err);
}
}
fetchHeatmap();
fetchActivities();
}, []);
if (loading) {
@ -116,6 +132,41 @@ export default function ContributionHeatmap() {
<div className="heatmap-legend-cell" data-level="4"></div>
<span>More</span>
</div>
{activities.length > 0 && (
<div>
<div style={{ fontSize: "0.85rem", color: "var(--fg)", marginBottom: "4px" }}>
<span style={{ color: "var(--gray)" }}>martin@git.dvorakmortonxd.dev</span>:~$ git log -n 3 <span style={{ color: "var(--gray)" }}>#displays my 3 latest contributions</span>
</div>
{activities.map((act, idx) => {
let msg = "No message";
try {
if (act.content) {
const parsed = JSON.parse(act.content);
if (parsed.Commits && parsed.Commits.length > 0) {
msg = parsed.Commits[0].Message.split("\n")[0];
} else if (parsed.HeadCommit) {
msg = parsed.HeadCommit.Message.split("\n")[0];
}
}
} catch (e) {}
return (
<div key={idx} style={{ display: "flex", flexDirection: "column", fontSize: "0.8rem", color: "var(--fg)" }}>
<div style={{ display: "flex", justifyContent: "space-between", color: "var(--green)" }}>
<span>repo: {act.repo?.full_name || "unknown"}</span>
<span style={{ color: "var(--gray)", fontSize: "0.67rem" }}>
{new Date(act.created).toLocaleDateString()}-{new Date(act.created).toLocaleTimeString()}
</span>
</div>
<div style={{ color: "var(--gray)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}>
{msg}
</div>
</div>
);
})}
</div>
)}
</div>
);
}