)
}
diff --git a/src/web/src/layouts/PublicLayout.tsx b/src/web/src/layouts/PublicLayout.tsx
index 0526116..11731a8 100644
--- a/src/web/src/layouts/PublicLayout.tsx
+++ b/src/web/src/layouts/PublicLayout.tsx
@@ -6,7 +6,7 @@ interface PublicLayoutProps {
export function PublicLayout({ children }: PublicLayoutProps) {
return (
-
+
{children}
)
diff --git a/src/web/src/pages/HomePage.tsx b/src/web/src/pages/HomePage.tsx
index 452ea85..f41bf41 100644
--- a/src/web/src/pages/HomePage.tsx
+++ b/src/web/src/pages/HomePage.tsx
@@ -1,8 +1,109 @@
+import {
+ TrendingUp,
+ Calculator,
+ Zap,
+ Settings,
+ LayoutDashboard,
+} from 'lucide-react'
+import {
+ Card,
+ CardContent,
+ CardDescription,
+ CardFooter,
+ CardHeader,
+ CardTitle,
+} from '@/components/ui/card'
+import { Badge } from '@/components/ui/badge'
+import { useAuthStore } from '@/stores/authStore'
+
+interface ModuleCard {
+ title: string
+ description: string
+ icon: React.ElementType
+ available: boolean
+}
+
+const modules: ModuleCard[] = [
+ {
+ title: 'Dashboard',
+ description: 'Vista general del sistema y métricas principales.',
+ icon: LayoutDashboard,
+ available: true,
+ },
+ {
+ title: 'Ventas',
+ description: 'Gestión de ventas, presupuestos y seguimiento de clientes.',
+ icon: TrendingUp,
+ available: false,
+ },
+ {
+ title: 'Tasación',
+ description: 'Herramientas de valuación y tasación de propiedades.',
+ icon: Calculator,
+ available: false,
+ },
+ {
+ title: 'Integraciones',
+ description: 'Conectores con portales inmobiliarios y servicios externos.',
+ icon: Zap,
+ available: false,
+ },
+ {
+ title: 'Administración',
+ description: 'Gestión de usuarios, roles y configuración del sistema.',
+ icon: Settings,
+ available: false,
+ },
+]
+
export function HomePage() {
+ const user = useAuthStore((s) => s.user)
+
return (
-
-
Dashboard
-
Bienvenido al SIG-CM2.
+
+ {/* Welcome */}
+
+
+ Panel principal
+
+
+ {user?.nombre
+ ? `Bienvenido, ${user.nombre}. Seleccioná un módulo para comenzar.`
+ : 'Bienvenido al SIG-CM 2.0. Seleccioná un módulo para comenzar.'}
+
+
+
+ {/* Module grid */}
+
+ {modules.map((mod) => {
+ const Icon = mod.icon
+ return (
+
+
+
+
+ {mod.title}
+
+
+
+ {mod.description}
+
+
+ {mod.available ? (
+ Disponible
+ ) : (
+ Próximamente
+ )}
+
+
+ )
+ })}
+
)
}