UNPKG

@replyke/core

Version:

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

39 lines 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = require("react"); const useProject_1 = __importDefault(require("../projects/useProject")); const useAxiosPrivate_1 = __importDefault(require("../../config/useAxiosPrivate")); /** * Hook to moderate an entity within a space (approve or remove). * Requires space moderator permissions. * * @example * const moderateSpaceEntity = useModerateSpaceEntity(); * * await moderateSpaceEntity({ * spaceId: "space-uuid", * entityId: "entity-uuid", * action: "remove", * reason: "Violates community guidelines" * }); */ function useModerateSpaceEntity() { const { projectId } = (0, useProject_1.default)(); const axios = (0, useAxiosPrivate_1.default)(); const moderateSpaceEntity = (0, react_1.useCallback)(async ({ spaceId, entityId, action, reason, }) => { if (!projectId) { throw new Error("No projectId available."); } if (!spaceId || !entityId) { throw new Error("spaceId and entityId are required."); } const response = await axios.patch(`/${projectId}/spaces/${spaceId}/entities/${entityId}/moderation`, { action, reason }); return response.data; }, [projectId, axios]); return moderateSpaceEntity; } exports.default = useModerateSpaceEntity; //# sourceMappingURL=useModerateSpaceEntity.js.map