diff --git a/src/components/NextBestActionWidget.tsx b/src/components/NextBestActionWidget.tsx index 222da9cd..3fdbba0a 100644 --- a/src/components/NextBestActionWidget.tsx +++ b/src/components/NextBestActionWidget.tsx @@ -1,4 +1,4 @@ -'use client'; +'use client'; import { useEffect, useState } from 'react'; import Link from 'next/link'; @@ -42,13 +42,13 @@ export default function NextBestActionWidget() {

Your next best action

-

+

Personalised to your recent activity

{recs.length === 0 ? ( -

+

Explore DevPath and we will suggest your next step here.

) : ( @@ -68,7 +68,7 @@ export default function NextBestActionWidget() {

{rec.title}

-

+

{rec.description}

{notifications.length === 0 ? ( -
+

No notifications yet

@@ -260,10 +260,10 @@ export function NotificationDropdown() {

{notif.title}

-

+

{notif.message}

-

+

{notif.createdAt?.seconds ? new Date( notif.createdAt.seconds * 1000 diff --git a/src/components/ProjectCard.tsx b/src/components/ProjectCard.tsx index bbe54184..4eaa02b9 100644 --- a/src/components/ProjectCard.tsx +++ b/src/components/ProjectCard.tsx @@ -50,7 +50,7 @@ export function ProjectCard({ project }: { project: Project }) { {/* Author */}

-

+

{project.author}

@@ -79,7 +79,7 @@ export function ProjectCard({ project }: { project: Project }) {
{/* Stats */} -
+
diff --git a/src/components/profile/UserProfile.tsx b/src/components/profile/UserProfile.tsx index 8b1ceb06..ed44c3a3 100644 --- a/src/components/profile/UserProfile.tsx +++ b/src/components/profile/UserProfile.tsx @@ -562,10 +562,11 @@ export default function UserProfile() { {(() => { if (!user.createdAt) return 'Dec 2023'; try { + const createdAt = user.createdAt as any; const d = new Date( - user.createdAt.seconds - ? user.createdAt.seconds * 1000 - : user.createdAt + createdAt.seconds + ? createdAt.seconds * 1000 + : createdAt ); if (isNaN(d.getTime())) return 'Dec 2023'; return d.toLocaleDateString(undefined, { diff --git a/src/components/providers/theme-provider.tsx b/src/components/providers/theme-provider.tsx index 080747fd..f48a8223 100644 --- a/src/components/providers/theme-provider.tsx +++ b/src/components/providers/theme-provider.tsx @@ -22,6 +22,16 @@ function ThemeStoreBridge() { } export function ThemeProvider({ children, ...props }: ThemeProviderProps) { + const [mounted, setMounted] = React.useState(false); + + React.useEffect(() => { + setMounted(true); + }, []); + + if (!mounted) { + return
{children}
; + } + return ( diff --git a/src/context/AuthContext.tsx b/src/context/AuthContext.tsx index 02efa8cb..54afdcfa 100644 --- a/src/context/AuthContext.tsx +++ b/src/context/AuthContext.tsx @@ -242,7 +242,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { email: firebaseUser.email, name: firebaseUser.displayName || '', photoURL: firebaseUser.photoURL || '', - role: 'member', + role: 'member' as const, points: 0, streak: 0, level: 0, @@ -263,7 +263,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { showInCommunity: true, }, preferences: { - theme: 'dark', + theme: 'dark' as const, }, githubStats: { connected: false,