// @ts-nocheck import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { Copy } from 'lucide-react' import { useEffect, useState } from 'react' import { Button, copyToClipboard } from 'ui' import { Input } from 'ui-patterns/DataInputs/Input' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import ContentSnippet from '../ContentSnippet' import { DOCS_CONTENT } from '../ProjectAPIDocs.constants' import type { ContentProps } from './Content.types' import { getKeys, useAPIKeysQuery } from '@/data/api-keys/api-keys-query' import { useProjectSettingsV2Query } from '@/data/config/project-settings-v2-query' import { useSendEventMutation } from '@/data/telemetry/send-event-mutation' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' export const Introduction = ({ showKeys, language, apikey, endpoint }: ContentProps) => { const { ref } = useParams() const { can: canReadAPIKeys } = useAsyncCheckPermissions(PermissionAction.SECRETS_READ, '*') const { data: apiKeys } = useAPIKeysQuery({ projectRef: ref }, { enabled: canReadAPIKeys }) useProjectSettingsV2Query({ projectRef: ref }) const { data: org } = useSelectedOrganizationQuery() const { mutate: sendEvent } = useSendEventMutation() const [copied, setCopied] = useState<'anon' | 'service'>() useEffect(() => { if (copied !== undefined) setTimeout(() => setCopied(undefined), 2000) }, [copied]) const { anonKey, serviceKey } = getKeys(apiKeys) const anonApiKey = anonKey?.api_key const serviceApiKey = serviceKey?.api_key ?? 'BRIVEN_CLIENT_SERVICE_KEY' return ( <>
} onClick={() => { setCopied('anon') copyToClipboard(anonApiKey ?? 'BRIVEN_CLIENT_ANON_KEY') sendEvent({ action: 'api_docs_code_copy_button_clicked', properties: { title: 'Client API key', selectedLanguage: language, }, groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown', }, }) }} > {copied === 'anon' ? 'Copied' : 'Copy'} , ]} />
This key has the ability to bypass Row Level Security.{' '} Never share it publicly.

} > } onClick={() => { setCopied('service') copyToClipboard(serviceApiKey) sendEvent({ action: 'api_docs_code_copy_button_clicked', properties: { title: 'Service key', selectedLanguage: language, }, groups: { project: ref ?? 'Unknown', organization: org?.slug ?? 'Unknown', }, }) }} > {copied === 'service' ? 'Copied' : 'Copy'} , ]} />
) }