feat: add updateSearchSpaceMutationAtom

This commit is contained in:
CREDO23 2025-12-12 06:29:10 +00:00
parent 00b5b7dec8
commit d3dd2fc886

View file

@ -2,7 +2,9 @@ import { atomWithMutation } from "jotai-tanstack-query";
import { toast } from "sonner"; import { toast } from "sonner";
import type { import type {
CreateSearchSpaceRequest, CreateSearchSpaceRequest,
UpdateSearchSpaceRequest,
} from "@/contracts/types/search-space.types"; } from "@/contracts/types/search-space.types";
import { activeSearchSpaceIdAtom } from "./search-space-query.atoms";
import { searchSpacesApiService } from "@/lib/apis/search-spaces-api.service"; import { searchSpacesApiService } from "@/lib/apis/search-spaces-api.service";
import { cacheKeys } from "@/lib/query-client/cache-keys"; import { cacheKeys } from "@/lib/query-client/cache-keys";
import { queryClient } from "@/lib/query-client/client"; import { queryClient } from "@/lib/query-client/client";
@ -22,3 +24,27 @@ export const createSearchSpaceMutationAtom = atomWithMutation(() => {
}, },
}; };
}); });
export const updateSearchSpaceMutationAtom = atomWithMutation((get) => {
const activeSearchSpaceId = get(activeSearchSpaceIdAtom);
return {
mutationKey: ["update-search-space", activeSearchSpaceId],
enabled: !!activeSearchSpaceId,
mutationFn: async (request: UpdateSearchSpaceRequest) => {
return searchSpacesApiService.updateSearchSpace(request);
},
onSuccess: (_, request: UpdateSearchSpaceRequest) => {
toast.success("Search space updated successfully");
queryClient.invalidateQueries({
queryKey: cacheKeys.searchSpaces.all,
});
if (request.pathParams?.search_space_id) {
queryClient.invalidateQueries({
queryKey: cacheKeys.searchSpaces.detail(request.pathParams.search_space_id),
});
}
},
};
});