**What** - Fixes an issue where query keys weren't invalidated on successful mutations. **How** - Update `buildOptions` function to be called per `QueryKey` instead of passing them all as a single query key, resulting in no matches found. - Fixes imports that aren't compatible with ESM modules.
69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
import {
|
|
AdminNotesDeleteRes,
|
|
AdminNotesRes,
|
|
AdminPostNotesNoteReq,
|
|
AdminPostNotesReq,
|
|
} from "@medusajs/medusa"
|
|
import { Response } from "@medusajs/medusa-js"
|
|
import {
|
|
useMutation,
|
|
UseMutationOptions,
|
|
useQueryClient,
|
|
} from "@tanstack/react-query"
|
|
import { useMedusa } from "../../../contexts/medusa"
|
|
import { buildOptions } from "../../utils/buildOptions"
|
|
import { adminNoteKeys } from "./queries"
|
|
|
|
export const useAdminCreateNote = (
|
|
options?: UseMutationOptions<
|
|
Response<AdminNotesRes>,
|
|
Error,
|
|
AdminPostNotesReq
|
|
>
|
|
) => {
|
|
const { client } = useMedusa()
|
|
const queryClient = useQueryClient()
|
|
return useMutation(
|
|
(payload: AdminPostNotesReq) => client.admin.notes.create(payload),
|
|
buildOptions(queryClient, adminNoteKeys.lists(), options)
|
|
)
|
|
}
|
|
|
|
export const useAdminUpdateNote = (
|
|
id: string,
|
|
options?: UseMutationOptions<
|
|
Response<AdminNotesRes>,
|
|
Error,
|
|
AdminPostNotesNoteReq
|
|
>
|
|
) => {
|
|
const { client } = useMedusa()
|
|
const queryClient = useQueryClient()
|
|
|
|
return useMutation(
|
|
(payload: AdminPostNotesNoteReq) => client.admin.notes.update(id, payload),
|
|
buildOptions(
|
|
queryClient,
|
|
[adminNoteKeys.detail(id), adminNoteKeys.lists()],
|
|
options
|
|
)
|
|
)
|
|
}
|
|
|
|
export const useAdminDeleteNote = (
|
|
id: string,
|
|
options?: UseMutationOptions<Response<AdminNotesDeleteRes>, Error, void>
|
|
) => {
|
|
const { client } = useMedusa()
|
|
const queryClient = useQueryClient()
|
|
|
|
return useMutation(
|
|
() => client.admin.notes.delete(id),
|
|
buildOptions(
|
|
queryClient,
|
|
[adminNoteKeys.detail(id), adminNoteKeys.lists()],
|
|
options
|
|
)
|
|
)
|
|
}
|