diff --git a/frontend/js/user/profile-controller.js b/frontend/js/user/profile-controller.js index 353de07b..8f229e4f 100644 --- a/frontend/js/user/profile-controller.js +++ b/frontend/js/user/profile-controller.js @@ -3,6 +3,7 @@ import { loadContestProfile } from "./contest.js"; import { loadGoalSetter } from "./goal-setter.js"; import { fetchUserData } from "./historical-graphs.js"; import { loadLeaderboardRanks } from "./ranks.js"; +import { loadStreakData } from "./streak.js"; function getUsername() { const pathSegments = window.location.pathname.split("/"); @@ -35,6 +36,7 @@ async function initProfile() { const data = await res.json(); // Distribute the single payload across all rendering modules simultaneously + loadStreakData(data); loadBadges(data); loadContestProfile(data); loadGoalSetter(username, data); diff --git a/frontend/js/user/streak.js b/frontend/js/user/streak.js new file mode 100644 index 00000000..3957ed47 --- /dev/null +++ b/frontend/js/user/streak.js @@ -0,0 +1,14 @@ +export function loadStreakData(data) { + const currentStreakEl = document.getElementById("streak-current"); + const longestStreakEl = document.getElementById("streak-longest"); + + if (data && data.streak) { + if (currentStreakEl && data.streak.current !== undefined) { + currentStreakEl.textContent = data.streak.current; + } + + if (longestStreakEl && data.streak.longest !== undefined) { + longestStreakEl.textContent = data.streak.longest; + } + } +}