1- import { useFlag , useParams } from 'common'
2- import { buildTableEditorUrl } from 'components/grid/SupabaseGrid.utils'
3- import { useTableFilter } from 'components/grid/hooks/useTableFilter'
4- import { getEntityLintDetails } from 'components/interfaces/TableGridEditor/TableEntity.utils'
5- import { EntityTypeIcon } from 'components/ui/EntityTypeIcon'
6- import { InlineLink } from 'components/ui/InlineLink'
7- import { getTableDefinition } from 'data/database/table-definition-query'
8- import { ENTITY_TYPE } from 'data/entity-types/entity-type-constants'
9- import { Entity } from 'data/entity-types/entity-types-infinite-query'
10- import { useProjectLintsQuery } from 'data/lint/lint-query'
11- import { EditorTablePageLink } from 'data/prefetchers/project.$ref.editor.$id'
12- import type { TableApiAccessData , TableApiAccessMap } from 'data/privileges/table-api-access-query'
13- import { useTableRowsCountQuery } from 'data/table-rows/table-rows-count-query'
14- import { useQuerySchemaState } from 'hooks/misc/useSchemaQueryState'
15- import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject'
1+ import { useParams } from 'common'
162import { Copy , Download , Edit , Globe , Lock , MoreVertical , Trash } from 'lucide-react'
173import Link from 'next/link'
184import { type CSSProperties } from 'react'
195import { toast } from 'sonner'
20- import {
21- type RoleImpersonationState ,
22- useRoleImpersonationStateSnapshot ,
23- } from 'state/role-impersonation-state'
24- import { useTableEditorStateSnapshot } from 'state/table-editor'
25- import { createTabId , useTabsStateSnapshot } from 'state/tabs'
266import {
277 Badge ,
288 Button ,
9+ cn ,
10+ copyToClipboard ,
2911 DropdownMenu ,
3012 DropdownMenuContent ,
3113 DropdownMenuItem ,
@@ -38,12 +20,33 @@ import {
3820 TooltipContent ,
3921 TooltipTrigger ,
4022 TreeViewItemVariant ,
41- cn ,
42- copyToClipboard ,
4323} from 'ui'
4424
4525import { useExportAllRowsAsCsv , useExportAllRowsAsSql } from './ExportAllRows'
26+ import { useTableFilter } from '@/components/grid/hooks/useTableFilter'
27+ import { buildTableEditorUrl } from '@/components/grid/SupabaseGrid.utils'
28+ import { getEntityLintDetails } from '@/components/interfaces/TableGridEditor/TableEntity.utils'
29+ import { EntityTypeIcon } from '@/components/ui/EntityTypeIcon'
30+ import { InlineLink } from '@/components/ui/InlineLink'
31+ import { getTableDefinition } from '@/data/database/table-definition-query'
32+ import { ENTITY_TYPE } from '@/data/entity-types/entity-type-constants'
33+ import { Entity } from '@/data/entity-types/entity-types-infinite-query'
34+ import { useProjectLintsQuery } from '@/data/lint/lint-query'
35+ import { EditorTablePageLink } from '@/data/prefetchers/project.$ref.editor.$id'
36+ import type {
37+ TableApiAccessData ,
38+ TableApiAccessMap ,
39+ } from '@/data/privileges/table-api-access-query'
40+ import { useTableRowsCountQuery } from '@/data/table-rows/table-rows-count-query'
41+ import { useQuerySchemaState } from '@/hooks/misc/useSchemaQueryState'
42+ import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
4643import { formatSql } from '@/lib/formatSql'
44+ import {
45+ useRoleImpersonationStateSnapshot ,
46+ type RoleImpersonationState ,
47+ } from '@/state/role-impersonation-state'
48+ import { useTableEditorStateSnapshot } from '@/state/table-editor'
49+ import { createTabId , useTabsStateSnapshot } from '@/state/tabs'
4750
4851export interface EntityListItemProps {
4952 id : number | string
@@ -79,7 +82,6 @@ export const EntityListItem = ({
7982 const tabs = useTabsStateSnapshot ( )
8083 const isPreview = tabs . previewTabId === tabId
8184
82- const isOpened = Object . values ( tabs . tabsMap ) . some ( ( tab ) => tab . metadata ?. tableId === entity . id )
8385 const isActive = Number ( id ) === entity . id
8486 const canEdit = isActive && ! isLocked
8587
@@ -405,7 +407,6 @@ const EntityTooltipTrigger = ({
405407 apiAccessData ?: TableApiAccessData
406408} ) => {
407409 const { ref } = useParams ( )
408- const isDataApiExposedBadgeEnabled = useFlag ( 'dataApiExposedBadge' )
409410
410411 let tooltipContent = null
411412 const accessWarning = 'Data is publicly accessible via API'
@@ -476,7 +477,7 @@ const EntityTooltipTrigger = ({
476477 entity . type === ENTITY_TYPE . TABLE &&
477478 apiAccessData ?. apiAccessType === 'access' &&
478479 tableHasRlsEnabledNoPolicyLint
479- if ( isDataApiExposedBadgeEnabled && isRlsEnabledNoPolicies ) {
480+ if ( isRlsEnabledNoPolicies ) {
480481 return (
481482 < Tooltip >
482483 < TooltipTrigger className = "min-w-4" aria-label = "Table exposed via Data API" >
@@ -492,7 +493,7 @@ const EntityTooltipTrigger = ({
492493
493494 const isApiExposedWithRlsAndPolicies =
494495 apiAccessData ?. apiAccessType === 'access' && ! tableHasRlsEnabledNoPolicyLint
495- if ( isDataApiExposedBadgeEnabled && isApiExposedWithRlsAndPolicies ) {
496+ if ( isApiExposedWithRlsAndPolicies ) {
496497 return (
497498 < Tooltip >
498499 < TooltipTrigger className = "min-w-4" aria-label = "Table exposed via Data API" >
0 commit comments