From 2f78bf4c33a05fa9d4231be80fe1fff4bd6d9ada Mon Sep 17 00:00:00 2001 From: Stojan Dimitrovski Date: Thu, 27 Jul 2023 15:25:36 +0200 Subject: [PATCH] feat: fix nullable issues with organizations, permissions, notifications --- .../LayoutHeader/NotificationsPopover/index.tsx | 4 ++-- studio/data/organizations/organizations-query.ts | 4 ++++ studio/hooks/misc/useCheckPermissions.ts | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx index 1ff8530f549..92d8ac76d10 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx @@ -33,9 +33,9 @@ const NotificationsPopover = () => { const [targetNotification, setTargetNotification] = useState() - if (!notifications) return <> + if (!notifications || !Array.isArray(notifications)) return <> - const hasNewNotifications = notifications?.some( + const hasNewNotifications = notifications.some( (notification) => notification.notification_status === NotificationStatus.New ) diff --git a/studio/data/organizations/organizations-query.ts b/studio/data/organizations/organizations-query.ts index 98a2795b55b..4e3b207811f 100644 --- a/studio/data/organizations/organizations-query.ts +++ b/studio/data/organizations/organizations-query.ts @@ -9,6 +9,10 @@ export async function getOrganizations(signal?: AbortSignal): Promise a.name.localeCompare(b.name)) return sorted diff --git a/studio/hooks/misc/useCheckPermissions.ts b/studio/hooks/misc/useCheckPermissions.ts index 257b4482a67..f1228eda934 100644 --- a/studio/hooks/misc/useCheckPermissions.ts +++ b/studio/hooks/misc/useCheckPermissions.ts @@ -15,7 +15,11 @@ export function doPermissionsCheck( data?: object, organizationId?: number ) { - return (permissions ?? []) + if (!permissions || !Array.isArray(permissions)) { + return false + } + + return permissions .filter( (permission) => permission.organization_id === organizationId &&