@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
33 lines • 1.56 kB
JavaScript
;
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 hooks_1 = require("../../../store/hooks");
const chatSlice_1 = require("../../../store/slices/chatSlice");
const useAxiosPrivate_1 = __importDefault(require("../../../config/useAxiosPrivate"));
const useProject_1 = __importDefault(require("../../projects/useProject"));
const handleError_1 = require("../../../utils/handleError");
function useEditMessage() {
const dispatch = (0, hooks_1.useReplykeDispatch)();
const { projectId } = (0, useProject_1.default)();
const axios = (0, useAxiosPrivate_1.default)();
const edit = (0, react_1.useCallback)(async ({ conversationId, messageId, content, gif, mentions, metadata, }) => {
if (!projectId)
throw new Error("No projectId available.");
try {
const response = await axios.patch(`/${projectId}/chat/conversations/${conversationId}/messages/${messageId}`, { content, gif, mentions, metadata });
const updated = response.data;
dispatch((0, chatSlice_1.upsertMessage)(updated));
return updated;
}
catch (err) {
(0, handleError_1.handleError)(err, "Failed to edit message");
throw err;
}
}, [projectId, axios, dispatch]);
return edit;
}
exports.default = useEditMessage;
//# sourceMappingURL=useEditMessage.js.map