mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 18:05:11 +03:00
Stacked PR 2/5 for page title improvements. Includes Auth, Database, editors, and Edge Functions layout title adoption. _Base: [dnywh/feat/page-titles](https://github.com/supabase/supabase/pull/43538)_ --- ## What kind of change does this PR introduce? - Resolves FE-1960 - Resolves FE-1983 - Resolves DEPR-207 ## What is the current behavior? Page titles between surfaces are inconsistent and vague. Sometimes they say the product name: ``` My Project | My Org | Supabase ``` ...even when on a specific surface like Database > Tables. Other times they show the entity name but skip over the project or org name : ``` Edge Functions | Supabase ``` ## What is the new behavior? Auth, Database, editors, and Edge Functions adopt the layout title format introduced in https://github.com/supabase/supabase/pull/43538: ``` users | Table Editor | My Project | My Org | Supabase hello-world | Logs | Edge Functions | My Project | My Org | Supabase Backups | Database | My Project | My Org | Supabase Authentication | My Project | My Org | Supabase ``` That format is: entity, section, surface, project, org, brand ## Additional context Related stacked PRs also based on the the original [dnywh/feat/page-titles](https://github.com/supabase/supabase/pull/43538) branch: - https://github.com/supabase/supabase/pull/43535 - https://github.com/supabase/supabase/pull/43536 - https://github.com/supabase/supabase/pull/43537 --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { PermissionAction } from '@supabase/shared-types/out/constants'
|
|
import { useParams } from 'common'
|
|
import { PageLayout } from 'components/layouts/PageLayout/PageLayout'
|
|
import NoPermission from 'components/ui/NoPermission'
|
|
import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions'
|
|
import { PropsWithChildren } from 'react'
|
|
|
|
import DatabaseLayout from './DatabaseLayout'
|
|
|
|
type DatabaseTriggersLayoutProps = PropsWithChildren
|
|
|
|
export const DatabaseTriggersLayout = ({ children }: DatabaseTriggersLayoutProps) => {
|
|
const { ref } = useParams()
|
|
const { can: canReadTriggers, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
|
|
PermissionAction.TENANT_SQL_ADMIN_READ,
|
|
'triggers'
|
|
)
|
|
|
|
const navigationItems = [
|
|
{
|
|
label: 'Data',
|
|
href: `/project/${ref}/database/triggers/data`,
|
|
},
|
|
{
|
|
label: 'Event',
|
|
href: `/project/${ref}/database/triggers/event`,
|
|
},
|
|
]
|
|
|
|
return (
|
|
<DatabaseLayout title="Triggers">
|
|
{isPermissionsLoaded && !canReadTriggers ? (
|
|
<NoPermission isFullPage resourceText="view database triggers" />
|
|
) : (
|
|
<PageLayout
|
|
title="Database Triggers"
|
|
subtitle="Execute actions automatically when database events occur"
|
|
navigationItems={navigationItems}
|
|
size="large"
|
|
>
|
|
{children}
|
|
</PageLayout>
|
|
)}
|
|
</DatabaseLayout>
|
|
)
|
|
}
|