import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { partition } from 'lodash' import Image from 'next/legacy/image' import Link from 'next/link' import { Button, Collapsible, IconChevronUp, IconEdit, IconExternalLink, IconTrash } from 'ui' import { useParams } from 'common/hooks' import { FDW } from 'data/fdw/fdws-query' import { useCheckPermissions } from 'hooks' import { WrapperMeta } from './Wrappers.types' interface WrapperRowProps { wrappers: FDW[] wrapperMeta: WrapperMeta isOpen: boolean onOpen: (wrapper: string) => void onSelectDelete: (wrapper: FDW) => void } const WrapperRow = ({ wrappers = [], wrapperMeta, isOpen, onOpen, onSelectDelete, }: WrapperRowProps) => { const { ref } = useParams() const canManageWrappers = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'wrappers') return ( <> onOpen(wrapperMeta.name)} className={[ 'bg-scale-100 dark:bg-scale-300 ', 'hover:bg-scale-200 dark:hover:bg-scale-500', 'data-open:bg-scale-200 dark:data-open:bg-scale-500', 'border-scale-300', 'dark:border-scale-500 hover:border-scale-500', 'dark:hover:border-scale-700 data-open:border-scale-700', 'col-span-12 mx-auto', '-space-y-px overflow-hidden', 'transition border shadow hover:z-50', 'first:rounded-tl first:rounded-tr first:!border-t', 'last:rounded-bl last:rounded-br last:border-t-0', ].join(' ')} >
{wrappers.map((wrapper) => { const serverOptions = Object.fromEntries( wrapper.server_options.map((option: any) => option.split('=')) ) const [encryptedMetadata, visibleMetadata] = partition( wrapperMeta.server.options, 'hidden' ) return (

{wrapper.name}

{visibleMetadata.map((metadata) => (

{metadata.label}:

{serverOptions[metadata.name]}

))} {encryptedMetadata.map((metadata) => (

{metadata.label}:

Encrypted in Vault
))}

Foreign tables{wrapper.tables && `: (${wrapper.tables.length})`}

{wrapper.tables ? ( wrapper.tables.map((table: any) => (
{table.name}
)) ) : (

No tables available

)}
{canManageWrappers ? (
) })}
) } export default WrapperRow