From 7ed16e54092d2f0fe211cc397f92bf1ae1844c7d Mon Sep 17 00:00:00 2001 From: Aa9yaBhandar1 Date: Tue, 10 Feb 2026 14:16:59 +0545 Subject: [PATCH] feat(ui):Created setting page for personal details and minor changes on layout --- public/favicon.ico | Bin 15406 -> 15406 bytes public/logo.jpeg | Bin 0 -> 8670 bytes public/logo.png | Bin 0 -> 50079 bytes src/app/(protected)/settings/page.tsx | 155 +++++++ src/app/layout.tsx | 2 +- src/components/layout/navbar.tsx | 22 +- src/components/layout/sidebar.tsx | 18 +- .../ui/components/calendar-widget.tsx | 2 +- .../dashboard/ui/components/mini-todo.tsx | 6 +- .../dashboard/ui/views/dashboard-view.tsx | 17 +- src/modules/settings/type.ts | 6 + src/modules/settings/ui/accountDeletion.tsx | 258 +++++++++++ src/modules/settings/ui/passwordChange.tsx | 401 ++++++++++++++++++ src/modules/settings/ui/personalDetails.tsx | 151 +++++++ 14 files changed, 998 insertions(+), 40 deletions(-) create mode 100644 public/logo.jpeg create mode 100644 public/logo.png create mode 100644 src/app/(protected)/settings/page.tsx create mode 100644 src/modules/settings/type.ts create mode 100644 src/modules/settings/ui/accountDeletion.tsx create mode 100644 src/modules/settings/ui/passwordChange.tsx create mode 100644 src/modules/settings/ui/personalDetails.tsx diff --git a/public/favicon.ico b/public/favicon.ico index 60c702aac13409c82c4040f8fee9603eb84aa10c..3ef68e9ab88a571b8d5cf9addb18aa3ca7833d69 100644 GIT binary patch literal 15406 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 az5APXoY_9n;h#VJa|Hezf&cF#@V@|=VzDy- literal 15406 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 A#Q*>R diff --git a/public/logo.jpeg b/public/logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f5d92b72087d2bc8f2bfc76c75e903549685909a GIT binary patch literal 8670 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 literal 0 HcmV?d00001 diff --git a/src/app/(protected)/settings/page.tsx b/src/app/(protected)/settings/page.tsx new file mode 100644 index 0000000..d72324e --- /dev/null +++ b/src/app/(protected)/settings/page.tsx @@ -0,0 +1,155 @@ +"use client"; + +import React, { useState } from "react"; +import { User, Lock, Trash2, X, Settings as SettingsIcon } from "lucide-react"; +import AccountDeletion from "~/modules/settings/ui/accountDeletion"; +import PasswordReset from "~/modules/settings/ui/passwordChange"; +import PersonalSettings from "~/modules/settings/ui/personalDetails"; + +type PersonalDetails = { + name: string; + email: string; + bio: string; +}; + +interface SettingsPageProps { + onClose?: () => void; +} + +export default function SettingsPage({ onClose }: SettingsPageProps) { + const [activeTab, setActiveTab] = useState< + "personal" | "password" | "danger" + >("personal"); + + const tabs = [ + { + id: "personal" as const, + label: "Personal Info", + icon: User, + description: "Manage your profile and preferences", + }, + { + id: "password" as const, + label: "Password", + icon: Lock, + description: "Update your password", + }, + { + id: "danger" as const, + label: "Account", + icon: Trash2, + description: "Delete your account", + }, + ]; + + // FIX: Changed 'any' to 'PersonalDetails' + const handleSavePersonalInfo = (data: PersonalDetails) => { + console.log("Saving personal info:", data); + // Add your API call here + }; + + const handlePasswordChange = async (data: { + currentPassword: string; + newPassword: string; + }) => { + console.log("Changing password"); + return true; + }; + + const handleDeleteAccount = async () => { + console.log("Deleting account"); + return true; + }; + + const handleExportData = () => { + console.log("Exporting user data"); + }; + + return ( +
+
+ {/* Header Section */} +
+
+
+
+ +
+

+ Settings +

+
+

+ Manage your account settings and preferences +

