@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
34 lines • 1.19 kB
JavaScript
import { useCallback } from "react";
import useProject from "../projects/useProject";
import axios from "../../config/axios";
function useFetchEntityReactions() {
const { projectId } = useProject();
const fetchEntityReactions = useCallback(async (props) => {
const { entityId, page, limit = 20, reactionType, sortDir = "desc" } = props;
if (page === 0) {
throw new Error("Can't fetch reactions with page 0");
}
if (limit === 0) {
throw new Error("Can't fetch with limit 0");
}
if (!projectId) {
throw new Error("No project specified");
}
if (!entityId) {
throw new Error("No entity ID provided");
}
const params = {
page,
limit,
sortDir,
};
if (reactionType) {
params.reactionType = reactionType;
}
const response = await axios.get(`/${projectId}/entities/${entityId}/reactions`, { params });
return response.data;
}, [projectId]);
return fetchEntityReactions;
}
export default useFetchEntityReactions;
//# sourceMappingURL=useFetchEntityReactions.js.map