odoo.define('mail/static/src/components/activity_box/activity_box.js', function (require) { 'use strict'; const components = { Activity: require('mail/static/src/components/activity/activity.js'), }; const useShouldUpdateBasedOnProps = require('mail/static/src/component_hooks/use_should_update_based_on_props/use_should_update_based_on_props.js'); const useStore = require('mail/static/src/component_hooks/use_store/use_store.js'); const { Component } = owl; class ActivityBox extends Component { /** * @override */ constructor(...args) { super(...args); useShouldUpdateBasedOnProps(); useStore(props => { const chatter = this.env.models['mail.chatter'].get(props.chatterLocalId); const thread = chatter && chatter.thread; return { chatter: chatter ? chatter.__state : undefined, thread: thread && thread.__state, }; }); } //-------------------------------------------------------------------------- // Public //-------------------------------------------------------------------------- /** * @returns {Chatter} */ get chatter() { return this.env.models['mail.chatter'].get(this.props.chatterLocalId); } //-------------------------------------------------------------------------- // Handlers //-------------------------------------------------------------------------- /** * @private */ _onClickTitle() { this.chatter.toggleActivityBoxVisibility(); } } Object.assign(ActivityBox, { components, props: { chatterLocalId: String, }, template: 'mail.ActivityBox', }); return ActivityBox; });