diff --git a/src/components/dashboard/SignInDashboard.tsx b/src/components/dashboard/SignInDashboard.tsx new file mode 100644 index 00000000..f3cda82c --- /dev/null +++ b/src/components/dashboard/SignInDashboard.tsx @@ -0,0 +1,267 @@ +import React from 'react' +import { Flame, Calendar, Trophy, Activity, Share2, Check, Play } from 'lucide-react' +import { useUser } from '@clerk/react' +import { useCommunityStatsContext } from "@site/src/lib/statsProvider" +import { getWeekBuckets, getCurrentStreak } from "@site/src/lib/streakUtils" +import '../../styles/globals.css' + +export default function SignInDashboard(): JSX.Element { + const { user } = useUser() + const displayName = user?.firstName + + const { + getAllTimePRsForContributor, + getAllTimeContributor + } = useCommunityStatsContext() + + const viewerLogin = + user?.externalAccounts?.find( + (account) => account.provider === "github" + )?.username ?? null + + const viewerPRs = viewerLogin + ? getAllTimePRsForContributor(viewerLogin) + : [] + + const weekBuckets = getWeekBuckets(viewerPRs) + const streak = getCurrentStreak(weekBuckets) + + const activeWeeks = weekBuckets.filter( + (week) => week.count > 0 + ).length + + const activity = weekBuckets.slice(-7) + + const viewer = viewerLogin + ? getAllTimeContributor(viewerLogin) + : undefined + + const totalPRs = viewer?.prs ?? 0 + const totalPoints = viewer?.points ?? 0 + + return ( +
+ {streak} {streak === 1 ? "Week" : "Weeks"} +
++ Keep your weekly streak going +
++ {totalPoints} points +
++ Total points earned +
++ {activeWeeks} +
++ Weeks with merged PRs +
++ {totalPRs} {totalPRs === 1 ? "PR" : "PRs"} +
++ Total pull requests merged +
++ BUILD IN PUBLIC +
++ Complete meaningful learning actions each week, build your consistency, and share each win. +
++ Your last 7 weeks +
++ {streak} {streak === 1 ? "week" : "weeks"} streak +
++ NEXT ACHIEVEMENT +
++ {streak + 1}-week consistency streak +
+- Welcome to the Recode Hive community hub! Explore our stats, - engage in discussions, and connect with fellow contributors. -
- -+ Welcome to the Recode Hive community hub! Explore our stats, + engage in discussions, and connect with fellow contributors. +
+Sign in to view your stats
+