import type ResourceServerRepresentation from "@keycloak/keycloak-admin-client/lib/defs/resourceServerRepresentation"; import { ActionGroup, AlertVariant, Button, FormGroup, PageSection, } from "@patternfly/react-core"; import { saveAs } from "file-saver"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useAlerts } from "../../components/alert/Alerts"; import { FormAccess } from "../../components/form-access/FormAccess"; import { HelpItem } from "../../components/help-enabler/HelpItem"; import { KeycloakSpinner } from "../../components/keycloak-spinner/KeycloakSpinner"; import { KeycloakTextArea } from "../../components/keycloak-text-area/KeycloakTextArea"; import { useAdminClient, useFetch } from "../../context/auth/AdminClient"; import { prettyPrintJSON } from "../../util"; import { useParams } from "../../utils/useParams"; import type { ClientParams } from "../routes/Client"; import "./authorization-details.css"; export const AuthorizationExport = () => { const { t } = useTranslation("clients"); const { adminClient } = useAdminClient(); const { clientId } = useParams(); const { addAlert, addError } = useAlerts(); const [code, setCode] = useState(); const [authorizationDetails, setAuthorizationDetails] = useState(); useFetch( () => adminClient.clients.exportResource({ id: clientId, }), (authDetails) => { setCode(JSON.stringify(authDetails, null, 2)); setAuthorizationDetails(authDetails); }, [] ); const exportAuthDetails = () => { try { saveAs( new Blob([prettyPrintJSON(authorizationDetails)], { type: "application/json", }), "test-authz-config.json" ); addAlert(t("exportAuthDetailsSuccess"), AlertVariant.success); } catch (error) { addError("exportAuthDetailsError", error); } }; if (!code) { return ; } return ( } fieldId="client" > ); };