Skip to content

Commit 65cef19

Browse files
committed
Use factories
1 parent 48cdf98 commit 65cef19

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

site/src/api/queries/sshKeys.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
1+
import { QueryClient } from "@tanstack/react-query";
22
import * as API from "api/api";
3+
import { GitSSHKey } from "api/typesGenerated";
34

45
const getUserSSHKeyQueryKey = (userId: string) => [userId, "sshKey"];
56

6-
export const useUserSSHKey = (userId: string) => {
7-
return useQuery({
7+
export const userSSHKey = (userId: string) => {
8+
return {
89
queryKey: getUserSSHKeyQueryKey(userId),
910
queryFn: () => API.getUserSSHKey(userId),
10-
});
11+
};
1112
};
1213

13-
export const useRegenerateUserSSHKey = (
14+
export const regenerateUserSSHKey = (
1415
userId: string,
15-
onSuccess: () => void,
16+
queryClient: QueryClient,
1617
) => {
17-
const queryClient = useQueryClient();
18-
return useMutation({
18+
return {
1919
mutationFn: () => API.regenerateUserSSHKey(userId),
20-
onSuccess: (newKey) => {
20+
onSuccess: (newKey: GitSSHKey) => {
2121
queryClient.setQueryData(getUserSSHKeyQueryKey(userId), newKey);
22-
onSuccess();
2322
},
24-
});
23+
};
2524
};

site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPage.tsx

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import { PropsWithChildren, FC, useState } from "react";
22
import { ConfirmDialog } from "../../../components/Dialogs/ConfirmDialog/ConfirmDialog";
33
import { Section } from "../../../components/SettingsLayout/Section";
44
import { SSHKeysPageView } from "./SSHKeysPageView";
5-
import { useRegenerateUserSSHKey, useUserSSHKey } from "api/queries/sshKeys";
5+
import { regenerateUserSSHKey, userSSHKey } from "api/queries/sshKeys";
66
import { displaySuccess } from "components/GlobalSnackbar/utils";
7+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
78

89
export const Language = {
910
title: "SSH keys",
@@ -17,10 +18,19 @@ export const Language = {
1718
export const SSHKeysPage: FC<PropsWithChildren<unknown>> = () => {
1819
const [isConfirmingRegeneration, setIsConfirmingRegeneration] =
1920
useState(false);
20-
const userSSHKeyQuery = useUserSSHKey("me");
21-
const regenerateUserSSHKeyMutation = useRegenerateUserSSHKey("me", () => {
22-
displaySuccess("SSH Key regenerated successfully.");
23-
setIsConfirmingRegeneration(false);
21+
const queryClient = useQueryClient();
22+
const userSSHKeyQuery = useQuery(userSSHKey("me"));
23+
const regenerateSSHKeyMutationOptions = regenerateUserSSHKey(
24+
"me",
25+
queryClient,
26+
);
27+
const regenerateSSHKeyMutation = useMutation({
28+
...regenerateSSHKeyMutationOptions,
29+
onSuccess: (newKey) => {
30+
regenerateSSHKeyMutationOptions.onSuccess(newKey);
31+
displaySuccess("SSH Key regenerated successfully.");
32+
setIsConfirmingRegeneration(false);
33+
},
2434
});
2535

2636
return (
@@ -29,7 +39,7 @@ export const SSHKeysPage: FC<PropsWithChildren<unknown>> = () => {
2939
<SSHKeysPageView
3040
isLoading={userSSHKeyQuery.isLoading}
3141
getSSHKeyError={userSSHKeyQuery.error}
32-
regenerateSSHKeyError={regenerateUserSSHKeyMutation.error}
42+
regenerateSSHKeyError={regenerateSSHKeyMutation.error}
3343
sshKey={userSSHKeyQuery.data}
3444
onRegenerateClick={() => {
3545
setIsConfirmingRegeneration(true);
@@ -41,11 +51,11 @@ export const SSHKeysPage: FC<PropsWithChildren<unknown>> = () => {
4151
type="delete"
4252
hideCancel={false}
4353
open={isConfirmingRegeneration}
44-
confirmLoading={regenerateUserSSHKeyMutation.isLoading}
54+
confirmLoading={regenerateSSHKeyMutation.isLoading}
4555
title={Language.regenerateDialogTitle}
4656
confirmText={Language.confirmLabel}
4757
onConfirm={() => {
48-
regenerateUserSSHKeyMutation.mutate();
58+
regenerateSSHKeyMutation.mutate();
4959
}}
5060
onClose={() => {
5161
setIsConfirmingRegeneration(false);

0 commit comments

Comments
 (0)