UNPKG

communication-react-19

Version:

React library for building modern communication user experiences utilizing Azure Communication Services (React 19 compatible fork)

51 lines 2.32 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. import memoizeOne from 'memoize-one'; import { useAdapter } from '../adapter/ChatAdapterProvider'; /** * @private */ export const useHandlers = ( // eslint-disable-next-line @typescript-eslint/no-unused-vars _component) => { return createCompositeHandlers(useAdapter()); }; const createCompositeHandlers = memoizeOne((adapter) => ({ // have to use `any` here so we don't import from Chat SDK // eslint-disable-next-line @typescript-eslint/no-explicit-any onSendMessage: (content, options) => { /* @conditional-compile-remove(file-sharing-acs) */ if (options && 'attachments' in options && options.attachments && options.attachments[0] && !('attachmentType' in options.attachments[0])) { const adapterMessageOption = { metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) }) }; return adapter.sendMessage(content, adapterMessageOption); } return adapter.sendMessage(content, options); }, /* @conditional-compile-remove(rich-text-editor-image-upload) */ onUploadImage: adapter.uploadImage, /* @conditional-compile-remove(rich-text-editor-image-upload) */ onDeleteImage: adapter.deleteImage, onLoadPreviousChatMessages: adapter.loadPreviousChatMessages, onMessageSeen: adapter.sendReadReceipt, onTyping: adapter.sendTypingIndicator, onRemoveParticipant: adapter.removeParticipant, updateThreadTopicName: adapter.setTopic, onUpdateMessage: function (messageId, content, /* @conditional-compile-remove(file-sharing-acs) */ options) { /* @conditional-compile-remove(file-sharing-acs) */ const adapterMessageOptions = { attachments: options === null || options === void 0 ? void 0 : options.attachments }; return adapter.updateMessage(messageId, content, /* @conditional-compile-remove(file-sharing-acs) */ adapterMessageOptions); }, onDeleteMessage: adapter.deleteMessage })); //# sourceMappingURL=useHandlers.js.map