1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import React, {useState} from "../../_snowpack/pkg/react.js";
- import {useTranslation} from "../../_snowpack/pkg/react-i18next.js";
- import {Controller, useFormContext} from "../../_snowpack/pkg/react-hook-form.js";
- import {
- Button,
- Chip,
- ChipGroup,
- FormGroup,
- TextInput
- } from "../../_snowpack/pkg/@patternfly/react-core.js";
- import {HelpItem} from "../help-enabler/HelpItem.js";
- import {AddScopeDialog} from "../../clients/scopes/AddScopeDialog.js";
- import {useAdminClient, useFetch} from "../../context/auth/AdminClient.js";
- import {useParams} from "../../_snowpack/pkg/react-router.js";
- export const MultivaluedScopesComponent = ({
- defaultValue,
- name
- }) => {
- const {t} = useTranslation("dynamic");
- const {control} = useFormContext();
- const {conditionName} = useParams();
- const adminClient = useAdminClient();
- const [open, setOpen] = useState(false);
- const [clientScopes, setClientScopes] = useState([]);
- useFetch(() => adminClient.clientScopes.find(), (clientScopes2) => {
- setClientScopes(clientScopes2);
- }, []);
- const toggleModal = () => {
- setOpen(!open);
- };
- return /* @__PURE__ */ React.createElement(FormGroup, {
- label: t("realm-settings:clientScopesCondition"),
- id: "expected-scopes",
- labelIcon: /* @__PURE__ */ React.createElement(HelpItem, {
- helpText: t("realm-settings-help:clientScopesConditionTooltip"),
- fieldLabelId: "realm-settings:clientScopesCondition"
- }),
- fieldId: name
- }, /* @__PURE__ */ React.createElement(Controller, {
- name: `config.scopes`,
- control,
- defaultValue: [defaultValue],
- rules: {required: true},
- render: ({onChange, value}) => {
- return /* @__PURE__ */ React.createElement(React.Fragment, null, open && /* @__PURE__ */ React.createElement(AddScopeDialog, {
- clientScopes: clientScopes.filter((scope) => !value.includes(scope.name)),
- isClientScopesConditionType: true,
- open,
- toggleDialog: () => setOpen(!open),
- onAdd: (scopes) => {
- onChange([
- ...value,
- ...scopes.map((scope) => scope.scope).map((item) => item.name)
- ]);
- }
- }), value.length === 0 && !conditionName && /* @__PURE__ */ React.createElement(TextInput, {
- type: "text",
- id: "kc-scopes",
- value,
- "data-testid": "client-scope-input",
- name: "config.client-scopes",
- isDisabled: true
- }), /* @__PURE__ */ React.createElement(ChipGroup, {
- className: "kc-client-scopes-chip-group",
- isClosable: true,
- onClick: () => {
- onChange([]);
- }
- }, value.map((currentChip) => /* @__PURE__ */ React.createElement(Chip, {
- key: currentChip,
- onClick: () => {
- onChange(value.filter((item) => item !== currentChip));
- }
- }, currentChip))), /* @__PURE__ */ React.createElement(Button, {
- "data-testid": "select-scope-button",
- variant: "secondary",
- onClick: () => {
- toggleModal();
- }
- }, t("common:select")));
- }
- }));
- };
|