/* eslint-disable */ // @ts-nocheck import { FormSubmitButton, useAlerts, useFetch, } from "../../shared/keycloak-ui-shared"; import { ActionGroup, Button, PageSection, Tab, Tabs, TabTitleText, } from "../../shared/@patternfly/react-core"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../admin-client"; import { FormAccess } from "../components/form/FormAccess"; import { AttributesForm } from "../components/key-value-form/AttributeForm"; import { arrayToKeyValue } from "../components/key-value-form/key-value-convert"; import { RoutableTabs, useRoutableTab, } from "../components/routable-tabs/RoutableTabs"; import { useRealm } from "../context/realm-context/RealmContext"; import { useParams } from "../utils/useParams"; import { DetailOrganizationHeader } from "./DetailOraganzationHeader"; import { IdentityProviders } from "./IdentityProviders"; import { MembersSection } from "./MembersSection"; import GroupsSection from "../groups/GroupsSection"; import { OrganizationForm, OrganizationFormType, convertToOrg, } from "./OrganizationForm"; import { EditOrganizationParams, OrganizationTab, toEditOrganization, } from "./routes/EditOrganization"; import { useAccess } from "../context/access/Access"; import { AdminEvents } from "../events/AdminEvents"; import { useState } from "react"; export default function DetailOrganization() { const { adminClient } = useAdminClient(); const { addAlert, addError } = useAlerts(); const { realm, realmRepresentation } = useRealm(); const { id } = useParams(); const { t } = useTranslation(); const form = useForm(); const save = async (org: OrganizationFormType) => { try { const organization = convertToOrg(org); await adminClient.organizations.updateById({ id }, organization); addAlert(t("organizationSaveSuccess")); } catch (error) { addError("organizationSaveError", error); } }; useFetch( () => adminClient.organizations.findOne({ id }) as Promise< | Awaited> | undefined >, (org) => { if (!org) { throw new Error(t("notFound")); } form.reset({ ...org, domains: org.domains?.map((d) => d.name), attributes: arrayToKeyValue(org.attributes), }); }, [id], ); const useTab = (tab: OrganizationTab) => useRoutableTab( toEditOrganization({ realm, id, tab, }), ); const settingsTab = useTab("settings"); const attributesTab = useTab("attributes"); const membersTab = useTab("members"); const groupsTab = useTab("groups"); const identityProvidersTab = useTab("identityProviders"); const eventsTab = useTab("events"); const { hasAccess } = useAccess(); const [activeEventsTab, setActiveEventsTab] = useState("adminEvents"); return ( save(form.getValues())} /> {t("settings")}} {...settingsTab} > {t("save")} {t("attributes")}} {...attributesTab} > form.reset({ ...form.getValues(), }) } name="attributes" /> {t("members")}} {...membersTab} > {t("groups")}} {...groupsTab} > {t("identityProviders")}} {...identityProvidersTab} > {realmRepresentation.adminEventsEnabled && hasAccess("view-events") && ( {t("adminEvents")}} {...eventsTab} > setActiveEventsTab(key as string)} > {t("adminEvents")}} > {t("membershipEvents")}} > )} ); }