Skip to content

Commit 483b6bc

Browse files
committed
[dashboard] Re-use data from UpdateOrganizationSettings
Tool: gitpod/catfood.gitpod.cloud
1 parent 1b6ec72 commit 483b6bc

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

components/dashboard/src/data/organizations/org-settings-query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ export function useOrgSettingsQuery() {
3636
);
3737
}
3838

39-
function getQueryKey(organizationId?: string) {
39+
export function getQueryKey(organizationId?: string) {
4040
return ["getOrganizationSettings", organizationId || "undefined"];
4141
}

components/dashboard/src/data/organizations/suggested-repositories-query.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66

77
import { useQuery, useQueryClient } from "@tanstack/react-query";
88
import { useCallback } from "react";
9-
import { configurationClient, organizationClient } from "../../service/public-api";
9+
import { configurationClient } from "../../service/public-api";
1010
import { useCurrentOrg } from "./orgs-query";
1111
import { SuggestedRepository } from "@gitpod/public-api/lib/gitpod/v1/scm_pb";
1212
import { PlainMessage } from "@bufbuild/protobuf";
1313
import { Configuration } from "@gitpod/public-api/lib/gitpod/v1/configuration_pb";
14+
import { useOrgSettingsQuery } from "./org-settings-query";
1415

1516
export function useOrgRepoSuggestionsInvalidator() {
1617
const organizationId = useCurrentOrg().data?.id;
@@ -27,13 +28,12 @@ export type SuggestedOrgRepository = PlainMessage<SuggestedRepository> & {
2728

2829
export function useOrgSuggestedRepos() {
2930
const organizationId = useCurrentOrg().data?.id;
31+
const orgSettings = useOrgSettingsQuery();
32+
3033
const query = useQuery<SuggestedOrgRepository[], Error>(
3134
getQueryKey(organizationId),
3235
async () => {
33-
const response = await organizationClient.getOrganizationSettings({
34-
organizationId,
35-
});
36-
const repos = response.settings?.onboardingSettings?.recommendedRepositories ?? [];
36+
const repos = orgSettings.data?.onboardingSettings?.recommendedRepositories ?? [];
3737

3838
const suggestions: SuggestedOrgRepository[] = [];
3939
for (const configurationId of repos) {

components/dashboard/src/data/organizations/update-org-settings-mutation.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
* See License.AGPL.txt in the project root for license information.
55
*/
66

7-
import { useMutation } from "@tanstack/react-query";
8-
import { useOrgSettingsQueryInvalidator } from "./org-settings-query";
7+
import { useMutation, useQueryClient } from "@tanstack/react-query";
8+
import { getQueryKey, useOrgSettingsQueryInvalidator } from "./org-settings-query";
99
import { useCurrentOrg } from "./orgs-query";
1010
import { organizationClient } from "../../service/public-api";
1111
import {
@@ -24,6 +24,8 @@ export const useUpdateOrgSettingsMutation = () => {
2424
const invalidateOrgSettings = useOrgSettingsQueryInvalidator();
2525
const invalidateWorkspaceClasses = useOrgWorkspaceClassesQueryInvalidator();
2626
const invalidateOrgRepoSuggestions = useOrgRepoSuggestionsInvalidator();
27+
28+
const queryClient = useQueryClient();
2729
const organizationId = org?.id ?? "";
2830

2931
return useMutation<OrganizationSettings, Error, UpdateOrganizationSettingsArgs>({
@@ -47,10 +49,15 @@ export const useUpdateOrgSettingsMutation = () => {
4749
const settings = await organizationClient.updateOrganizationSettings(update);
4850
return settings.settings!;
4951
},
50-
onSuccess: () => {
51-
invalidateOrgSettings();
52+
onSuccess: (settings) => {
5253
invalidateWorkspaceClasses();
5354
invalidateOrgRepoSuggestions();
55+
56+
if (settings) {
57+
queryClient.setQueryData(getQueryKey(organizationId), settings);
58+
} else {
59+
invalidateOrgSettings();
60+
}
5461
},
5562
onError: (err) => {
5663
if (!ErrorCode.isUserError((err as any)?.["code"])) {

0 commit comments

Comments
 (0)