Update layout, settings, and bulk upload password forcing
This commit is contained in:
@@ -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>
|
||||
)}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user