+
}
label="Performance Analytics"
active={pathname.startsWith("/dashboard/analytics")}
- isLocked={!hasAccessTo("ai-mistake-tracking")}
+ isLocked={!hasAccessTo("detailed-performance-analytics")}
/>
}
label="Rank Predictor"
active={pathname.startsWith("/dashboard/rank-predictor")}
- isLocked={!hasAccessTo("ai-mistake-tracking")}
+ isLocked={!hasAccessTo("college-predictor")}
/>
}
label="AI Coach"
active={pathname.startsWith("/dashboard/ai-coach")}
- isLocked={!hasAccessTo("ai-mistake-tracking")}
+ isLocked={!hasAccessTo("ai-tutor-chat")}
/>
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx
index c4db59e..9b39df4 100644
--- a/src/app/dashboard/page.tsx
+++ b/src/app/dashboard/page.tsx
@@ -8,8 +8,10 @@ import { Activity, BrainCircuit, ArrowRight, Clock, Target, CheckCircle2, Trendi
import * as htmlToImage from 'html-to-image'
import { MistakeHeatmap } from "@/components/AI/MistakeHeatmap"
import { AdaptiveStudyPlan } from "@/components/AI/AdaptiveStudyPlan"
+import { useActiveUser } from "@/hooks/useActiveUser"
export default function DashboardPage() {
+ const { user, hasAccessTo } = useActiveUser()
const progressRef = useRef
(null)
const handleExport = async () => {
@@ -29,7 +31,7 @@ export default function DashboardPage() {
return (
-
-
-
-
Part Test 3: Mechanics
-
Oct 24, 2026
+ {hasAccessTo("weekly-test-series") ? (
+
+
+
Part Test 3: Mechanics
+
Oct 24, 2026
+
+
Start
-
Pro Only
-
+ ) : (
+
+
+
Part Test 3: Mechanics
+
Oct 24, 2026
+
+
Pro Only
+
+ )}
diff --git a/src/app/dashboard/settings/page.tsx b/src/app/dashboard/settings/page.tsx
index f13d153..8ce64d7 100644
--- a/src/app/dashboard/settings/page.tsx
+++ b/src/app/dashboard/settings/page.tsx
@@ -134,7 +134,7 @@ export default function SettingsPage() {
className="hidden"
disabled={uploading}
/>
-
+
{avatarUrl ? "Change Photo" : "Upload Photo"}
@@ -182,14 +182,53 @@ export default function SettingsPage() {
/>
-
+
setState(e.target.value)}
className="w-full bg-secondary/50 border border-border rounded-lg px-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[#00F0FF]"
/>
+
diff --git a/src/components/Dashboard/StreakOnboardingModal.tsx b/src/components/Dashboard/StreakOnboardingModal.tsx
index 0dcc0f1..a8654ea 100644
--- a/src/components/Dashboard/StreakOnboardingModal.tsx
+++ b/src/components/Dashboard/StreakOnboardingModal.tsx
@@ -81,7 +81,7 @@ export function StreakOnboardingModal() {
Enter Workspace
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
index 89248d8..bedf62a 100644
--- a/src/components/ui/button.tsx
+++ b/src/components/ui/button.tsx
@@ -8,7 +8,7 @@ export interface ButtonProps extends React.ButtonHTMLAttributes(
- ({ className, variant = "default", size = "default", ...props }, ref) => {
+ ({ className, variant = "default", size = "default", asChild, ...props }, ref) => {
return (