@@ -130,19 +151,19 @@ export default function ReadinessPage() {
- Complete 2 full-length mock tests this week to boost consistency score.
+ {isDemo ? "Complete 2 full-length mock tests this week to boost consistency score." : "Complete your first diagnostic test to calculate your initial readiness baseline."}
- Clear 15 pending errors in your Physics queue to gain ~4 readiness points.
+ {isDemo ? "Clear 15 pending errors in your Physics queue to gain ~4 readiness points." : "Attempt daily DPPs to populate your question error log."}
- Maintain a 7+ day streak — consistency adds 6% to your readiness index.
+ Maintain daily streak — consistency adds directly to your readiness algorithm.
- Reduce avg time-per-question below 40s with daily timed DPP sessions.
+ Target under 45s per question in timed test series practice.
@@ -107,7 +122,11 @@ export default function StrategyPage() {
))}
- Insight: You're losing ~29 marks to wrong answers. Switching to "skip and revisit" for uncertain Physics questions could recover 15–20 marks.
+ Insight: {isDemo ? (
+ <>You're losing ~29 marks to wrong answers. Switching to "skip and revisit" for uncertain Physics questions could recover 15–20 marks.>
+ ) : (
+ <>Complete your first mock test or timed DPP to calculate your negative marking profile and fine-tune your subject pacing.>
+ )}
- Our models detect a consistent 14% accuracy drop in physics questions involving Calculus. We are adjusting your upcoming DPPs to focus heavily on integration applications in kinematics.
+ {isDemo ? (
+ <>Our models detect a consistent 14% accuracy drop in physics questions involving Calculus. We are adjusting your upcoming DPPs to focus heavily on integration applications in kinematics.>
+ ) : (
+ <>Complete your first diagnostic test or DPP to unlock personalized AI diagnoses and focus area recommendations. Our neural models will begin analyzing your accuracy curves as soon as you attempt questions.>
+ )}
+ {activeFilter === 'my-doubts' ? "No Doubts Asked Yet" : "No doubts found matching your criteria."}
+
+
+ {activeFilter === 'my-doubts'
+ ? "You haven't asked any doubts yet. Click 'Ask a Doubt' above to get answers from mentors and peers."
+ : "Try selecting another filter or clearing your search query."}
+
Complete a Daily Practice Problem (DPP) or CBT Exam every day to keep your streak alive.
+
+ {streakPoints === 0
+ ? "Complete your first Daily Practice Problem (DPP) or CBT Exam today to start earning streak points."
+ : "Complete a Daily Practice Problem (DPP) or CBT Exam every day to keep your streak alive."}
+
@@ -57,7 +88,10 @@ export default function StreaksPage() {
+ {isDemo ? "Dynamically generated based on your weak areas." : "Day 1 Onboarding Plan · Calibrating AI recommendations based on your initial performance."}
+
- Your speed has dropped slightly. Focus on time-bound practice today.
+ {isZero
+ ? "Complete your first diagnostic test to establish your personalized readiness score."
+ : "Your speed has dropped slightly. Focus on time-bound practice today."}
@@ -114,10 +135,13 @@ export function StudyTimeOptimizationCard() {
- You perform best 2–5 PM. Schedule your hardest mock tests and DPPs in this window.
+ {isDemo
+ ? "You perform best 2–5 PM. Schedule your hardest mock tests and DPPs in this window."
+ : "Circadian AI calibrating: Complete practice sessions at different times of day to reveal your peak study window."}
@@ -131,8 +142,16 @@ export function WeeklyProgressReport() {
- Sign errors in Thermodynamics — detected in your last 3 attempts (W = −PΔV misapplied). We've queued 3 targeted practice questions for tomorrow.{" "}
- Tip: You peak at 7–9 PM. Schedule the hardest topics then.
+ {isDemo ? (
+ <>
+ Sign errors in Thermodynamics — detected in your last 3 attempts (W = −PΔV misapplied). We've queued 3 targeted practice questions for tomorrow.{" "}
+ Tip: You peak at 7–9 PM. Schedule the hardest topics then.
+ >
+ ) : (
+ <>
+ AI Progress Engine Calibrating — Complete your first CBT mock test or DPP to begin mapping subject retention, speed trends, and error velocity.
+ >
+ )}
@@ -140,3 +159,4 @@ export function WeeklyProgressReport() {
)
}
+
diff --git a/src/hooks/useActiveUser.ts b/src/hooks/useActiveUser.ts
index 38766eb..b28670f 100644
--- a/src/hooks/useActiveUser.ts
+++ b/src/hooks/useActiveUser.ts
@@ -34,8 +34,8 @@ export const DEMO_USERS = {
export const DEMO_IDS = new Set(Object.values(DEMO_USERS).map(u => u.id));
/** Returns true if the userId matches a known demo account */
-export function isDemoUser(userId: string): boolean {
- return DEMO_IDS.has(userId);
+export function isDemoUser(userId?: string | null): boolean {
+ return !!userId && DEMO_IDS.has(userId);
}
/** Compute trial info from user profile and global settings */