Skip to content

Commit f6ee08d

Browse files
chore(site): replace create user machine by react-query (#9810)
1 parent 9216725 commit f6ee08d

File tree

4 files changed

+18
-93
lines changed

4 files changed

+18
-93
lines changed

site/src/api/queries/users.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ export const updatePassword = () => {
1111
};
1212
};
1313

14+
export const createUser = () => {
15+
return {
16+
mutationFn: API.createUser,
17+
};
18+
};
19+
1420
export const createFirstUser = () => {
1521
return {
1622
mutationFn: API.createFirstUser,

site/src/pages/CreateUserPage/CreateUserPage.test.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
renderWithAuth,
77
waitForLoaderToBeRemoved,
88
} from "testHelpers/renderHelpers";
9-
import { Language as CreateUserLanguage } from "xServices/users/createUserXService";
109
import { CreateUserPage } from "./CreateUserPage";
1110

1211
const renderCreateUserPage = async () => {
@@ -47,7 +46,7 @@ describe("Create User Page", () => {
4746
await renderCreateUserPage();
4847
await fillForm({});
4948
const successMessage = await screen.findByText(
50-
CreateUserLanguage.createUserSuccess,
49+
"Successfully created user.",
5150
);
5251
expect(successMessage).toBeDefined();
5352
});

site/src/pages/CreateUserPage/CreateUserPage.tsx

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
import { useMachine } from "@xstate/react";
21
import { useOrganizationId } from "hooks/useOrganizationId";
32
import { FC } from "react";
43
import { Helmet } from "react-helmet-async";
54
import { useNavigate } from "react-router-dom";
6-
import { createUserMachine } from "xServices/users/createUserXService";
7-
import * as TypesGen from "api/typesGenerated";
85
import { CreateUserForm } from "./CreateUserForm";
96
import { Margins } from "components/Margins/Margins";
107
import { pageTitle } from "utils/page";
118
import { getAuthMethods } from "api/api";
12-
import { useQuery } from "@tanstack/react-query";
9+
import { useMutation, useQuery } from "@tanstack/react-query";
10+
import { createUser } from "api/queries/users";
11+
import { displaySuccess } from "components/GlobalSnackbar/utils";
1312

1413
export const Language = {
1514
unknownError: "Oops, an unknown error occurred.",
@@ -18,15 +17,7 @@ export const Language = {
1817
export const CreateUserPage: FC = () => {
1918
const myOrgId = useOrganizationId();
2019
const navigate = useNavigate();
21-
const [createUserState, createUserSend] = useMachine(createUserMachine, {
22-
actions: {
23-
redirectToUsersPage: () => {
24-
navigate("/users");
25-
},
26-
},
27-
});
28-
const { error } = createUserState.context;
29-
20+
const createUserMutation = useMutation(createUser());
3021
// TODO: We should probably place this somewhere else to reduce the number of calls.
3122
// This would be called each time this page is loaded.
3223
const { data: authMethods } = useQuery({
@@ -41,16 +32,17 @@ export const CreateUserPage: FC = () => {
4132
</Helmet>
4233

4334
<CreateUserForm
44-
error={error}
35+
error={createUserMutation.error}
4536
authMethods={authMethods}
46-
onSubmit={(user: TypesGen.CreateUserRequest) =>
47-
createUserSend({ type: "CREATE", user })
48-
}
37+
onSubmit={async (user) => {
38+
await createUserMutation.mutateAsync(user);
39+
displaySuccess("Successfully created user.");
40+
navigate("/users");
41+
}}
4942
onCancel={() => {
50-
createUserSend("CANCEL_CREATE_USER");
5143
navigate("/users");
5244
}}
53-
isLoading={createUserState.hasTag("loading")}
45+
isLoading={createUserMutation.isLoading}
5446
myOrgId={myOrgId}
5547
/>
5648
</Margins>

site/src/xServices/users/createUserXService.ts

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy