From bea8e26afe385cace5f553ca16abc77e7df8bb0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20S=C3=A1nchez?= Date: Thu, 13 Aug 2026 09:20:34 -0600 Subject: [PATCH] fix[frontend](broadcast): removed null arrays access with .length --- .../services/broadcast-http.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/features/platform-broadcast/services/broadcast-http.service.ts b/frontend/src/features/platform-broadcast/services/broadcast-http.service.ts index 438bea2c3..72a0fc830 100644 --- a/frontend/src/features/platform-broadcast/services/broadcast-http.service.ts +++ b/frontend/src/features/platform-broadcast/services/broadcast-http.service.ts @@ -32,12 +32,17 @@ function withSelector(selector: BulkSelector, resource: T) { return { selector, ...resource } } +// Go's nil slices marshal to JSON null; normalize so consumers can safely read `.length`. +function normalize(r: BulkResult | null | undefined): BulkResult { + return { succeeded: r?.succeeded ?? [], failed: r?.failed ?? [] } +} + async function post( path: string, selector: BulkSelector, resource: Resource, ): Promise { - return api.post(path, withSelector(selector, resource)) + return normalize(await api.post(path, withSelector(selector, resource))) } /** Send `resource` to every selected tenant against `path` (a full `/platform/**\/bulk/**` route). */ @@ -108,5 +113,5 @@ export async function broadcastBrandingAsset( const form = new FormData() form.append('file', file) form.append('selector', JSON.stringify(selector)) - return api.post(BULK_PATHS.branding.uploadAsset(slot), form) + return normalize(await api.post(BULK_PATHS.branding.uploadAsset(slot), form)) }