import { PermissionAction } from '@supabase/shared-types/out/constants'
import { observer } from 'mobx-react-lite'
import { PropsWithChildren, useEffect } from 'react'
import NoPermission from 'components/ui/NoPermission'
import { useCheckPermissions, useStore } from 'hooks'
import { ProjectLayoutWithAuth } from '../'
import TableEditorMenu from './TableEditorMenu'
const TableEditorLayout = ({ children }: PropsWithChildren<{}>) => {
const { vault, meta, ui } = useStore()
const canReadTables = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'tables')
const vaultExtension = meta.extensions.byId('supabase_vault')
const isVaultEnabled = vaultExtension !== undefined && vaultExtension.installed_version !== null
useEffect(() => {
if (ui.selectedProjectRef) {
meta.types.load()
meta.policies.load()
meta.publications.load()
meta.extensions.load()
}
}, [ui.selectedProjectRef])
useEffect(() => {
if (isVaultEnabled) {
vault.load()
}
}, [ui.selectedProjectRef, isVaultEnabled])
if (!canReadTables) {
return (
)
}
return (
}>
{children}
)
}
export default observer(TableEditorLayout)