Resumen del fix — Prioridad 2:
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled

Cambios en WorkspacePage.tsx:

orgName ahora es string | null | undefined. undefined = query no completó aún, null = proceso sin org (o query sin resultado), string = nombre real.
Reemplazó .single() por .maybeSingle() — .single() lanzaba PGRST116 cuando el org no existía, data quedaba en null y setOrgName nunca se llamaba, dejando el estado indefinido.
setOrgName(data?.name ?? null) se llama siempre, sin condición if (data).
backLabel pasa de orgId ? (orgName ?? 'Volver') : 'Biblioteca' a simplemente orgName ?? 'Biblioteca' — el nombre real si cargó, o el fallback genérico en cualquier otro caso. Ya no depende de orgId para decidir el label.
handleBack() no cambió — sigue usando currentProcess?.orgId para construir el URL correcto a /library?org=xxx.
Listo para validación visual en workspace con un proceso de cliente que tenga org_id en la DB.
This commit is contained in:
2026-07-07 14:53:39 -03:00
parent f3f55a6857
commit 6fee592e40
3 changed files with 32 additions and 19 deletions

View File

@@ -9,14 +9,12 @@ type PlatformRole = 'platform_admin' | 'member' | 'client_editor' | 'client_view
function resolveBackButton(
platformRole: PlatformRole | undefined,
orgId: string | null,
orgName: string | null,
orgName: string | null | undefined, // undefined = cargando, null = sin resultado
): { backLabel: string; backTo: string } {
const isClientRole = platformRole === 'client_editor' || platformRole === 'client_viewer'
const backLabel = isClientRole
? 'Procesos'
: orgId
? (orgName ?? 'Volver')
: 'Biblioteca'
: orgName ?? 'Biblioteca'
const backTo = orgId && !isClientRole ? `/library?org=${orgId}` : '/library'
return { backLabel, backTo }
}
@@ -28,9 +26,9 @@ describe('workspace back button — lógica de backLabel y backTo', () => {
expect(backTo).toBe('/library?org=org-uuid-123')
})
it('2. admin con proceso de cliente mientras orgName carga → muestra "Volver" como fallback', () => {
const { backLabel, backTo } = resolveBackButton('platform_admin', 'org-uuid-123', null)
expect(backLabel).toBe('Volver')
it('2. admin con proceso de cliente mientras orgName carga → muestra "Biblioteca" como fallback', () => {
const { backLabel, backTo } = resolveBackButton('platform_admin', 'org-uuid-123', undefined)
expect(backLabel).toBe('Biblioteca')
expect(backTo).toBe('/library?org=org-uuid-123')
})