diff --git a/addons/im_livechat/static/src/models/composer_view.js b/addons/im_livechat/static/src/models/composer_view.js new file mode 100644 index 00000000000..7e5759625ca --- /dev/null +++ b/addons/im_livechat/static/src/models/composer_view.js @@ -0,0 +1,17 @@ +/** @odoo-module **/ + +import { patchRecordMethods } from '@mail/model/model_core'; +import { clear } from '@mail/model/model_field_command'; +import '@mail/models/composer_view'; + +patchRecordMethods('ComposerView', { + /** + * @override + */ + _computeDropZoneView() { + if (this.composer.thread && this.composer.thread.channel_type === 'livechat') { + return clear(); + } + return this._super(); + }, +}); diff --git a/addons/im_livechat/static/tests/qunit_suite_tests/components/composer_tests.js b/addons/im_livechat/static/tests/qunit_suite_tests/components/composer_tests.js index 596fc7e64e4..39004005cb1 100644 --- a/addons/im_livechat/static/tests/qunit_suite_tests/components/composer_tests.js +++ b/addons/im_livechat/static/tests/qunit_suite_tests/components/composer_tests.js @@ -26,5 +26,23 @@ QUnit.test('livechat: no add attachment button', async function (assert) { ); }); +QUnit.test('livechat: disable attachment upload via drag and drop', async function (assert) { + assert.expect(2); + + const { createComposerComponent, messaging } = await start(); + const thread = messaging.models['Thread'].create({ + channel_type: 'livechat', + id: 10, + model: 'mail.channel', + }); + await createComposerComponent(thread.composer); + assert.containsOnce(document.body, '.o_Composer', "should have a composer"); + assert.containsNone( + document.body, + '.o_Composer_dropZone', + "composer linked to livechat should not have a dropzone" + ); +}); + }); });