UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

43 lines 1.5 kB
import { useCallback } from "react"; import useProject from "../projects/useProject"; import useAxiosPrivate from "../../config/useAxiosPrivate"; /** * Hook to handle entity reports at the space level * Space moderators can: remove entity, ban user from space, dismiss * * @example * const handleSpaceEntityReport = useHandleSpaceEntityReport(); * * await handleSpaceEntityReport({ * spaceId: "space-uuid", * reportId: "report-uuid", * entityId: "entity-uuid", * actions: ["remove-entity", "ban-user"], * summary: "Removed spam content and banned user", * userId: "user-uuid", * reason: "Spamming" * }); */ function useHandleSpaceEntityReport() { const { projectId } = useProject(); const axios = useAxiosPrivate(); const handleSpaceEntityReport = useCallback(async ({ spaceId, reportId, entityId, actions, summary, userId, reason, }) => { if (!projectId) { throw new Error("No projectId available."); } if (!spaceId || !reportId) { throw new Error("spaceId and reportId are required"); } const response = await axios.patch(`/${projectId}/spaces/${spaceId}/reports/entity/${reportId}`, { entityId, actions, summary, userId, reason, }); return response.data; }, [projectId, axios]); return handleSpaceEntityReport; } export default useHandleSpaceEntityReport; //# sourceMappingURL=useHandleSpaceEntityReport.js.map