Files
supabase/apps/studio/components/layouts/LogsLayout/LogsLayout.tsx
Jordi Enric d4b54baf94 logs layout: fix "unauthorized" screen jump scare (#33418)
add async permission check hook and use it in logs layout
2025-02-13 22:00:27 +01:00

40 lines
1.1 KiB
TypeScript

import { PermissionAction } from '@supabase/shared-types/out/constants'
import { PropsWithChildren } from 'react'
import NoPermission from 'components/ui/NoPermission'
import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions'
import { withAuth } from 'hooks/misc/withAuth'
import ProjectLayout from '../ProjectLayout/ProjectLayout'
import { LogsSidebarMenuV2 } from './LogsSidebarMenuV2'
interface LogsLayoutProps {
title?: string
}
const LogsLayout = ({ title, children }: PropsWithChildren<LogsLayoutProps>) => {
const { isLoading, can: canUseLogsExplorer } = useAsyncCheckProjectPermissions(
PermissionAction.ANALYTICS_READ,
'logflare'
)
if (isLoading) {
return <ProjectLayout isLoading></ProjectLayout>
}
if (!isLoading && !canUseLogsExplorer) {
return (
<ProjectLayout>
<NoPermission isFullPage resourceText="access your project's logs" />
</ProjectLayout>
)
}
return (
<ProjectLayout title={title} product="Logs & Analytics" productMenu={<LogsSidebarMenuV2 />}>
{children}
</ProjectLayout>
)
}
export default withAuth(LogsLayout)