Files
medusa-store/packages/medusa-react/src/hooks/carts/queries.ts
2021-12-14 19:09:36 +01:00

29 lines
784 B
TypeScript

import { makeKeysFactory } from "./../utils/index"
import { StoreCartsRes } from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
import { useQuery } from "react-query"
import { useMedusa } from "../../contexts/medusa"
import { UseQueryOptionsWrapper } from "../../types"
const CARTS_QUERY_KEY = `carts` as const
export const cartKeys = makeKeysFactory(CARTS_QUERY_KEY)
type CartQueryKey = typeof cartKeys
export const useGetCart = (
id: string,
options?: UseQueryOptionsWrapper<
Response<StoreCartsRes>,
Error,
ReturnType<CartQueryKey["detail"]>
>
) => {
const { client } = useMedusa()
const { data, ...rest } = useQuery(
cartKeys.detail(id),
() => client.carts.retrieve(id),
options
)
return { ...data, ...rest } as const
}