/* eslint-disable */ // @ts-nocheck import type { AuthenticationProviderRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigRepresentation"; import { useFetch } from "../../../shared/keycloak-ui-shared"; import { Dropdown, DropdownItem, DropdownList, MenuToggle, Tooltip, } from "../../../shared/@patternfly/react-core"; import { PlusIcon } from "../../../shared/@patternfly/react-icons"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../../admin-client"; import type { ExpandableExecution } from "../execution-model"; import { AddStepModal, FlowType } from "./modals/AddStepModal"; import { AddSubFlowModal, Flow } from "./modals/AddSubFlowModal"; type AddFlowDropdownProps = { execution: ExpandableExecution; onAddExecution: ( execution: ExpandableExecution, type: AuthenticationProviderRepresentation, ) => void; onAddFlow: (execution: ExpandableExecution, flow: Flow) => void; }; export const AddFlowDropdown = ({ execution, onAddExecution, onAddFlow, }: AddFlowDropdownProps) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const [open, setOpen] = useState(false); const [type, setType] = useState(); const [providerId, setProviderId] = useState(); useFetch( () => adminClient.authenticationManagement.getFlow({ flowId: execution.flowId!, }), ({ providerId }) => setProviderId(providerId), [], ); return ( <> setOpen(isOpen)} toggle={(ref) => ( setOpen(!open)} aria-label={t("add")} data-testid={`${execution.displayName}-edit-dropdown`} > )} onSelect={() => setOpen(false)} > setType(providerId === "form-flow" ? "form" : "basic") } > {t("addExecution")} setType("condition")} > {t("addCondition")} setType("subFlow")}> {t("addSubFlow")} {type && type !== "subFlow" && ( { if (type) { onAddExecution(execution, type); } setType(undefined); }} /> )} {type === "subFlow" && ( setType(undefined)} onConfirm={(flow) => { onAddFlow(execution, flow); setType(undefined); }} /> )} ); };