fix(studio): el cliente sin uMind entraba a un callejón sin salida

Si un cliente llegaba a /portal/studio sin ningún espacio asignado —por la URL
directa o un enlace viejo— la pantalla le decía "elegí tu espacio de la
izquierda" y "adentro vas a poder crear tus agentes". La izquierda estaba
vacía y crear no puede.

Ahora ve qué es uMind, un botón para pedir que se lo activen y la vuelta al
portal. Es el mismo mensaje que ya muestra el dashboard cuando no lo tiene.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-19 12:30:57 -05:00
co-authored by Claude Opus 5
parent 86cdb2d368
commit 3ee83c8534
5 changed files with 33 additions and 10 deletions
+23
View File
@@ -6,6 +6,7 @@ import { apiUmind, contexto } from '../lib/contexto.js'
const router = useRouter()
const cargando = ref(contexto.esPortal)
const sinEspacios = ref(false)
// El cliente no tiene "tenants": tiene SU asistente. Si solo hay un espacio
// con un agente —el caso normal— entrar obligándolo a elegir dos veces es
@@ -18,6 +19,10 @@ async function irAlAgenteSiEsUnoSolo() {
try {
const t = await api.get(apiUmind('/umind/tenants'))
const tenants = t.items || []
if (tenants.length === 0) {
sinEspacios.value = true
return
}
if (tenants.length !== 1) return
const tenantId = tenants[0].ID
@@ -43,6 +48,24 @@ onMounted(irAlAgenteSiEsUnoSolo)
Abriendo tu asistente
</div>
<!-- Sin espacios no hay nada que elegir ni forma de crearlo: mandarlo a
"elegí de la izquierda" cuando la izquierda está vacía es un callejón. -->
<div v-else-if="sinEspacios" class="max-w-md mx-auto text-center py-20">
<div class="text-4xl mb-4">🤖</div>
<h1 class="text-lg font-medium text-texto">Todavía no tenés un asistente activo</h1>
<p class="text-sm text-tenue mt-2">
uMind contesta por vos en WhatsApp y en tu sitio, con la información de tu negocio.
Entiende las notas de voz y lee las fotos y archivos que te mandan tus clientes.
</p>
<a
class="btn-primary inline-block mt-5"
href="mailto:soporte@u-site.app?subject=Quiero%20activar%20uMind"
>Quiero activarlo</a>
<p class="text-xs text-tenue mt-4">
<a href="/portal/dashboard" class="underline">Volver al portal</a>
</p>
</div>
<div v-else class="flex flex-col items-center justify-center text-center py-24">
<div class="text-4xl mb-4">💬</div>
<h1 class="text-lg font-medium text-texto">
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -4,8 +4,8 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>uMind Studio</title>
<script type="module" crossorigin src="/orchestrator/assets/index-CbuoSeqG.js"></script>
<link rel="stylesheet" crossorigin href="/orchestrator/assets/index-DUjBJRtl.css">
<script type="module" crossorigin src="/orchestrator/assets/index-Dn2ZJSQE.js"></script>
<link rel="stylesheet" crossorigin href="/orchestrator/assets/index-BaBLTLOm.css">
</head>
<!-- Sin clase de fondo: el color lo pone body en style.css desde los tokens,
que son los que cambian con el tema. Una utilidad acá le ganaba a la