mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-30 11:26:24 +02:00
feat: add createInviteMutationAtom for invite creation
This commit is contained in:
parent
85c8ca67cb
commit
3cd9018626
1 changed files with 30 additions and 0 deletions
30
surfsense_web/atoms/invites/invites-mutation.atoms.ts
Normal file
30
surfsense_web/atoms/invites/invites-mutation.atoms.ts
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import { atomWithMutation } from "jotai-tanstack-query";
|
||||
import { invitesApiService } from "@/lib/apis/invites-api.service";
|
||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||
import { queryClient } from "@/lib/query-client/client";
|
||||
import type {
|
||||
CreateInviteRequest,
|
||||
UpdateInviteRequest,
|
||||
DeleteInviteRequest,
|
||||
AcceptInviteRequest,
|
||||
} from "@/contracts/types/invites.types";
|
||||
import { toast } from "sonner";
|
||||
|
||||
/**
|
||||
* Mutation atom for creating an invite
|
||||
*/
|
||||
export const createInviteMutationAtom = atomWithMutation(() => ({
|
||||
mutationFn: async (request: CreateInviteRequest) => {
|
||||
return invitesApiService.createInvite(request);
|
||||
},
|
||||
onSuccess: (_, variables) => {
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: cacheKeys.invites.all(variables.search_space_id.toString()),
|
||||
});
|
||||
toast.success("Invite created successfully");
|
||||
},
|
||||
onError: (error: Error) => {
|
||||
console.error("Error creating invite:", error);
|
||||
toast.error("Failed to create invite");
|
||||
},
|
||||
}));
|
||||
Loading…
Add table
Add a link
Reference in a new issue