Path: blob/main/components/dashboard/src/data/organizations/update-org-mutation.ts
2501 views
/**1* Copyright (c) 2023 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { useMutation } from "@tanstack/react-query";7import { useCurrentOrg, useOrganizationsInvalidator } from "./orgs-query";8import { organizationClient } from "../../service/public-api";9import { Organization } from "@gitpod/public-api/lib/gitpod/v1/organization_pb";1011type UpdateOrgArgs = Pick<Organization, "name">;1213export const useUpdateOrgMutation = () => {14const org = useCurrentOrg().data;15const invalidateOrgs = useOrganizationsInvalidator();1617return useMutation<Organization, Error, UpdateOrgArgs>({18mutationFn: async ({ name }) => {19if (!org) {20throw new Error("No current organization selected");21}2223const response = await organizationClient.updateOrganization({24organizationId: org.id,25name,26});27return response.organization!;28},29onSuccess(updatedOrg) {30// TODO: Update query cache with new org prior to invalidation so it's reflected immediately31invalidateOrgs();32},33});34};353637