diff --git a/src/components/sidebarLeft/index.ts b/src/components/sidebarLeft/index.ts index 2d4b1286..b1e21ce6 100644 --- a/src/components/sidebarLeft/index.ts +++ b/src/components/sidebarLeft/index.ts @@ -91,8 +91,10 @@ export class AppSidebarLeft extends SidebarSlider { new AppArchivedTab(this).open(); }); - attachClickEvent(this.buttons.contacts, (e) => { - new AppContactsTab(this).open(); + [this.newButtons.privateChat, this.buttons.contacts].forEach(btn => { + attachClickEvent(btn, (e) => { + new AppContactsTab(this).open(); + }); }); attachClickEvent(this.buttons.settings, (e) => { diff --git a/src/components/sidebarLeft/tabs/chatFolders.ts b/src/components/sidebarLeft/tabs/chatFolders.ts index adfc28fe..364208f6 100644 --- a/src/components/sidebarLeft/tabs/chatFolders.ts +++ b/src/components/sidebarLeft/tabs/chatFolders.ts @@ -19,7 +19,7 @@ import { SettingSection } from ".."; export default class AppChatFoldersTab extends SliderSuperTab { private createFolderBtn: HTMLElement; - private foldersContainer: HTMLElement; + private foldersSection: SettingSection; private suggestedSection: SettingSection; private stickerContainer: HTMLElement; private animation: RLottiePlayer; @@ -117,20 +117,17 @@ export default class AppChatFoldersTab extends SliderSuperTab { icon: 'add' }); - const sec1 = new SettingSection({ + this.foldersSection = new SettingSection({ name: 'Folders' }); + this.foldersSection.container.style.display = 'none'; - this.foldersContainer = sec1.content; - - const sec2 = new SettingSection({ + this.suggestedSection = new SettingSection({ name: 'Recommended folders' }); - - this.suggestedSection = sec2; this.suggestedSection.container.style.display = 'none'; - this.scrollable.append(this.stickerContainer, caption, this.createFolderBtn, sec1.container, sec2.container); + this.scrollable.append(this.stickerContainer, caption, this.createFolderBtn, this.foldersSection.container, this.suggestedSection.container); attachClickEvent(this.createFolderBtn, () => { if(Object.keys(this.filtersRendered).length >= 10) { @@ -150,10 +147,16 @@ export default class AppChatFoldersTab extends SliderSuperTab { this.animation = player; }); + const onFiltersContainerUpdate = () => { + this.foldersSection.container.style.display = Object.keys(this.filtersRendered).length ? '' : 'none'; + }; + appMessagesManager.filtersStorage.getDialogFilters().then(filters => { for(const filter of filters) { - this.renderFolder(filter, this.foldersContainer); + this.renderFolder(filter, this.foldersSection.content); } + + onFiltersContainerUpdate(); }); this.listenerSetter.add(rootScope, 'filter_update', (e) => { @@ -161,9 +164,11 @@ export default class AppChatFoldersTab extends SliderSuperTab { if(this.filtersRendered.hasOwnProperty(filter.id)) { this.renderFolder(filter, null, this.filtersRendered[filter.id]); } else { - this.renderFolder(filter, this.foldersContainer); + this.renderFolder(filter, this.foldersSection.content); } + onFiltersContainerUpdate(); + this.getSuggestedFilters(); }); @@ -180,6 +185,8 @@ export default class AppChatFoldersTab extends SliderSuperTab { this.filtersRendered[filter.id].remove(); delete this.filtersRendered[filter.id] } + + onFiltersContainerUpdate(); }); this.listenerSetter.add(rootScope, 'filter_order', (e: BroadcastEvents['filter_order']) => { diff --git a/src/components/sidebarLeft/tabs/contacts.ts b/src/components/sidebarLeft/tabs/contacts.ts index 853ed32e..fa7aa15d 100644 --- a/src/components/sidebarLeft/tabs/contacts.ts +++ b/src/components/sidebarLeft/tabs/contacts.ts @@ -4,6 +4,7 @@ import appUsersManager from "../../../lib/appManagers/appUsersManager"; import appPhotosManager from "../../../lib/appManagers/appPhotosManager"; import rootScope from "../../../lib/rootScope"; import InputSearch from "../../inputSearch"; +import { canFocus } from "../../../helpers/dom"; // TODO: поиск по людям глобальный, если не нашло в контактах никого @@ -45,6 +46,11 @@ export default class AppContactsTab extends SliderSuperTab { (Array.from(this.list.children) as HTMLElement[]).slice(pageCount).forEach(el => el.remove()); */ } + onOpenAfterTimeout() { + if(!canFocus(true)) return; + this.inputSearch.input.focus(); + } + public openContacts(query?: string) { if(this.init) { this.init(); @@ -115,4 +121,4 @@ export default class AppContactsTab extends SliderSuperTab { this.openContacts(); return super.open(); } -} \ No newline at end of file +} diff --git a/src/index.hbs b/src/index.hbs index a2b9acb8..7869e6f3 100644 --- a/src/index.hbs +++ b/src/index.hbs @@ -130,7 +130,7 @@
- +