UNPKG

@keycloakify/keycloak-admin-ui

Version:
31 lines 3.29 kB
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