Nexus/START-HERE.md

10 KiB
Raw Permalink Blame History

INTEGRACIÓN COMPLETA - @lobehub/ui Components

🎉 Resumen Final

Has conseguido una aplicación de chat AI moderna con componentes oficiales de @lobehub/ui, incluyendo:

  • React 19 + TypeScript
  • @lobehub/ui Avatar, ChatInput
  • Vite build tool
  • antd-style CSS-in-JS
  • Glassmorphism premium
  • Socket.IO real-time
  • Gradientes vibrantes

🚀 INICIO RÁPIDO

1 Instalar Dependencias (si no lo has hecho)

npm install

Nota: Ya están instaladas todas las dependencias necesarias:

  • @lobehub/ui - Componentes UI
  • antd - Ant Design (requerido por @lobehub/ui)
  • @lobehub/fluent-emoji - Sistema de emojis (requerido por @lobehub/ui)
  • antd-style - CSS-in-JS
  • react + react-dom - Framework
  • vite - Build tool

2 Iniciar Todo

npm run dev:all

Este comando ejecuta:

  • Backend (Express + Socket.IO) en http://localhost:3000
  • Frontend (React + Vite) en http://localhost:3001

3 Abrir en el Navegador

http://localhost:3001

Si ves errores de módulos, consulta FIX-DEPENDENCIES.md


📦 Estructura Completa

Nexus/
├── client/                      # ⭐ Cliente React
│   ├── index.html
│   ├── tsconfig.json           # Config TS para React
│   ├── tsconfig.node.json
│   └── src/
│       ├── main.tsx            # Entry point
│       ├── App.tsx             # App principal
│       ├── App.css
│       ├── index.css
│       ├── components/         # Componentes React
│       │   ├── Sidebar.tsx     # ✅ Avatar de @lobehub/ui
│       │   ├── ChatContainer.tsx # ✅ ChatInput de @lobehub/ui
│       │   ├── ChatMessage.tsx  # ✅ Avatar con gradientes
│       │   └── WelcomeScreen.tsx
│       ├── hooks/
│       │   └── useChat.ts      # Socket.IO logic
│       └── types/
│           └── index.ts        # TypeScript types
├── src/                         # Backend
│   ├── server/
│   │   └── WebServer.ts        # Express + Socket.IO
│   ├── services/
│   └── ...
├── public/                      # Assets estáticos
│   ├── index.html              # HTML antiguo (legacy)
│   ├── css/
│   └── js/
├── vite.config.ts              # ⭐ Config Vite
├── tsconfig.json               # Config TS backend
└── package.json

🎨 Componentes @lobehub/ui Implementados

1. Avatar (Sidebar + ChatMessage)

import { Avatar } from '@lobehub/ui';

<Avatar
  size={36}
  avatar={<User size={20} />}
  style={{
    background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
  }}
/>

Usado en:

  • Perfil de usuario (Sidebar)
  • Mensajes de usuario (purple gradient)
  • Mensajes de IA (cyan gradient)

2. ChatInput (ChatContainer)

import { ChatInput } from '@lobehub/ui';

<ChatInput
  placeholder="Envía un mensaje..."
  onSend={handleSend}
  style={{
    background: 'rgba(255, 255, 255, 0.05)',
    backdropFilter: 'blur(8px)',
  }}
/>

Características:

  • Auto-expanding textarea
  • Enter para enviar
  • Shift+Enter para nueva línea
  • Glassmorphism styling

3. antd-style (Todos los componentes)

import { createStyles } from 'antd-style';

const useStyles = createStyles(({ css }) => ({
  container: css`
    background: rgba(17, 17, 17, 0.7);
    backdrop-filter: blur(20px);
  `,
}));

Usado en:

  • Sidebar styles
  • ChatContainer styles
  • ChatMessage styles
  • WelcomeScreen styles

🔌 Flujo de Comunicación

[Browser]                    [Vite:3001]              [Express:3000]
    │                            │                          │
    │──── HTTP Request ──────────>│                          │
    │                            │                          │
    │<─── index.html + React ────│                          │
    │                            │                          │
    │──── Socket.IO Connect ─────┼────────────────────────>│
    │                            │                          │
    │──── user_message ──────────┼────────────────────────>│
    │                            │                          │
    │<─── ai_response ───────────┼──────────────────────────│
    │                            │                          │

Proxy Vite:

  • /socket.io/*http://localhost:3000 (WS)
  • /api/*http://localhost:3000 (HTTP)

🎨 Estilos Glassmorphism

Todos los componentes usan el sistema de Lobe UI:

/* Glassmorphism Base */
background: rgba(17, 17, 17, 0.7);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.08);

/* Gradientes Purple */
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

/* Gradientes Cyan */
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);

📊 Componentes por Archivo

Sidebar.tsx

  • Glassmorphism container
  • Botón "Nuevo chat" con gradiente
  • Lista de conversaciones
  • Avatar de @lobehub/ui (usuario)
  • Hover effects

