import Link from 'next/link' import { useRouter } from 'next/router' import { FC, useEffect, ReactNode } from 'react' import { observer } from 'mobx-react-lite' import { IconCode } from 'ui' import { checkPermissions, useStore, withAuth } from 'hooks' import FunctionsNav from '../interfaces/Functions/FunctionsNav' import BaseLayout from 'components/layouts' import NoPermission from 'components/ui/NoPermission' import { PermissionAction } from '@supabase/shared-types/out/constants' interface Props { title?: string children?: ReactNode } const FunctionsLayout: FC = ({ title, children }) => { const { functions, ui } = useStore() const router = useRouter() const { id, ref } = router.query useEffect(() => { if (ui.selectedProjectRef) functions.load() }, [ui.selectedProjectRef]) const canReadFunctions = checkPermissions(PermissionAction.FUNCTIONS_READ, '*') if (!canReadFunctions) { return (
) } const item = id ? functions.byId(id) : null const name = item?.name || '' const hasFunctions = functions.list().length > 0 const centered = !hasFunctions return ( {centered ? ( <>

Edge Functions

Beta

{children}
) : (

Edge Functions

Beta

{name && ( <>
{name}
)}
{item && }
{children}
)}
) } export default withAuth(observer(FunctionsLayout))