keycloak-scim/src/groups/GroupsCreateModal.tsx

63 lines
1.7 KiB
TypeScript
Raw Normal View History

2020-09-25 18:21:18 +00:00
import React, {useState, useContext} from "react";
import {
AlertVariant,
Button,
Form,
FormGroup,
Modal,
ModalVariant,
TextInput
} from "@patternfly/react-core";
import { useTranslation } from "react-i18next";
import { HttpClientContext } from "../http-service/HttpClientContext";
import { RealmContext } from "../components/realm-context/RealmContext";
2020-09-28 21:09:34 +00:00
import { useAlerts } from "../components/alert/Alerts";
2020-09-25 18:21:18 +00:00
export const GroupsCreateModal = ({isCreateModalOpen, handleModalToggle}) => {
2020-09-28 21:09:34 +00:00
const { t } = useTranslation("groups");
2020-09-25 18:21:18 +00:00
const httpClient = useContext(HttpClientContext)!;
const { realm } = useContext(RealmContext);
const [ nameValue, setNameValue ] = useState("");
const [add, Alerts] = useAlerts();
const valueChange = (nameValue: string) => {
setNameValue(nameValue)
}
const submitForm = async () => {
try {
await httpClient.doPost(`/admin/realms/${realm}/groups`, nameValue);
add("Client created", AlertVariant.success);
} catch (error) {
add(`Could not create client: '${error}'`, AlertVariant.danger);
}
}
return (
<Modal
variant={ModalVariant.small}
title="Create a group"
isOpen={isCreateModalOpen}
onClose={handleModalToggle}
actions={[
<Button key="confirm" variant="primary" onClick={() => submitForm()}>
Create
</Button>
]}
>
<Form isHorizontal>
2020-09-28 21:09:34 +00:00
<FormGroup label={t("name")} fieldId="kc-root-url">
2020-09-25 18:21:18 +00:00
<TextInput
type="text"
id="create-group-name"
name="Name"
value={nameValue}
onChange={valueChange}
/>
</FormGroup>
</Form>
</Modal>
);
};