theme.keycloak.v2.admin.resources.assets.KeyProviderForm-D1PF08X3.js.map Maven / Gradle / Ivy
{"version":3,"file":"KeyProviderForm-D1PF08X3.js","sources":["../../src/realm-settings/keys/key-providers/KeyProviderForm.tsx"],"sourcesContent":["import type ComponentRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentRepresentation\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { TextControl } from \"@keycloak/keycloak-ui-shared\";\nimport { useAdminClient } from \"../../../admin-client\";\nimport { useAlerts } from \"../../../components/alert/Alerts\";\nimport { DynamicComponents } from \"../../../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../../../components/form/FormAccess\";\nimport { ViewHeader } from \"../../../components/view-header/ViewHeader\";\nimport { useServerInfo } from \"../../../context/server-info/ServerInfoProvider\";\nimport { KEY_PROVIDER_TYPE } from \"../../../util\";\nimport { useFetch } from \"../../../utils/useFetch\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { KeyProviderParams, ProviderType } from \"../../routes/KeyProvider\";\nimport { toKeysTab } from \"../../routes/KeysTab\";\n\ntype KeyProviderFormProps = {\n id?: string;\n providerType: ProviderType;\n onClose?: () => void;\n};\n\nexport const KeyProviderForm = ({\n providerType,\n onClose,\n}: KeyProviderFormProps) => {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const { id } = useParams<{ id: string }>();\n const { addAlert, addError } = useAlerts();\n\n const serverInfo = useServerInfo();\n const allComponentTypes =\n serverInfo.componentTypes?.[KEY_PROVIDER_TYPE] ?? [];\n\n const form = useForm({\n mode: \"onChange\",\n });\n const { handleSubmit, reset } = form;\n\n const save = async (component: ComponentRepresentation) => {\n if (component.config)\n Object.entries(component.config).forEach(\n ([key, value]) =>\n (component.config![key] = Array.isArray(value) ? value : [value]),\n );\n try {\n if (id) {\n await adminClient.components.update(\n { id },\n {\n ...component,\n providerType: KEY_PROVIDER_TYPE,\n },\n );\n addAlert(t(\"saveProviderSuccess\"), AlertVariant.success);\n } else {\n await adminClient.components.create({\n ...component,\n providerId: providerType,\n providerType: KEY_PROVIDER_TYPE,\n });\n addAlert(t(\"saveProviderSuccess\"), AlertVariant.success);\n onClose?.();\n }\n } catch (error) {\n addError(\"saveProviderError\", error);\n }\n };\n\n useFetch(\n async () => {\n if (id) return await adminClient.components.findOne({ id });\n },\n (result) => {\n if (result) {\n reset({ ...result });\n }\n },\n [],\n );\n\n return (\n \n \n {id && (\n \n )}\n \n type.id === providerType)\n ?.properties || []\n }\n />\n \n \n \n \n \n \n );\n};\n\nexport default function KeyProviderFormPage() {\n const { t } = useTranslation();\n const params = useParams();\n const navigate = useNavigate();\n\n return (\n <>\n \n \n \n navigate(toKeysTab({ realm: params.realm, tab: \"providers\" }))\n }\n />\n \n >\n );\n}\n"],"names":["KeyProviderForm","providerType","onClose","adminClient","useAdminClient","t","useTranslation","id","useParams","addAlert","addError","useAlerts","allComponentTypes","useServerInfo","KEY_PROVIDER_TYPE","form","useForm","handleSubmit","reset","save","component","key","value","AlertVariant","error","useFetch","result","jsx","FormAccess","jsxs","FormProvider","TextControl","DynamicComponents","type","ActionGroup","Button","KeyProviderFormPage","params","navigate","useNavigate","Fragment","ViewHeader","PageSection","toKeysTab"],"mappings":"snCA6BO,MAAMA,EAAkB,CAAC,CAC9B,aAAAC,EACA,QAAAC,CACF,IAA4B,CACpB,KAAA,CAAE,YAAAC,GAAgBC,IAElB,CAAE,EAAAC,GAAMC,IACR,CAAE,GAAAC,GAAOC,IACT,CAAE,SAAAC,EAAU,SAAAC,CAAS,EAAIC,EAAU,EAGnCC,EADaC,IAEN,iBAAiBC,CAAiB,GAAK,CAAA,EAE9CC,EAAOC,EAAiC,CAC5C,KAAM,UAAA,CACP,EACK,CAAE,aAAAC,EAAc,MAAAC,CAAU,EAAAH,EAE1BI,EAAO,MAAOC,GAAuC,CACrDA,EAAU,QACL,OAAA,QAAQA,EAAU,MAAM,EAAE,QAC/B,CAAC,CAACC,EAAKC,CAAK,IACTF,EAAU,OAAQC,CAAG,EAAI,MAAM,QAAQC,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAAA,EAEjE,GAAA,CACEf,GACF,MAAMJ,EAAY,WAAW,OAC3B,CAAE,GAAAI,CAAG,EACL,CACE,GAAGa,EACH,aAAcN,CAChB,CAAA,EAEFL,EAASJ,EAAE,qBAAqB,EAAGkB,EAAa,OAAO,IAEjD,MAAApB,EAAY,WAAW,OAAO,CAClC,GAAGiB,EACH,WAAYnB,EACZ,aAAca,CAAA,CACf,EACDL,EAASJ,EAAE,qBAAqB,EAAGkB,EAAa,OAAO,EAC7CrB,aAELsB,EAAO,CACdd,EAAS,oBAAqBc,CAAK,CACrC,CAAA,EAGF,OAAAC,EACE,SAAY,CACN,GAAAlB,EAAI,OAAO,MAAMJ,EAAY,WAAW,QAAQ,CAAE,GAAAI,CAAI,CAAA,CAC5D,EACCmB,GAAW,CACNA,GACIR,EAAA,CAAE,GAAGQ,CAAA,CAAQ,CAEvB,EACA,CAAC,CAAA,EAIAC,EAAAC,EAAA,CAAW,aAAY,GAAC,KAAK,eAAe,SAAUX,EAAaE,CAAI,EACtE,SAACU,EAAAC,EAAA,CAAc,GAAGf,EACf,SAAA,CACCR,GAAAoB,EAACI,EAAA,CACC,KAAK,KACL,MAAO1B,EAAE,YAAY,EACrB,UAAWA,EAAE,gBAAgB,EAC7B,MAAO,CACL,SAAUA,EAAE,UAAU,CACxB,EACA,SAAQ,EAAA,CACV,EAEFsB,EAACI,EAAA,CACC,KAAK,OACL,aAAc9B,EACd,MAAOI,EAAE,MAAM,EACf,UAAWA,EAAE,2BAA2B,EACxC,MAAO,CACL,SAAUA,EAAE,UAAU,CACxB,CAAA,CACF,EACAsB,EAACK,EAAA,CACC,WACEpB,EAAkB,KAAMqB,GAASA,EAAK,KAAOhC,CAAY,GACrD,YAAc,CAAC,CAAA,CAEvB,IACCiC,EACC,CAAA,SAAA,CAAAP,EAACQ,EAAA,CACC,cAAY,sBACZ,QAAQ,UACR,KAAK,SAEJ,WAAE,MAAM,CAAA,CACX,EACAR,EAACQ,EAAO,CAAA,QAAS,IAAMjC,MAAa,QAAQ,OACzC,SAAEG,EAAA,QAAQ,CACb,CAAA,CAAA,EACF,CAAA,CACF,CAAA,CACF,CAAA,CAEJ,EAEA,SAAwB+B,IAAsB,CACtC,KAAA,CAAE,GAAM9B,IACR+B,EAAS7B,IACT8B,EAAWC,IAEjB,OAEIV,EAAAW,EAAA,CAAA,SAAA,CAAAb,EAACc,GAAW,SAAU,EAAE,cAAc,EAAG,OAAQJ,EAAO,aAAc,EACtEV,EAACe,EAAY,CAAA,QAAQ,QACnB,SAAAf,EAAC3B,EAAA,CACE,GAAGqC,EACJ,QAAS,IACPC,EAASK,EAAU,CAAE,MAAON,EAAO,MAAO,IAAK,WAAY,CAAC,CAAC,CAAA,CAAA,EAGnE,CACF,CAAA,CAAA,CAEJ"}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy