From d479c08bbd6251b69572f049582a76555996fc24 Mon Sep 17 00:00:00 2001 From: morethanwords Date: Tue, 14 Sep 2021 08:36:43 +0400 Subject: [PATCH] Fix initing search by hashtag --- src/components/appSearch.ts | 7 +++- src/components/sidebarRight/tabs/search.ts | 40 ++++++++++------------ 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/components/appSearch.ts b/src/components/appSearch.ts index 2826d141..a917bd54 100644 --- a/src/components/appSearch.ts +++ b/src/components/appSearch.ts @@ -132,9 +132,14 @@ export default class AppSearch { this.searchPromise = null; } - public beginSearch(peerId = 0, threadId = 0) { + public beginSearch(peerId = 0, threadId = 0, query = '') { this.peerId = peerId; this.threadId = threadId; + + if(this.query !== query) { + this.searchInput.inputField.value = query; + } + this.searchInput.input.focus(); } diff --git a/src/components/sidebarRight/tabs/search.ts b/src/components/sidebarRight/tabs/search.ts index e767c3cb..1a4093a6 100644 --- a/src/components/sidebarRight/tabs/search.ts +++ b/src/components/sidebarRight/tabs/search.ts @@ -19,10 +19,11 @@ export default class AppPrivateSearchTab extends SliderSuperTab { private peerId = 0; private threadId = 0; + private query = ''; private onDatePick: (timestamp: number) => void; onOpenAfterTimeout() { - this.appSearch.beginSearch(this.peerId, this.threadId); + this.appSearch.beginSearch(this.peerId, this.threadId, this.query); } protected init() { @@ -44,30 +45,27 @@ export default class AppPrivateSearchTab extends SliderSuperTab { open(peerId: number, threadId?: number, onDatePick?: AppPrivateSearchTab['onDatePick'], query?: string) { const ret = super.open(); - if(this.init) { - this.init(); - this.init = null; - } - - query && (this.inputSearch.inputField.value = query); - - if(this.peerId !== 0) { - this.appSearch.beginSearch(this.peerId, this.threadId); - return ret; - } - this.peerId = peerId; - this.threadId = threadId; - this.onDatePick = onDatePick; + if(!this.peerId) { + this.query = query; + this.peerId = peerId; + this.threadId = threadId; + this.onDatePick = onDatePick; + + this.btnPickDate.classList.toggle('hide', !this.onDatePick); + if(this.onDatePick) { + attachClickEvent(this.btnPickDate, () => { + new PopupDatePicker(new Date(), this.onDatePick).show(); + }); + } - this.btnPickDate.classList.toggle('hide', !this.onDatePick); - if(this.onDatePick) { - attachClickEvent(this.btnPickDate, () => { - new PopupDatePicker(new Date(), this.onDatePick).show(); - }); + query && this.appSearch.searchInput.inputField.setValueSilently(query); + + appSidebarRight.toggleSidebar(true); + } else { + this.appSearch.beginSearch(this.peerId, this.threadId, query); } - appSidebarRight.toggleSidebar(true); return ret; } }