2022-09-15 13:05:33 +00:00
|
|
|
import { useMachine } from "@xstate/react"
|
|
|
|
import { useOrganizationId } from "hooks/useOrganizationId"
|
2023-01-10 18:30:48 +00:00
|
|
|
import { FC } from "react"
|
2022-08-22 20:42:06 +00:00
|
|
|
import { Helmet } from "react-helmet-async"
|
2023-08-02 18:28:16 +00:00
|
|
|
import { useNavigate } from "react-router-dom"
|
2022-09-15 13:05:33 +00:00
|
|
|
import { createUserMachine } from "xServices/users/createUserXService"
|
2022-05-12 15:01:28 +00:00
|
|
|
import * as TypesGen from "../../../api/typesGenerated"
|
2022-04-28 20:32:23 +00:00
|
|
|
import { CreateUserForm } from "../../../components/CreateUserForm/CreateUserForm"
|
2022-05-04 15:36:54 +00:00
|
|
|
import { Margins } from "../../../components/Margins/Margins"
|
2023-04-13 21:36:20 +00:00
|
|
|
import { pageTitle } from "../../../utils/page"
|
2022-04-28 20:32:23 +00:00
|
|
|
|
|
|
|
export const Language = {
|
|
|
|
unknownError: "Oops, an unknown error occurred.",
|
|
|
|
}
|
|
|
|
|
2023-01-10 18:30:48 +00:00
|
|
|
export const CreateUserPage: FC = () => {
|
2022-09-15 13:05:33 +00:00
|
|
|
const myOrgId = useOrganizationId()
|
2022-04-28 20:32:23 +00:00
|
|
|
const navigate = useNavigate()
|
2022-09-15 13:05:33 +00:00
|
|
|
const [createUserState, createUserSend] = useMachine(createUserMachine, {
|
|
|
|
actions: {
|
|
|
|
redirectToUsersPage: () => {
|
|
|
|
navigate("/users")
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|
2023-05-04 17:30:48 +00:00
|
|
|
const { error } = createUserState.context
|
2022-04-28 20:32:23 +00:00
|
|
|
|
|
|
|
return (
|
2022-05-04 15:36:54 +00:00
|
|
|
<Margins>
|
2022-06-06 13:34:10 +00:00
|
|
|
<Helmet>
|
|
|
|
<title>{pageTitle("Create User")}</title>
|
|
|
|
</Helmet>
|
2023-08-02 17:36:35 +00:00
|
|
|
|
2022-05-04 15:36:54 +00:00
|
|
|
<CreateUserForm
|
2023-05-04 17:30:48 +00:00
|
|
|
error={error}
|
2022-10-10 17:33:35 +00:00
|
|
|
onSubmit={(user: TypesGen.CreateUserRequest) =>
|
|
|
|
createUserSend({ type: "CREATE", user })
|
|
|
|
}
|
2022-06-07 15:02:20 +00:00
|
|
|
onCancel={() => {
|
2022-09-15 13:05:33 +00:00
|
|
|
createUserSend("CANCEL_CREATE_USER")
|
2022-06-07 15:02:20 +00:00
|
|
|
navigate("/users")
|
|
|
|
}}
|
2022-09-15 13:05:33 +00:00
|
|
|
isLoading={createUserState.hasTag("loading")}
|
|
|
|
myOrgId={myOrgId}
|
2022-05-04 15:36:54 +00:00
|
|
|
/>
|
|
|
|
</Margins>
|
2022-04-28 20:32:23 +00:00
|
|
|
)
|
|
|
|
}
|
2022-09-23 18:22:48 +00:00
|
|
|
|
|
|
|
export default CreateUserPage
|