import { PermissionAction } from '@supabase/shared-types/out/constants' import { useState } from 'react' import { CreateFunction, DeleteFunction } from 'components/interfaces/Database' import FunctionsList from 'components/interfaces/Database/Functions/FunctionsList/FunctionsList' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { DatabaseFunction } from 'data/database-functions/database-functions-query' import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' import type { NextPageWithLayout } from 'types' const FunctionsPage: NextPageWithLayout = () => { const [selectedFunction, setSelectedFunction] = useState() const [showCreateFunctionForm, setShowCreateFunctionForm] = useState(false) const [showDeleteFunctionForm, setShowDeleteFunctionForm] = useState(false) const canReadFunctions = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'functions') const isPermissionsLoaded = usePermissionsLoaded() const createFunction = () => { setSelectedFunction(undefined) setShowCreateFunctionForm(true) } const editFunction = (fn: any) => { setSelectedFunction(fn) setShowCreateFunctionForm(true) } const deleteFunction = (fn: any) => { setSelectedFunction(fn) setShowDeleteFunctionForm(true) } if (isPermissionsLoaded && !canReadFunctions) { return } return ( <>
) } FunctionsPage.getLayout = (page) => {page} export default FunctionsPage