+
+ {onClose && ( + + )} +
+ +
+ {/* Sidebar Navigation */} +
+
+ {tabs.map((tab) => { + const Icon = tab.icon; + const isActive = activeTab === tab.id; + const isDanger = tab.id === "danger"; + + return ( + + ); + })} +
+
+ + {/* Main Content Area */} +
+ {activeTab === "personal" && ( + + )} + + {activeTab === "password" && ( + + )} + + {activeTab === "danger" && ( + + )} +
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 559c02f..6063211 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -11,7 +11,7 @@ import { cn } from "~/lib/utils"; const inter = Inter({ subsets: ["latin"], variable: "--font-sans" }); export const metadata: Metadata = { - title: "Create T3 App", + title: "ShikShya", description: "Generated by create-t3-app", icons: [{ rel: "icon", url: "/favicon.ico" }], }; diff --git a/src/components/layout/navbar.tsx b/src/components/layout/navbar.tsx index cc8c7b4..9eca986 100644 --- a/src/components/layout/navbar.tsx +++ b/src/components/layout/navbar.tsx @@ -16,6 +16,7 @@ import { cn } from "~/lib/utils"; import ProfileSidebar from "./sidebar"; import { useSession } from "~/lib/auth-client"; import { UserAvatar } from "../user-avatar"; +import Image from "next/image"; const navItems = [ { name: "Dashboard", path: "/dashboard", icon: LayoutDashboard }, @@ -60,15 +61,22 @@ export default function Navbar() { {/* Logo */} -
- - शि - + {/* Logo Icon */} +
+ Shikshya logo
- - Shikक्षya + + {/* Brand Text */} + + ShikShya diff --git a/src/components/layout/sidebar.tsx b/src/components/layout/sidebar.tsx index ea8e261..1180b74 100644 --- a/src/components/layout/sidebar.tsx +++ b/src/components/layout/sidebar.tsx @@ -110,23 +110,7 @@ export default function ProfileSidebar({ Account Settings

-
- - Personal Details -
- - -
diff --git a/src/modules/dashboard/ui/components/calendar-widget.tsx b/src/modules/dashboard/ui/components/calendar-widget.tsx index d38d6bf..1474997 100644 --- a/src/modules/dashboard/ui/components/calendar-widget.tsx +++ b/src/modules/dashboard/ui/components/calendar-widget.tsx @@ -120,7 +120,7 @@ export default function CalendarWidget() {
- +
{highestStreak}
diff --git a/src/modules/dashboard/ui/components/mini-todo.tsx b/src/modules/dashboard/ui/components/mini-todo.tsx index e23c18f..d0002bb 100644 --- a/src/modules/dashboard/ui/components/mini-todo.tsx +++ b/src/modules/dashboard/ui/components/mini-todo.tsx @@ -76,7 +76,7 @@ export const MiniTodo = () => { if (!isMounted) return null; return ( -
+

@@ -84,7 +84,7 @@ export const MiniTodo = () => {

-
+
{ onChange={(e) => setInputValue(e.target.value)} onKeyDown={(e) => e.key === "Enter" && addTodo()} placeholder="Plan your next move..." - className="flex-1 rounded-xl border border-[#24283b] bg-[#0a0a0c] px-4 py-3 text-xs text-white placeholder-slate-600 transition-all focus:border-indigo-500/50 focus:outline-none" + className="flex-1 rounded-xl border border-[#24283b] bg-[#0a0a0c] px-4 py-3 text-base text-white placeholder-slate-600 transition-all focus:border-indigo-500/50 focus:outline-none" /> + ) : ( +
+ {/* Confirmation Input */} +
+
+

+ ⚠️ Are you absolutely sure? +

+

+ This action{" "} + + cannot be undone + + . This will permanently delete your + account and remove all your data from + our servers. +

+

+ Please type{" "} + + DELETE + {" "} + to confirm: +

+ { + setConfirmText(e.target.value); + setError(""); + }} + placeholder="Type DELETE" + className="w-full rounded-lg border-2 border-red-500/40 bg-slate-900/80 px-4 py-3 font-mono text-white placeholder-slate-500 transition-all focus:border-red-500/60 focus:ring-2 focus:ring-red-500/30 focus:outline-none" + /> + {error && ( +

+ + {error} +

+ )} +
+ + {/* Final Confirmation */} +
+ + +
+
+ + {/* Action Buttons */} +
+ + +
+
+ )} +
+ + {/* Help Text */} +
+
+
+ ); +} diff --git a/src/modules/settings/ui/passwordChange.tsx b/src/modules/settings/ui/passwordChange.tsx new file mode 100644 index 0000000..69fb7c5 --- /dev/null +++ b/src/modules/settings/ui/passwordChange.tsx @@ -0,0 +1,401 @@ +"use client"; + +import React, { useState } from "react"; +import { Lock, Eye, EyeOff, Shield, Check, X, AlertCircle } from "lucide-react"; + +interface PasswordResetProps { + onPasswordChange?: (data: { + currentPassword: string; + newPassword: string; + }) => Promise; +} + +export default function PasswordReset({ + onPasswordChange, +}: PasswordResetProps) { + const [formData, setFormData] = useState({ + currentPassword: "", + newPassword: "", + confirmPassword: "", + }); + + const [showPasswords, setShowPasswords] = useState({ + current: false, + new: false, + confirm: false, + }); + + const [isSubmitting, setIsSubmitting] = useState(false); + const [error, setError] = useState(""); + const [success, setSuccess] = useState(false); + + // Password validation + const passwordRequirements = [ + { + label: "At least 8 characters", + test: (pwd: string) => pwd.length >= 8, + }, + { + label: "One uppercase letter", + test: (pwd: string) => /[A-Z]/.test(pwd), + }, + { + label: "One lowercase letter", + test: (pwd: string) => /[a-z]/.test(pwd), + }, + { label: "One number", test: (pwd: string) => /[0-9]/.test(pwd) }, + { + label: "One special character", + test: (pwd: string) => /[!@#$%^&*(),.?":{}|<>]/.test(pwd), + }, + ]; + + const handleInputChange = (field: string, value: string) => { + setFormData((prev) => ({ ...prev, [field]: value })); + setError(""); + setSuccess(false); + }; + + const togglePasswordVisibility = (field: "current" | "new" | "confirm") => { + setShowPasswords((prev) => ({ ...prev, [field]: !prev[field] })); + }; + + const validatePassword = () => { + if (!formData.currentPassword) { + setError("Please enter your current password"); + return false; + } + if (!formData.newPassword) { + setError("Please enter a new password"); + return false; + } + if (formData.newPassword === formData.currentPassword) { + setError("New password must be different from current password"); + return false; + } + if ( + !passwordRequirements.every((req) => req.test(formData.newPassword)) + ) { + setError("New password does not meet all requirements"); + return false; + } + if (formData.newPassword !== formData.confirmPassword) { + setError("Passwords do not match"); + return false; + } + return true; + }; + + const handleSubmit = async () => { + if (!validatePassword()) return; + + setIsSubmitting(true); + setError(""); + + try { + const result = await onPasswordChange?.({ + currentPassword: formData.currentPassword, + newPassword: formData.newPassword, + }); + + if (result !== false) { + setSuccess(true); + setFormData({ + currentPassword: "", + newPassword: "", + confirmPassword: "", + }); + setTimeout(() => setSuccess(false), 5000); + } else { + setError("Current password is incorrect"); + } + } catch (err) { + setError("Failed to update password. Please try again."); + } finally { + setIsSubmitting(false); + } + }; + + const allRequirementsMet = passwordRequirements.every((req) => + req.test(formData.newPassword) + ); + const passwordsMatch = + formData.newPassword && + formData.confirmPassword && + formData.newPassword === formData.confirmPassword; + + return ( +
+
+ {/* Header */} +
+

+ Change Password +

+

+ Update your password to keep your account secure +

+
+ + {/* Success Message */} + {success && ( +
+ +
+

+ Password updated successfully! +

+

+ Your password has been changed. Please use your + new password to login. +

+
+
+ )} + + {/* Error Message */} + {error && ( +
+ +
+

{error}

+
+
+ )} + + {/* Form Fields */} +
+ {/* Current Password */} +
+ +
+ + handleInputChange( + "currentPassword", + e.target.value + ) + } + className="w-full rounded-xl border border-slate-700/50 bg-slate-800/50 px-4 py-3 pr-12 text-white placeholder-slate-500 transition-all focus:border-indigo-500/50 focus:ring-2 focus:ring-indigo-500/50 focus:outline-none" + placeholder="Enter your current password" + /> + +
+
+ + {/* New Password */} +
+ +
+ + handleInputChange( + "newPassword", + e.target.value + ) + } + className="w-full rounded-xl border border-slate-700/50 bg-slate-800/50 px-4 py-3 pr-12 text-white placeholder-slate-500 transition-all focus:border-indigo-500/50 focus:ring-2 focus:ring-indigo-500/50 focus:outline-none" + placeholder="Enter your new password" + /> + +
+
+ + {/* Confirm New Password */} +
+ +
+ + handleInputChange( + "confirmPassword", + e.target.value + ) + } + className={`w-full rounded-xl border bg-slate-800/50 px-4 py-3 pr-12 text-white placeholder-slate-500 transition-all focus:ring-2 focus:outline-none ${ + formData.confirmPassword && !passwordsMatch + ? "border-red-500/50 focus:border-red-500/50 focus:ring-red-500/50" + : formData.confirmPassword && + passwordsMatch + ? "border-green-500/50 focus:border-green-500/50 focus:ring-green-500/50" + : "border-slate-700/50 focus:border-indigo-500/50 focus:ring-indigo-500/50" + }`} + placeholder="Confirm your new password" + /> + +
+ {formData.confirmPassword && ( +
+ {passwordsMatch ? ( + <> + +

+ Passwords match +

+ + ) : ( + <> + +

+ Passwords do not match +

+ + )} +
+ )} +
+
+ + {/* Password Requirements */} +
+
+ +
+

+ Password Requirements +

+

+ Your password must meet all the following + criteria: +

+
+
+ +
+ {passwordRequirements.map((req, index) => { + const isMet = req.test(formData.newPassword); + return ( +
+
+ {isMet ? ( + + ) : ( + + )} +
+ + {req.label} + +
+ ); + })} +
+
+ + {/* Security Tip */} +
+
+ +
+

+ Security Tip +

+

+ Use a unique password that you don't use + anywhere else. Consider using a password manager + to generate and store strong passwords. +

+
+
+
+ + {/* Action Buttons */} +
+ + +
+
+
+ ); +} diff --git a/src/modules/settings/ui/personalDetails.tsx b/src/modules/settings/ui/personalDetails.tsx new file mode 100644 index 0000000..4288b98 --- /dev/null +++ b/src/modules/settings/ui/personalDetails.tsx @@ -0,0 +1,151 @@ +"use client"; + +import React, { useState } from "react"; +import { User, Mail, Camera, Save } from "lucide-react"; + +type PersonalDetails = { + name: string; + email: string; + bio: string; +}; + +interface PersonalSettingsProps { + initialData?: PersonalDetails; + onSave?: (data: PersonalDetails) => void; +} +export default function PersonalSettings({ + initialData, + onSave, +}: PersonalSettingsProps) { + const [formData, setFormData] = useState({ + name: initialData?.name ?? "Shikshya", + email: initialData?.email ?? "shikshya@example.com", + bio: initialData?.bio ?? "Learning enthusiast", + }); + + const [isSaving, setIsSaving] = useState(false); + + const handleInputChange = (field: string, value: string) => { + setFormData((prev) => ({ ...prev, [field]: value })); + }; + + const handleSave = () => { + setIsSaving(true); + setTimeout(() => { + setIsSaving(false); + onSave?.(formData); + }, 1000); + }; + + return ( +
+
+ {/* Header */} +
+

+ Personal Information +

+

+ Update your profile details and information +

+
+ + {/* Profile Picture */} +
+
+
+ {formData.name.charAt(0).toUpperCase()} +
+ +
+
+

+ Profile Photo +

+
+
+ + {/* Form Fields */} +
+
+ + + handleInputChange("name", e.target.value) + } + className="w-full rounded-xl border border-slate-700/50 bg-slate-800/50 px-4 py-3 text-white placeholder-slate-500 transition-all focus:border-indigo-500/50 focus:ring-2 focus:ring-indigo-500/50 focus:outline-none" + placeholder="Enter your full name" + /> +
+ +
+ +
+ + handleInputChange("email", e.target.value) + } + className="w-full rounded-xl border border-slate-700/50 bg-slate-800/50 px-4 py-3 text-white placeholder-slate-500 transition-all focus:border-indigo-500/50 focus:ring-2 focus:ring-indigo-500/50 focus:outline-none" + placeholder="your.email@example.com" + /> +
+

+ We'll send verification to this email +

+
+ +
+ +