UNPKG

@keycloakify/keycloak-admin-ui

Version:
49 lines 2.7 kB
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