//=========================================== // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template //=========================================== import { HexclaveAssertionError } from "@hexclave/shared/dist/utils/errors"; import { Button } from "@hexclave/ui"; import { useState } from "react"; import { CreateApiKeyDialog, ShowApiKeyDialog } from "../../../components/api-key-dialogs"; import { ApiKeyTable } from "../../../components/api-key-table"; import { useStackApp, useUser } from "../../../lib/hooks"; import { TeamApiKeyFirstView } from "../../../lib/hexclave-app/api-keys"; import { Team } from "../../../lib/hexclave-app/teams"; import { useTranslation } from "../../../lib/translations"; import { Section } from "../section"; export function TeamApiKeysSection(props: { team: Team }) { const user = useUser({ or: 'redirect' }); const team = user.useTeam(props.team.id); const hexclaveApp = useStackApp(); const project = hexclaveApp.useProject(); if (!team) { throw new HexclaveAssertionError("Team not found"); } const teamApiKeysEnabled = project.config.allowTeamApiKeys; const manageApiKeysPermission = user.usePermission(props.team, '$manage_api_keys'); if (!manageApiKeysPermission || !teamApiKeysEnabled) { return null; } return ; } function TeamApiKeysSectionInner(props: { team: Team }) { const { t } = useTranslation(); const [isNewApiKeyDialogOpen, setIsNewApiKeyDialogOpen] = useState(false); const [returnedApiKey, setReturnedApiKey] = useState(null); const apiKeys = props.team.useApiKeys(); const CreateDialog = CreateApiKeyDialog<"team">; const ShowDialog = ShowApiKeyDialog<"team">; return ( <>
{ const apiKey = await props.team.createApiKey(data); return apiKey; }} /> setReturnedApiKey(null)} /> ); }