@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
49 lines • 2.7 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { TextAreaControl, useAlerts, useFetch, } from "../../ui-shared";
import { ActionGroup, AlertVariant, Button, PageSection, } from "@patternfly/react-core";
import { saveAs } from "file-saver";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useAdminClient } from "../../admin-client";
import { FormAccess } from "../../components/form/FormAccess";
import { KeycloakSpinner } from "../../ui-shared";
import { prettyPrintJSON } from "../../util";
import { useParams } from "../../utils/useParams";
export const AuthorizationExport = () => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
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 _jsx(KeycloakSpinner, {});
}
return (_jsx(PageSection, { children: _jsxs(FormAccess, { isHorizontal: true, role: "manage-authorization", className: "pf-v5-u-mt-lg", children: [_jsx(TextAreaControl, { name: "authDetails", label: t("authDetails"), labelIcon: t("authDetailsHelp"), resizeOrientation: "vertical", defaultValue: code, readOnly: true, rows: 10 }), _jsxs(ActionGroup, { children: [_jsx(Button, { "data-testid": "authorization-export-download", onClick: () => exportAuthDetails(), children: t("download") }), _jsx(Button, { "data-testid": "authorization-export-copy", variant: "secondary", onClick: async () => {
try {
await navigator.clipboard.writeText(code);
addAlert(t("copied"), AlertVariant.success);
}
catch (error) {
addError("copyError", error);
}
}, children: t("copy") })] })] }) }));
};
//# sourceMappingURL=AuthorizationExport.js.map