// @flow import { observer } from "mobx-react"; import * as React from "react"; import { useTranslation, Trans } from "react-i18next"; import Group from "models/Group"; import GroupMembers from "scenes/GroupMembers"; import Button from "components/Button"; import Flex from "components/Flex"; import HelpText from "components/HelpText"; import Input from "components/Input"; import Modal from "components/Modal"; import useStores from "hooks/useStores"; import useToasts from "hooks/useToasts"; type Props = { onSubmit: () => void, }; function GroupNew({ onSubmit }: Props) { const { groups } = useStores(); const { t } = useTranslation(); const { showToast } = useToasts(); const [name, setName] = React.useState(); const [isSaving, setIsSaving] = React.useState(); const [group, setGroup] = React.useState(); const handleSubmit = async (ev: SyntheticEvent<>) => { ev.preventDefault(); setIsSaving(true); const group = new Group( { name: name, }, groups ); try { setGroup(await group.save()); } catch (err) { showToast(err.message, { type: "error" }); } finally { setIsSaving(false); } }; const handleNameChange = (ev: SyntheticInputEvent<*>) => { setName(ev.target.value); }; return ( <>