"use client" import { useContext, useMemo, useState } from "react" import { AuthUIContext } from "../../../lib/auth-ui-provider" import { cn } from "../../../lib/utils" import { CardContent } from "../../ui/card" import type { SettingsCardProps } from "../shared/settings-card" import { SettingsCard } from "../shared/settings-card" import { ApiKeyCell } from "./api-key-cell" import { ApiKeyDisplayDialog } from "./api-key-display-dialog" import { CreateApiKeyDialog } from "./create-api-key-dialog" export interface ApiKeysCardProps extends SettingsCardProps { organizationId?: string } export function ApiKeysCard({ className, classNames, localization, organizationId, ...props }: ApiKeysCardProps) { const { hooks: { useListApiKeys }, localization: contextLocalization } = useContext(AuthUIContext) localization = { ...contextLocalization, ...localization } const { data: apiKeysRes, isPending, refetch } = useListApiKeys() // Filter API keys by organizationId const filteredApiKeys = useMemo(() => { return apiKeysRes?.apiKeys?.filter( (apiKey) => organizationId === apiKey.metadata?.organizationId ) }, [apiKeysRes, organizationId]) const [createDialogOpen, setCreateDialogOpen] = useState(false) const [displayDialogOpen, setDisplayDialogOpen] = useState(false) const [createdApiKey, setCreatedApiKey] = useState("") const handleCreateApiKey = (apiKey: string) => { setCreatedApiKey(apiKey) setDisplayDialogOpen(true) } return ( <> setCreateDialogOpen(true)} {...props} > {filteredApiKeys && filteredApiKeys.length > 0 && ( {filteredApiKeys?.map((apiKey) => ( ))} )} ) }