import { noop } from 'lodash' import { Lock, Unlock } from 'lucide-react' import { useQueryState } from 'nuqs' import type { PostgresTable } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { EditorTablePageLink } from 'data/prefetchers/project.$ref.editor.$id' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' import { AiIconAnimation, Badge, Button, TooltipContent_Shadcn_, TooltipTrigger_Shadcn_, Tooltip_Shadcn_, } from 'ui' interface PolicyTableRowHeaderProps { table: PostgresTable isLocked: boolean onSelectToggleRLS: (table: PostgresTable) => void onSelectCreatePolicy: () => void } const PolicyTableRowHeader = ({ table, isLocked, onSelectToggleRLS = noop, onSelectCreatePolicy, }: PolicyTableRowHeaderProps) => { const { ref } = useParams() const canToggleRLS = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') const isRealtimeSchema = table.schema === 'realtime' const isRealtimeMessagesTable = isRealtimeSchema && table.name === 'messages' const isTableLocked = isRealtimeSchema ? !isRealtimeMessagesTable : isLocked const [_, setEditView] = useQueryState('view', { defaultValue: '' }) return (