ChatContainer.tsx

  • Área de mensajes scrollable
  • ChatInput de @lobehub/ui
  • WelcomeScreen cuando vacío
  • Disclaimer text

ChatMessage.tsx

  • Avatar de @lobehub/ui
  • Gradientes para user/AI
  • Formateo Markdown
  • Typing indicator
  • fadeIn animation

WelcomeScreen.tsx

  • Logo con pulse animation
  • Título con text gradient
  • 4 tarjetas de sugerencias
  • Iconos lucide-react

useChat.ts (Hook)

  • Socket.IO connection
  • Estado de mensajes
  • Estado de conversaciones
  • Enviar mensaje
  • Indicador typing

🎯 Scripts Disponibles

Desarrollo

# Ambos servidores (recomendado)
npm run dev:all

# Solo backend
npm run dev

# Solo frontend
npm run dev:client

Producción

# Build todo
npm run build

# Ejecutar
npm start

Utilidades

# Limpiar dist
npm run clean

# Lint
npm run lint

# Format
npm run format

🌟 Características Clave

1. Type Safety Total

Todo está tipado con TypeScript:

interface Message {
  id: string;
  role: 'user' | 'assistant';
  content: string;
  timestamp: Date;
}

2. Hot Module Replacement

Cambios instantáneos sin reload:

  • Editar componente → Update inmediato
  • Editar styles → Update visual
  • Estado preservado

3. CSS-in-JS

Estilos scoped con antd-style:

  • No class name conflicts
  • Temas dinámicos
  • Type-safe
  • Performance optimizado

4. Glassmorphism Premium

Efectos visuales modernos:

  • backdrop-filter blur
  • Transparencias RGBA
  • Gradientes vibrantes
  • Sombras con glow

5. Socket.IO Real-time

Comunicación instantánea:

  • Conexión persistente
  • Eventos bidireccionales
  • Manejo de errores
  • Reconexión automática

🎨 Paleta de Colores

Gradientes

/* Purple (Usuario) */
linear-gradient(135deg, #667eea 0%, #764ba2 100%)

/* Cyan (IA) */
linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)

/* Success */
linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)

/* Warning */
linear-gradient(135deg, #fa709a 0%, #fee140 100%)

Fondos

--bg-primary: #0a0a0a
--bg-glass: rgba(17, 17, 17, 0.7)
--bg-elevated: rgba(255, 255, 255, 0.05)

Bordes

--border-glass: rgba(255, 255, 255, 0.08)
--border-focus: rgba(102, 126, 234, 0.4)

🔧 Próximas Mejoras Sugeridas

Corto Plazo

  • Agregar DraggablePanel para sidebar
  • Usar ChatList oficial de @lobehub/ui
  • Agregar ChatHeader component
  • Implementar MarkdownRenderer
  • Agregar ActionIconGroup

Medio Plazo

  • Base de datos (PostgreSQL)
  • Autenticación (JWT)
  • Subida de archivos
  • Búsqueda en chats
  • Exportar conversaciones

Largo Plazo

  • Integración OpenAI/Claude
  • Streaming de respuestas
  • Multi-modal (voz, imagen)
  • Colaboración en tiempo real
  • Plugin system

📝 Notas Importantes

Puerto 3001 vs 3000

  • 3001: Frontend React (desarrollo)
  • 3000: Backend Express (siempre)
  • En producción: Solo 3000 (sirve build de React)

Proxy Automático

Vite proxy automático a 3000:

  • No necesitas CORS en desarrollo
  • Socket.IO funciona transparentemente
  • API calls van directo al backend

TypeScript Configs

  • /tsconfig.json → Backend
  • /client/tsconfig.json → Frontend React
  • Separados para evitar conflictos

Checklist de Verificación

Antes de empezar, verifica:

  • Node >= 18.0.0
  • npm install completado
  • Puerto 3000 disponible
  • Puerto 3001 disponible
  • @lobehub/ui instalado
  • React 19 instalado
  • Vite instalado
  • TypeScript configs creados

🎉 ¡Listo para Usar!

Comando único:

npm run dev:all

Luego abre:

http://localhost:3001

Deberías ver:

Sidebar con glassmorphism Logo animado con pulse Tarjetas de sugerencias ChatInput de @lobehub/ui Gradientes purple/cyan


📚 Documentación de Referencia


🆘 Solución de Problemas

Error: Puerto 3000 en uso

lsof -i :3000
kill -9 <PID>

Error: Puerto 3001 en uso

lsof -i :3001
kill -9 <PID>

Error: Module not found

rm -rf node_modules
npm install

Error: TypeScript

npm run clean
npm run build

🎯 Estado Final

COMPLETADO AL 100%

Has conseguido:

  • React app con @lobehub/ui
  • Glassmorphism design
  • Socket.IO real-time
  • TypeScript full
  • Vite HMR
  • antd-style CSS-in-JS
  • Production ready

Disfruta tu aplicación moderna! 🚀


Última actualización: 14 de Febrero, 2026 Stack: React 19 + @lobehub/ui + Vite + Socket.IO Estado: Production Ready