useGetAllFavQuery is not a function
Есть вот такое api, в котором я либо получаю список избранного для пользователя, либо удаляю что-то из этого списка, либо добавляю:
import { createApi, fakeBaseQuery } from "@reduxjs/toolkit/query";
import {
arrayRemove,
arrayUnion,
doc,
getDoc,
updateDoc,
} from "firebase/firestore";
import { userConverter } from "../converter/userConverter";
import { firestore } from "../firebase";
export const favApi = createApi({
baseQuery: fakeBaseQuery(),
reducerPath: "favApi",
tagTypes: ["Favourite"],
refetchOnMountOrArgChange: true,
endpoints: (builder) => ({
getAllFav: builder.query({
async queryFn(email) {
try {
if (!email) {
return { data: [] };
}
const userLink = doc(firestore, "users", email).withConverter(
userConverter
);
const user = await getDoc(userLink);
const userData = user.data();
if (userData) {
return { data: userData.favourite };
}
return { data: [] };
} catch (err) {
return { error: err };
}
},
invalidatesTags: ["Favourite"],
}),
addToFav: builder.mutation({
async queryFn(email, item) {
try {
if (!email) {
return { data: [] };
}
const userLink = doc(firestore, "users", email).withConverter(
userConverter
);
await updateDoc(userLink, {
favourite: arrayUnion(item),
});
return { data: item };
} catch (err) {
return { error: err };
}
},
invalidatesTags: ["Favourite"],
}),
removeFromeFav: builder.mutation({
async queryFn(email, item) {
try {
if (!email) {
return { data: [] };
}
const userLink = doc(firestore, "users", email).withConverter(
userConverter
);
await updateDoc(userLink, {
favourite: arrayRemove(item),
});
return { data: item };
} catch (err) {
return { error: err };
}
},
invalidatesTags: ["Favourite"],
}),
}),
});
export const {
useGetAllFavQuery,
useAddToFavMutation,
useRemoveFromeFavMutation,
} = favApi;
Но при запросе списка избранного для пользователя я получаю ошибку api_favApi__WEBPACK_IMPORTED_MODULE_1_.useGetAllFavQuery) is not a function TypeError: (0 , api_favApi__WEBPACK_IMPORTED_MODULE_1_.useGetAllFavQuery) is not a function
Хук, куда я импортирую созданные эндпоинты из api:
import {
useAddToFavMutation,
useGetAllFavQuery,
useRemoveFromFavMutation,
} from "../api/favApi";
import { useAuth } from "./useAuth";
export const useFav = () => {
const { user } = useAuth();
const { data: favourites = [] } = useGetAllFavQuery(user?.email);
const [addFav, addRes] = useAddToFavMutation();
const [removeFav, removeRes] = useRemoveFromFavMutation();
const isItemFav = (id) => favourites.some((item) => item.id === id);
const addToFav = async (data) => {
await addFav({ email: user?.email, item: data });
};
const removeFromFav = async (data) => {
await removeFav({ email: user?.email, item: data });
};
return {
isFav: isItemFav,
isDisabled: addRes.isLoading || removeRes.isLoading,
addToFav,
removeFromFav,
};
};
Строка, где я делаю запрос:
const { data: favourites = [] } = useGetAllFavQuery(user?.email);
Подозреваю, что проблема в том, что из api экспортируются не функции, а константы с типом any, но как это исправить и в чем причина этого я не знаю.