All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.MappingDetails-d906392d.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"MappingDetails-d906392d.js","sources":["../../src/client-scopes/details/MappingDetails.tsx"],"sourcesContent":["import type ProtocolMapperRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation\";\nimport type { ProtocolMapperTypeRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/serverInfoRepesentation\";\nimport {\n  ActionGroup,\n  AlertVariant,\n  Button,\n  ButtonVariant,\n  DropdownItem,\n  FormGroup,\n  PageSection,\n  ValidatedOptions,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useMatch, useNavigate } from \"react-router-dom\";\nimport { HelpItem } from \"ui-shared\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { toClient } from \"../../clients/routes/Client\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { DynamicComponents } from \"../../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeycloakTextInput } from \"../../components/keycloak-text-input/KeycloakTextInput\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport { useServerInfo } from \"../../context/server-info/ServerInfoProvider\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../../util\";\nimport { useFetch } from \"../../utils/useFetch\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toClientScope } from \"../routes/ClientScope\";\nimport { MapperParams, MapperRoute } from \"../routes/Mapper\";\n\nexport default function MappingDetails() {\n  const { t } = useTranslation(\"client-scopes\");\n  const { addAlert, addError } = useAlerts();\n\n  const { id, mapperId } = useParams();\n  const form = useForm();\n  const {\n    register,\n    setValue,\n    formState: { errors },\n    handleSubmit,\n  } = form;\n  const [mapping, setMapping] = useState();\n  const [config, setConfig] = useState<{\n    protocol?: string;\n    protocolMapper?: string;\n  }>();\n\n  const navigate = useNavigate();\n  const { realm } = useRealm();\n  const serverInfo = useServerInfo();\n  const isGuid = /^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$/;\n  const isUpdating = !!mapperId.match(isGuid);\n\n  const isOnClientScope = !!useMatch(MapperRoute.path);\n  const toDetails = () =>\n    isOnClientScope\n      ? toClientScope({ realm, id, tab: \"mappers\" })\n      : toClient({ realm, clientId: id, tab: \"mappers\" });\n\n  useFetch(\n    async () => {\n      let data: ProtocolMapperRepresentation | undefined;\n      if (isUpdating) {\n        if (isOnClientScope) {\n          data = await adminClient.clientScopes.findProtocolMapper({\n            id,\n            mapperId,\n          });\n        } else {\n          data = await adminClient.clients.findProtocolMapperById({\n            id,\n            mapperId,\n          });\n        }\n        if (!data) {\n          throw new Error(t(\"common:notFound\"));\n        }\n\n        const mapperTypes = serverInfo.protocolMapperTypes![data!.protocol!];\n        const mapping = mapperTypes.find(\n          (type) => type.id === data!.protocolMapper\n        );\n\n        return {\n          config: {\n            protocol: data.protocol,\n            protocolMapper: data.protocolMapper,\n          },\n          mapping,\n          data,\n        };\n      } else {\n        const model = isOnClientScope\n          ? await adminClient.clientScopes.findOne({ id })\n          : await adminClient.clients.findOne({ id });\n        if (!model) {\n          throw new Error(t(\"common:notFound\"));\n        }\n        const protocolMappers =\n          serverInfo.protocolMapperTypes![model.protocol!];\n        const mapping = protocolMappers.find(\n          (mapper) => mapper.id === mapperId\n        );\n        if (!mapping) {\n          throw new Error(t(\"common:notFound\"));\n        }\n        return {\n          mapping,\n          config: {\n            protocol: model.protocol,\n            protocolMapper: mapperId,\n          },\n        };\n      }\n    },\n    ({ config, mapping, data }) => {\n      setConfig(config);\n      setMapping(mapping);\n      if (data) {\n        convertToFormValues(data, setValue);\n      }\n    },\n    []\n  );\n\n  const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n    titleKey: \"common:deleteMappingTitle\",\n    messageKey: \"common:deleteMappingConfirm\",\n    continueButtonLabel: \"common:delete\",\n    continueButtonVariant: ButtonVariant.danger,\n    onConfirm: async () => {\n      try {\n        if (isOnClientScope) {\n          await adminClient.clientScopes.delProtocolMapper({\n            id,\n            mapperId,\n          });\n        } else {\n          await adminClient.clients.delProtocolMapper({\n            id,\n            mapperId,\n          });\n        }\n        addAlert(t(\"common:mappingDeletedSuccess\"), AlertVariant.success);\n        navigate(toDetails());\n      } catch (error) {\n        addError(\"common:mappingDeletedError\", error);\n      }\n    },\n  });\n\n  const save = async (formMapping: ProtocolMapperRepresentation) => {\n    const key = isUpdating ? \"Updated\" : \"Created\";\n    try {\n      const mapping = { ...config, ...convertFormValuesToObject(formMapping) };\n      if (isUpdating) {\n        isOnClientScope\n          ? await adminClient.clientScopes.updateProtocolMapper(\n              { id, mapperId },\n              { id: mapperId, ...mapping }\n            )\n          : await adminClient.clients.updateProtocolMapper(\n              { id, mapperId },\n              { id: mapperId, ...mapping }\n            );\n      } else {\n        isOnClientScope\n          ? await adminClient.clientScopes.addProtocolMapper({ id }, mapping)\n          : await adminClient.clients.addProtocolMapper({ id }, mapping);\n      }\n      addAlert(t(`common:mapping${key}Success`), AlertVariant.success);\n    } catch (error) {\n      addError(`common:mapping${key}Error`, error);\n    }\n  };\n\n  return (\n    <>\n      \n      \n                  {t(\"common:delete\")}\n                ,\n              ]\n            : undefined\n        }\n      />\n      \n        \n          \n            \n          \n          \n            }\n            fieldId=\"name\"\n            isRequired\n            validated={\n              errors.name ? ValidatedOptions.error : ValidatedOptions.default\n            }\n            helperTextInvalid={t(\"common:required\")}\n          >\n            \n          \n          \n            \n          \n          \n            \n             }\n            >\n              {t(\"common:cancel\")}\n            \n          \n        \n      \n    \n  );\n}\n"],"names":["MappingDetails","useTranslation","addAlert","addError","useAlerts","id","mapperId","useParams","form","useForm","register","setValue","errors","handleSubmit","mapping","setMapping","useState","config","setConfig","navigate","useNavigate","realm","useRealm","serverInfo","useServerInfo","isGuid","isUpdating","isOnClientScope","useMatch","MapperRoute","toDetails","toClientScope","toClient","useFetch","data","adminClient","type","model","mapper","convertToFormValues","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","ButtonVariant","AlertVariant","error","save","formMapping","key","convertFormValuesToObject","jsxs","Fragment","jsx","ViewHeader","DropdownItem","PageSection","FormAccess","FormGroup","KeycloakTextInput","HelpItem","ValidatedOptions","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy