feat: add AI options to landing mock sidebar and wire database-backed stats & leaderboard with fresh zero states

This commit is contained in:
2026-09-13 21:57:12 +05:30
parent a6a8eda51b
commit d9bd142e6a
7 changed files with 343 additions and 97 deletions

View File

@@ -21,7 +21,9 @@ interface Doubt {
}
export default function CommunityPage() {
const { hasAccessTo, loading } = useActiveUser()
const { user, hasAccessTo, loading } = useActiveUser()
const currentUserName = user?.name || "Neha Verma"
const currentUserInitials = currentUserName.substring(0, 2).toUpperCase()
const [activeFilter, setActiveFilter] = useState<'all' | 'my-doubts' | 'solved' | 'unsolved'>('all')
const [searchQuery, setSearchQuery] = useState('')
const [isAskModalOpen, setIsAskModalOpen] = useState(false)
@@ -58,8 +60,8 @@ export default function CommunityPage() {
},
{
id: "3",
author: "Demo Student",
avatar: "DS",
author: currentUserName,
avatar: currentUserInitials,
timeAgo: "1 day ago",
subject: "Mathematics",
topic: "Definite Integration",
@@ -73,7 +75,7 @@ export default function CommunityPage() {
]
const filteredDoubts = mockDoubts.filter(d => {
if (activeFilter === 'my-doubts' && d.author !== "Demo Student") return false
if (activeFilter === 'my-doubts' && d.author !== currentUserName) return false
if (activeFilter === 'solved' && !d.isSolved) return false
if (activeFilter === 'unsolved' && d.isSolved) return false
if (searchQuery && !d.title.toLowerCase().includes(searchQuery.toLowerCase())) return false