diff --git a/src/components/ContributionHeatmap.tsx b/src/components/ContributionHeatmap.tsx index 740750c0a..f1b59a578 100644 --- a/src/components/ContributionHeatmap.tsx +++ b/src/components/ContributionHeatmap.tsx @@ -318,7 +318,7 @@ export default function ContributionHeatmap({ commits.forEach((c) => { if (c.repo) reposSet.add(c.repo); }); - return Array.from(reposSet).sort(); + return Array.from(reposSet).sort((a, b) => a - b); }, [commits]); // Extract unique languages @@ -329,7 +329,7 @@ export default function ContributionHeatmap({ if (l.name) langsSet.add(l.name); }); }); - return Array.from(langsSet).sort(); + return Array.from(langsSet).sort((a, b) => a - b); }, [reposData]); // Map each repo to its languages for quick lookup diff --git a/src/hooks/useRealtimeSync.ts b/src/hooks/useRealtimeSync.ts index 0f43efa36..fe9689c64 100644 --- a/src/hooks/useRealtimeSync.ts +++ b/src/hooks/useRealtimeSync.ts @@ -97,7 +97,7 @@ export function useRealtimeSync( // Stabilise `events` so an inline array definition (e.g. `["INSERT", "DELETE"]`) // doesn't cause the effect to re-run on every render. - const eventsKey = [...events].sort().join(","); + const eventsKey = [...events].sort((a, b) => a - b).join(","); useEffect(() => { const supabase = getSupabaseClient();