@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
31 lines • 3.29 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { ActionGroup, Button, Divider, FormGroup, Switch, } from "@patternfly/react-core";
import { Controller, FormProvider } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { HelpItem } from "../../ui-shared";
import { DefaultSwitchControl } from "../../components/SwitchControl";
import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog";
import { TimeSelectorControl } from "../../components/time-selector/TimeSelectorControl";
export const EventConfigForm = ({ type, form, reset, clear, }) => {
const { t } = useTranslation();
const { control, watch, setValue, formState: { isDirty }, } = form;
const eventKey = type === "admin" ? "adminEventsEnabled" : "eventsEnabled";
const eventsEnabled = watch(eventKey);
const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({
titleKey: "events-disable-title",
messageKey: "events-disable-confirm",
continueButtonLabel: "confirm",
onConfirm: () => setValue(eventKey, false, { shouldDirty: true }),
});
return (_jsxs(FormProvider, { ...form, children: [_jsx(DisableConfirm, {}), _jsx(FormGroup, { hasNoPaddingTop: true, label: t("saveEvents"), fieldId: eventKey, labelIcon: _jsx(HelpItem, { helpText: t(`save-${type}-eventsHelp`), fieldLabelId: "saveEvents" }), children: _jsx(Controller, { name: eventKey, defaultValue: false, control: control, render: ({ field }) => (_jsx(Switch, { "data-testid": eventKey, id: `${eventKey}-switch`, label: t("on"), labelOff: t("off"), isChecked: field.value, onChange: (_event, value) => {
if (!value) {
toggleDisableDialog();
}
else {
field.onChange(value);
}
}, "aria-label": t("saveEvents") })) }) }), eventsEnabled && (_jsxs(_Fragment, { children: [type === "admin" && (_jsx(DefaultSwitchControl, { name: "adminEventsDetailsEnabled", label: t("includeRepresentation"), labelIcon: t("includeRepresentationHelp") })), _jsx(TimeSelectorControl, { name: type === "user" ? "eventsExpiration" : "adminEventsExpiration", label: t("expiration"), labelIcon: t("expirationHelp"), defaultValue: "", units: ["minute", "hour", "day"], controller: {
defaultValue: "",
} })] })), _jsxs(ActionGroup, { children: [_jsx(Button, { variant: "primary", type: "submit", id: `save-${type}`, "data-testid": `save-${type}`, isDisabled: !isDirty, children: t("save") }), _jsx(Button, { variant: "link", onClick: reset, children: t("revert") })] }), _jsx(Divider, {}), _jsx(FormGroup, { label: type === "user" ? t("clearUserEvents") : t("clearAdminEvents"), fieldId: `clear-${type}-events`, labelIcon: _jsx(HelpItem, { helpText: t(`${type}-clearEventsHelp`), fieldLabelId: `clear-${type}-events` }), children: _jsx(Button, { variant: "danger", id: `clear-${type}-events`, "data-testid": `clear-${type}-events`, onClick: () => clear(), children: type === "user" ? t("clearUserEvents") : t("clearAdminEvents") }) })] }));
};
//# sourceMappingURL=EventConfigForm.js.map