diff --git a/public/favicon.ico b/public/favicon.ico
index 60c702a..3ef68e9 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/logo.jpeg b/public/logo.jpeg
new file mode 100644
index 0000000..f5d92b7
Binary files /dev/null and b/public/logo.jpeg differ
diff --git a/public/logo.png b/public/logo.png
new file mode 100644
index 0000000..26cfb61
Binary files /dev/null and b/public/logo.png differ
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 */}
+
+
+
+
+ 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 */}
+
+
-
- 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"
/>