From caace928ac81c284629ee50942d72179d4da9784 Mon Sep 17 00:00:00 2001
From: Biswa Kalyan Bhuyan <biswa@surgot.in>
Date: Thu, 24 Apr 2025 09:13:07 +0530
Subject: feat: Fix loan API type assertion and complete core loan features

- Resolve interface conversion panic in loan handlers by correcting
  user type assertions from *models.User to models.User
- Finalize loan management API integration with frontend components
- Implement remaining loan calculation logic and CRUD operations
- Connect loan display components to backend APIs as per Phase 3
- Update project status in README.md to reflect completed loan features
- Add CORS middleware configuration for frontend-backend communication

This commit completes core loan management functionality and fixes critical
type safety issues in the API handlers, enabling proper user context handling.
---
 frontend/src/components/shared/ThemeToggle.tsx | 36 ++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 frontend/src/components/shared/ThemeToggle.tsx

(limited to 'frontend/src/components/shared/ThemeToggle.tsx')

diff --git a/frontend/src/components/shared/ThemeToggle.tsx b/frontend/src/components/shared/ThemeToggle.tsx
new file mode 100644
index 0000000..679bbc5
--- /dev/null
+++ b/frontend/src/components/shared/ThemeToggle.tsx
@@ -0,0 +1,36 @@
+'use client';
+
+import { Moon, Sun } from 'lucide-react';
+import { Button } from '@/components/ui/button';
+import { useTheme } from './ThemeProvider';
+
+export function ThemeToggle() {
+  const { theme, setTheme } = useTheme();
+
+  const toggleTheme = () => {
+    if (theme === 'dark') {
+      setTheme('light');
+    } else {
+      setTheme('dark');
+    }
+  };
+
+  return (
+    <Button 
+      variant="ghost" 
+      size="icon" 
+      onClick={toggleTheme}
+      aria-label={
+        theme === 'dark' 
+          ? 'Switch to light theme' 
+          : 'Switch to dark theme'
+      }
+    >
+      {theme === 'dark' ? (
+        <Sun className="h-[1.2rem] w-[1.2rem]" />
+      ) : (
+        <Moon className="h-[1.2rem] w-[1.2rem]" />
+      )}
+    </Button>
+  );
+} 
\ No newline at end of file
-- 
cgit v1.2.3-59-g8ed1b

