Conversación
Ruta /pimia/mensajes/[conversationId] · componentes, campos y acciones del checkout documentado.
Ruta y puntos de edición
Ruta: /pimia/mensajes/[conversationId]. Revisión: 2aec1b16cc01.
Esta ficha procede de lectura estática del código. Los componentes asociados pueden incluir diálogos cerrados y bloques condicionales. Las expresiones dinámicas se conservan como código; no equivalen a campos siempre visibles ni a permisos concedidos.
| Capa | Archivo relativo al repositorio |
|---|---|
| Ruta | src/app/pimia/mensajes/[conversationId]/page.tsx |
| Adaptador Next.js | src/host/screens/PimiaMensajesScreens.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaConversationScreen.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaStates.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaScreenShell.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaPageHeader.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaServiceBadge.tsx |
| Vista o componente asociado | src/features/pimia/ui/PimiaConnectDialog.tsx |
PimiaConversationScreen
Fuente: src/features/pimia/ui/PimiaConversationScreen.tsx.
Campos y controles
La columna «Reglas JSX» recoge propiedades explícitas; la validación adicional vive en los helpers y en el servidor. El enlace de estado indica dónde se lee el valor.
| Etiqueta o pista | Control | Enlace de estado | Reglas JSX | Línea |
|---|---|---|---|---|
| Mensaje | Textarea | draft | No declaradas en este nodo | 241 |
Acciones
| Rótulo literal | Handler o envío | Deshabilitado cuando | Línea |
|---|---|---|---|
| Mensajes | () => void goPimiaPath("/pimia/mensajes") | No declarado en este nodo | 163 |
| Enviar | submit del formulario | draft.trim() === "" || sendMessage.isPending | 256 |
Estados reutilizados
-
PimiaNotConnected -
PimiaErrorState -
PimiaEmpty -
PimiaRowsSkeleton
Clases de presentación locales
Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.
text-2xs, text-amber-600, dark:text-amber-500, text-sm, text-muted-foreground, overflow-y-auto, bg-card, p-4, text-center, gap-2, text-xs.
PimiaStates
Fuente: src/features/pimia/ui/PimiaStates.tsx.
Acciones
| Rótulo literal | Handler o envío | Deshabilitado cuando | Línea |
|---|---|---|---|
| Conectar una empresa | () => setIsConnectOpen(true) | No declarado en este nodo | 99 |
| Rótulo dinámico / icono | () => void goPimiaPath(notFound.listPath) | No declarado en este nodo | 233 |
| Rótulo dinámico / icono | delegado al contenedor | No declarado en este nodo | 247 |
| Rótulo dinámico / icono | () => void goPimiaPath( closedDoor.action?.kind === "plan" ? PLAN_PATH : MODULES_SETTINGS_PATH, ) | No declarado en este nodo | 257 |
| Volver a conectar | () => setIsConnectOpen(true) | No declarado en este nodo | 273 |
| Reintentar | onRetry | No declarado en este nodo | 279 |
Clases de presentación locales
Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.
gap-4, p-8, text-center, text-base, text-foreground, text-sm, text-muted-foreground, gap-2, overflow-hidden, bg-muted/40.
PimiaConnectDialog
Fuente: src/features/pimia/ui/PimiaConnectDialog.tsx.
Campos y controles
La columna «Reglas JSX» recoge propiedades explícitas; la validación adicional vive en los helpers y en el servidor. El enlace de estado indica dónde se lee el valor.
| Etiqueta o pista | Control | Enlace de estado | Reglas JSX | Línea |
|---|---|---|---|---|
| Tu empresa | Input | baseUrl | disabled=connect.isPending | 114 |
Acciones
| Rótulo literal | Handler o envío | Deshabilitado cuando | Línea |
|---|---|---|---|
| Cancelar | () => handleOpenChange(false) | No declarado en este nodo | 155 |
| Rótulo dinámico / icono | submit del formulario | !canSubmit | 162 |
Clases de presentación locales
Selección de clases literales; las clases condicionales y los estilos de los primitivos se consultan en el archivo.
text-sm, text-foreground, gap-2, text-muted-foreground, text-xs, text-destructive.
Hooks, adaptadores y utilidades relacionados
-
src/features/pimia/api/auth.ts -
src/features/pimia/api/conversations.ts -
src/features/pimia/api/pimiaClient.ts -
src/features/pimia/hooks/usePimiaAuth.ts -
src/features/pimia/hooks/usePimiaMensajes.ts -
src/features/pimia/hooks/usePimiaResources.ts -
src/features/pimia/lib/closedDoors.ts -
src/features/pimia/lib/missingRecord.ts -
src/features/pimia/lib/scopeDenial.ts -
src/features/pimia/lib/wabai.ts
Antes de entregar un retoque
- Revisa los archivos de formulario y sus helpers antes de cambiar tipos, obligatoriedad o valores iniciales.
- Prueba carga, error, vacío, permisos insuficientes y guardado pendiente en las variantes que usa esta pantalla.
- Comprueba escritorio, móvil, teclado, tema oscuro y scroll con suficientes filas.
- Conserva los handlers y la invalidación de datos al modificar la presentación.