"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: apiKeys, isPending, refetch } = useListApiKeys()
// Filter API keys by organizationId
const filteredApiKeys = useMemo(() => {
return apiKeys?.filter(
(apiKey) => organizationId === apiKey.metadata?.organizationId
)
}, [apiKeys, 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) => (
))}
)}
>
)
}