import React, { useState } from "react"; import { Button, Group, Space } from "@mantine/core"; import { Helmet } from "react-helmet-async"; import { useTranslation } from "react-i18next"; import SettingsTitle from "@/components/settings/settings-title"; import { getAppName } from "@/lib/config"; import { ApiKeyTable } from "@/ee/api-key/components/api-key-table"; import { CreateApiKeyModal } from "@/ee/api-key/components/create-api-key-modal"; import { ApiKeyCreatedModal } from "@/ee/api-key/components/api-key-created-modal"; import { UpdateApiKeyModal } from "@/ee/api-key/components/update-api-key-modal"; import { RevokeApiKeyModal } from "@/ee/api-key/components/revoke-api-key-modal"; import Paginate from "@/components/common/paginate"; import { useCursorPaginate } from "@/hooks/use-cursor-paginate"; import { useGetApiKeysQuery } from "@/ee/api-key/queries/api-key-query.ts"; import { IApiKey } from "@/ee/api-key"; export default function UserApiKeys() { const { t } = useTranslation(); const { cursor, goNext, goPrev } = useCursorPaginate(); const [createModalOpened, setCreateModalOpened] = useState(false); const [createdApiKey, setCreatedApiKey] = useState(null); const [updateModalOpened, setUpdateModalOpened] = useState(false); const [revokeModalOpened, setRevokeModalOpened] = useState(false); const [selectedApiKey, setSelectedApiKey] = useState(null); const { data, isLoading } = useGetApiKeysQuery({ cursor }); const handleCreateSuccess = (response: IApiKey) => { setCreatedApiKey(response); }; const handleUpdate = (apiKey: IApiKey) => { setSelectedApiKey(apiKey); setUpdateModalOpened(true); }; const handleRevoke = (apiKey: IApiKey) => { setSelectedApiKey(apiKey); setRevokeModalOpened(true); }; return ( <> {t("API keys")} - {getAppName()} {data?.items.length > 0 && ( goNext(data?.meta?.nextCursor)} onPrev={goPrev} /> )} setCreateModalOpened(false)} onSuccess={handleCreateSuccess} /> setCreatedApiKey(null)} apiKey={createdApiKey} /> { setUpdateModalOpened(false); setSelectedApiKey(null); }} apiKey={selectedApiKey} /> { setRevokeModalOpened(false); setSelectedApiKey(null); }} apiKey={selectedApiKey} /> ); }