Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/v2/component/left-panel/src/ |
Upload File : |
import {EventEmitter} from 'main.core.events'; import {RecentList as RecentListComponent} from 'im.v2.component.recent-list'; import {Search as SearchComponent} from 'im.v2.component.search'; import {EventType} from 'im.v2.const'; // @vue/component export const LeftPanel = { components: {RecentListComponent, SearchComponent}, data: function() { return { searchMode: false, searchQuery: '', }; }, created() { this.registerSearchEvents(); }, beforeUnmount() { this.unregisterSearchEvents(); }, methods: { registerSearchEvents() { this.onOpenSearchHandler = this.onOpenSearch.bind(this); this.onUpdateSearchHandler = this.onUpdateSearch.bind(this); this.onCloseSearchHandler = this.onCloseSearch.bind(this); EventEmitter.subscribe(EventType.recent.openSearch, this.onOpenSearchHandler); EventEmitter.subscribe(EventType.recent.updateSearch, this.onUpdateSearchHandler); EventEmitter.subscribe(EventType.recent.closeSearch, this.onCloseSearchHandler); }, unregisterSearchEvents() { EventEmitter.unsubscribe(EventType.recent.openSearch, this.onOpenSearchHandler); EventEmitter.unsubscribe(EventType.recent.updateSearch, this.onUpdateSearchHandler); EventEmitter.unsubscribe(EventType.recent.closeSearch, this.onCloseSearchHandler); }, onOpenSearch(event) { if (this.searchMode) { return; } this.searchMode = true; this.searchQuery = event.data.query; }, onUpdateSearch(event) { this.searchMode = true; this.searchQuery = event.data.query; }, onCloseSearch() { this.searchQuery = ''; this.searchMode = false; }, }, template: ` <div class="bx-im-left-panel-wrap"> <SearchComponent v-show="searchMode" :searchMode="searchMode" :searchQuery="searchQuery" /> <RecentListComponent v-show="!searchMode" /> </div> ` };