"use client"; import { useEffect, useState } from "react"; import type { TApiKeys } from "~/ee/api-keys/components/ApiKeyListItem"; import LicenseRequired from "~/ee/common/components/LicenseRequired"; import { Dialog } from "@calcom/features/components/controlled-dialog"; import ApiKeyDialogForm from "~/ee/api-keys/components/ApiKeyDialogForm"; import ApiKeyListItem from "~/ee/api-keys/components/ApiKeyListItem"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { APP_NAME } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { RouterOutputs } from "@calcom/trpc/react"; import { Button } from "@calcom/ui/components/button"; import { DialogContent } from "@calcom/ui/components/dialog"; import { EmptyScreen } from "@calcom/ui/components/empty-screen"; export const apiKeyModalRef = { current: null as null | ((show: boolean) => void), }; export const apiKeyToEditRef = { current: null as null | ((apiKey: (TApiKeys & { neverExpires?: boolean }) | undefined) => void), }; export const NewApiKeyButton = () => { const { t } = useLocale(); return ( ); }; type Props = { apiKeys: RouterOutputs["viewer"]["apiKeys"]["list"]; }; const ApiKeysView = ({ apiKeys: data }: Props) => { const { t } = useLocale(); const [apiKeyModal, setApiKeyModal] = useState(false); const [apiKeyToEdit, setApiKeyToEdit] = useState<(TApiKeys & { neverExpires?: boolean }) | undefined>( undefined ); useEffect(() => { apiKeyModalRef.current = setApiKeyModal; apiKeyToEditRef.current = setApiKeyToEdit; return () => { apiKeyModalRef.current = null; apiKeyToEditRef.current = null; }; }, []); return ( } borderInShellHeader={true}>
{data?.length ? ( <>
{data.map((apiKey, index) => ( { setApiKeyToEdit(apiKey); setApiKeyModal(true); }} /> ))}
) : ( } /> )}
setApiKeyModal(false)} defaultValues={apiKeyToEdit} />
); }; export default ApiKeysView;