| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { PermissionAction } from '@supabase/shared-types/out/constants'
- import { useParams } from 'common'
- import { PropsWithChildren } from 'react'
- import { ProjectLayout } from '../ProjectLayout'
- import { LogsSidebarMenuV2 } from './LogsSidebarMenuV2'
- import NoPermission from '@/components/ui/NoPermission'
- import { UnknownInterface } from '@/components/ui/UnknownInterface'
- import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
- import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
- import { withAuth } from '@/hooks/misc/withAuth'
- interface LogsLayoutProps {
- title: string
- }
- const LogsLayout = ({ title, children }: PropsWithChildren<LogsLayoutProps>) => {
- const { ref } = useParams()
- const logsEnabled = useIsFeatureEnabled('logs:all')
- const { isLoading, can: canUseLogsExplorer } = useAsyncCheckPermissions(
- PermissionAction.ANALYTICS_READ,
- 'logflare'
- )
- if (!logsEnabled) {
- return (
- <ProjectLayout product="logs" browserTitle={{ section: title }}>
- <UnknownInterface urlBack={`/project/${ref}`} />
- </ProjectLayout>
- )
- }
- if (!canUseLogsExplorer) {
- if (isLoading) {
- return (
- <ProjectLayout isLoading product="logs" browserTitle={{ section: title }} />
- )
- }
- if (!isLoading && !canUseLogsExplorer) {
- return (
- <ProjectLayout product="logs" browserTitle={{ section: title }}>
- <NoPermission isFullPage resourceText="access your project's logs" />
- </ProjectLayout>
- )
- }
- }
- return (
- <ProjectLayout
- product="logs"
- browserTitle={{ section: title }}
- productMenu={<LogsSidebarMenuV2 />}
- >
- {children}
- </ProjectLayout>
- )
- }
- export default withAuth(LogsLayout)
|