Update layout, settings, and bulk upload password forcing

This commit is contained in:
2026-09-25 12:03:01 +05:30
parent e12c3fb8eb
commit ba4ab2049b
5 changed files with 144 additions and 10 deletions

View File

@@ -12,6 +12,7 @@ import { StreakCounter } from "@/components/StreakCounter"
import { AITutorChat } from "@/components/AI/AITutorChat"
import { useActiveUser, DEMO_USERS, isDemoUser } from "@/hooks/useActiveUser"
import { StreakOnboardingModal } from "@/components/Dashboard/StreakOnboardingModal"
import { BulkUserPasswordModal } from "@/components/Dashboard/BulkUserPasswordModal"
import { Badge } from "@/components/ui/badge"
import MaintenanceScreen from "@/components/MaintenanceScreen"
@@ -160,14 +161,14 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
active={pathname.startsWith("/dashboard/cbt")}
isLocked={!hasAccessTo("weekly-test-series")}
/>
<NavItem
{/* <NavItem
section="pro"
href="/dashboard/dpp"
icon={<FileText size={17} />}
label="Daily Practice (DPP)"
active={pathname.startsWith("/dashboard/dpp")}
isLocked={!hasAccessTo("chapter-wise-progress-tracking")}
/>
/> */}
<NavItem
section="pro"
@@ -422,7 +423,7 @@ export default function DashboardLayout({ children }: { children: ReactNode }) {
{trialInfo.isTrialActive && (
<div className="bg-primary text-primary-foreground px-4 py-2.5 text-center text-sm font-bold flex justify-center items-center gap-2 shadow-sm shrink-0 z-30">
<span className="size-2 rounded-full bg-primary-foreground animate-pulse"></span>
{trialInfo.trialDaysRemaining} Days Remaining out of {trialInfo.trialTotalDays} Days in Free Trial
15 Days Free Trial - Day {trialInfo.trialDayNumber}
</div>
)}

View File

@@ -5,7 +5,7 @@ import { useEffect, useState } from "react";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { useActiveUser } from "@/hooks/useActiveUser";
import { User as UserIcon, Upload, CheckCircle2, Settings } from "lucide-react";
import { User as UserIcon, Upload, CheckCircle2, Settings, Eye, EyeOff } from "lucide-react";
export default function SettingsPage() {
const { userId, user, refreshUser, loading: userLoading } = useActiveUser();
@@ -74,6 +74,9 @@ export default function SettingsPage() {
const [newPassword, setNewPassword] = useState("");
const [confirmPassword, setConfirmPassword] = useState("");
const [passwordSaving, setPasswordSaving] = useState(false);
const [showCurrent, setShowCurrent] = useState(false);
const [showNew, setShowNew] = useState(false);
const [showConfirm, setShowConfirm] = useState(false);
const handleChangePassword = async () => {
if (newPassword !== confirmPassword) {