@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
53 lines • 3.4 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { ActionGroup, AlertVariant, Button, PageSection, } from "@patternfly/react-core";
import { useState } from "react";
import { FormProvider, useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { Link, useNavigate } from "react-router-dom";
import { NumberControl } from "../../ui-shared";
import { useAdminClient } from "../../admin-client";
import { useAlerts } from "../../ui-shared";
import { FormAccess } from "../../components/form/FormAccess";
import { TimeSelectorControl } from "../../components/time-selector/TimeSelectorControl";
import { ViewHeader } from "../../components/view-header/ViewHeader";
import { useRealm } from "../../context/realm-context/RealmContext";
import { toClients } from "../../clients/routes/Clients";
import { AccessTokenDialog } from "../../clients/initial-access/AccessTokenDialog";
export default function CreateInitialAccessToken() {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const form = useForm({ mode: "onChange" });
const { handleSubmit, formState: { isValid }, } = form;
const { realm } = useRealm();
const { addAlert, addError } = useAlerts();
const navigate = useNavigate();
const [token, setToken] = useState("");
const save = async (clientToken) => {
try {
const access = await adminClient.realms.createClientsInitialAccess({ realm }, clientToken);
setToken(access.token);
}
catch (error) {
addError("tokenSaveError", error);
}
};
return (_jsxs(FormProvider, { ...form, children: [token && (_jsx(AccessTokenDialog, { token: token, toggleDialog: () => {
setToken("");
addAlert(t("tokenSaveSuccess"), AlertVariant.success);
navigate(toClients({ realm, tab: "initial-access-token" }));
} })), _jsx(ViewHeader, { titleKey: "createToken", subKey: "createTokenHelp" }), _jsx(PageSection, { variant: "light", children: _jsxs(FormAccess, { isHorizontal: true, role: "create-client", onSubmit: handleSubmit(save), children: [_jsx(TimeSelectorControl, { name: "expiration", label: t("expiration"), labelIcon: t("tokenExpirationHelp"), controller: {
defaultValue: 86400,
rules: {
min: {
value: 1,
message: t("expirationValueNotValid"),
},
},
} }), _jsx(NumberControl, { name: "count", label: t("count"), labelIcon: t("countHelp"), controller: {
rules: {
min: 1,
},
defaultValue: 1,
} }), _jsxs(ActionGroup, { children: [_jsx(Button, { variant: "primary", type: "submit", "data-testid": "save", isDisabled: !isValid, children: t("save") }), _jsx(Button, { "data-testid": "cancel", variant: "link", component: (props) => (_jsx(Link, { ...props, to: toClients({ realm, tab: "initial-access-token" }) })), children: t("cancel") })] })] }) })] }));
}
//# sourceMappingURL=CreateInitialAccessToken.js.map