/* eslint-disable */ // @ts-nocheck import type ClientRepresentation from "@keycloak/keycloak-admin-client/lib/defs/clientRepresentation"; import type ProtocolMapperRepresentation from "@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation"; import type { ProtocolMapperTypeRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation"; import { useAlerts, useFetch } from "../../../shared/keycloak-ui-shared"; import { AlertVariant, PageSection, Tab, TabTitleText, } from "../../../shared/@patternfly/react-core"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { useAdminClient } from "../../admin-client"; import { MapperList } from "../../client-scopes/details/MapperList"; import { KeycloakSpinner } from "../../../shared/keycloak-ui-shared"; import { RoutableTabs, useRoutableTab, } from "../../components/routable-tabs/RoutableTabs"; import { ViewHeader } from "../../components/view-header/ViewHeader"; import { useParams } from "../../utils/useParams"; import { DedicatedScopeDetailsParams, DedicatedScopeTab, toDedicatedScope, } from "../routes/DedicatedScopeDetails"; import { toMapper } from "../routes/Mapper"; import { DedicatedScope } from "./DedicatedScope"; export default function DedicatedScopes() { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const navigate = useNavigate(); const { realm, clientId } = useParams(); const { addAlert, addError } = useAlerts(); const [client, setClient] = useState(); useFetch(() => adminClient.clients.findOne({ id: clientId }), setClient, []); const useTab = (tab: DedicatedScopeTab) => useRoutableTab(toDedicatedScope({ realm, clientId, tab })); const mappersTab = useTab("mappers"); const scopeTab = useTab("scope"); if (!client) { return ; } const addMappers = async ( mappers: ProtocolMapperTypeRepresentation | ProtocolMapperRepresentation[], ): Promise => { if (!Array.isArray(mappers)) { const mapper = mappers as ProtocolMapperTypeRepresentation; navigate( toMapper({ realm, id: client.id!, mapperId: mapper.id!, viewMode: "new", }), ); } else { try { await adminClient.clients.addMultipleProtocolMappers( { id: client.id! }, mappers as ProtocolMapperRepresentation[], ); setClient(await adminClient.clients.findOne({ id: client.id! })); addAlert(t("mappingCreatedSuccess"), AlertVariant.success); } catch (error) { addError("mappingCreatedError", error); } } }; const onDeleteMapper = async (mapper: ProtocolMapperRepresentation) => { try { await adminClient.clients.delProtocolMapper({ id: client.id!, mapperId: mapper.id!, }); setClient({ ...client, protocolMappers: client.protocolMappers?.filter( (m) => m.id !== mapper.id, ), }); addAlert(t("mappingDeletedSuccess"), AlertVariant.success); } catch (error) { addError("mappingDeletedError", error); } return true; }; return ( <> {t("mappers")}} data-testid="mappersTab" {...mappersTab} > toMapper({ realm, id: client.id!, mapperId, viewMode: "edit" }) } /> {t("scope")}} data-testid="scopeTab" {...scopeTab} > ); }