/* eslint-disable */
// @ts-nocheck
import type ResourceRepresentation from "@keycloak/keycloak-admin-client/lib/defs/resourceRepresentation";
import { KeycloakSelect, SelectVariant } from "../../../shared/keycloak-ui-shared";
import { Button, SelectOption, TextInput } from "../../../shared/@patternfly/react-core";
import { MinusCircleIcon, PlusCircleIcon } from "../../../shared/@patternfly/react-icons";
import { Table, Tbody, Td, Th, Thead, Tr } from "../../../shared/@patternfly/react-table";
import { camelCase } from "lodash-es";
import { useEffect, useMemo, useState } from "react";
import { Controller, useFieldArray, useFormContext } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { defaultContextAttributes } from "../utils";
import "./key-based-attribute-input.css";
export type AttributeType = {
key?: string;
name: string;
custom?: boolean;
values?: {
[key: string]: string;
}[];
};
type AttributeInputProps = {
name: string;
selectableValues?: AttributeType[];
resources?: ResourceRepresentation[];
};
type ValueInputProps = {
name: string;
rowIndex: number;
attribute: any;
selectableValues?: AttributeType[];
resources?: ResourceRepresentation[];
};
const ValueInput = ({
name,
rowIndex,
attribute,
selectableValues,
resources,
}: ValueInputProps) => {
const { t } = useTranslation();
const { control, register, getValues } = useFormContext();
const [isValueOpenArray, setIsValueOpenArray] = useState([false]);
const toggleValueSelect = (rowIndex: number, open: boolean) => {
const arr = [...isValueOpenArray];
arr[rowIndex] = open;
setIsValueOpenArray(arr);
};
const attributeValues = useMemo(() => {
let values: AttributeType[] | undefined = [];
if (selectableValues) {
values = defaultContextAttributes.find(
(attr) => attr.key === getValues().context?.[rowIndex]?.key,
)?.values;
}
return values;
}, [getValues]);
const renderSelectOptionType = () => {
const scopeValues = resources?.find(
(resource) => resource.name === getValues().resources?.[rowIndex]?.key,
)?.scopes;
if (attributeValues?.length && !resources) {
return attributeValues.map((attr) => (
| {t("key")} | {t("value")} |
|---|---|
|
|
|