Added translation of saved
Translated saved in search Update search index on peer's update
This commit is contained in:
parent
2cdae0ddd3
commit
967e849aae
@ -11,7 +11,7 @@ import appPeersManager from "../lib/appManagers/appPeersManager";
|
|||||||
import appPhotosManager from "../lib/appManagers/appPhotosManager";
|
import appPhotosManager from "../lib/appManagers/appPhotosManager";
|
||||||
import appUsersManager from "../lib/appManagers/appUsersManager";
|
import appUsersManager from "../lib/appManagers/appUsersManager";
|
||||||
import rootScope from "../lib/rootScope";
|
import rootScope from "../lib/rootScope";
|
||||||
import { cancelEvent } from "../helpers/dom";
|
import { cancelEvent, replaceContent } from "../helpers/dom";
|
||||||
import Scrollable from "./scrollable";
|
import Scrollable from "./scrollable";
|
||||||
import { FocusDirection } from "../helpers/fastSmoothScroll";
|
import { FocusDirection } from "../helpers/fastSmoothScroll";
|
||||||
import CheckboxField from "./checkboxField";
|
import CheckboxField from "./checkboxField";
|
||||||
@ -20,6 +20,7 @@ import { safeAssign } from "../helpers/object";
|
|||||||
import { i18n, LangPackKey, _i18n } from "../lib/langPack";
|
import { i18n, LangPackKey, _i18n } from "../lib/langPack";
|
||||||
import findUpAttribute from "../helpers/dom/findUpAttribute";
|
import findUpAttribute from "../helpers/dom/findUpAttribute";
|
||||||
import findUpClassName from "../helpers/dom/findUpClassName";
|
import findUpClassName from "../helpers/dom/findUpClassName";
|
||||||
|
import PeerTitle from "./peerTitle";
|
||||||
|
|
||||||
type PeerType = 'contacts' | 'dialogs' | 'channelParticipants';
|
type PeerType = 'contacts' | 'dialogs' | 'channelParticipants';
|
||||||
|
|
||||||
@ -475,7 +476,7 @@ export default class AppSelectPeers {
|
|||||||
div.dataset.key = '' + peerId;
|
div.dataset.key = '' + peerId;
|
||||||
if(typeof(peerId) === 'number') {
|
if(typeof(peerId) === 'number') {
|
||||||
if(title === undefined) {
|
if(title === undefined) {
|
||||||
title = peerId === rootScope.myId ? 'Saved' : appPeersManager.getPeerTitle(peerId, false, true);
|
title = new PeerTitle({peerId, onlyFirstName: true}).element;
|
||||||
}
|
}
|
||||||
|
|
||||||
avatarEl.setAttribute('peer', '' + peerId);
|
avatarEl.setAttribute('peer', '' + peerId);
|
||||||
@ -485,7 +486,7 @@ export default class AppSelectPeers {
|
|||||||
if(typeof(title) === 'string') {
|
if(typeof(title) === 'string') {
|
||||||
div.innerHTML = title;
|
div.innerHTML = title;
|
||||||
} else {
|
} else {
|
||||||
div.innerHTML = '';
|
replaceContent(div, title);
|
||||||
div.append(title);
|
div.append(title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
import { MOUNT_CLASS_TO } from "../config/debug";
|
import { MOUNT_CLASS_TO } from "../config/debug";
|
||||||
import appPeersManager from "../lib/appManagers/appPeersManager";
|
import appPeersManager from "../lib/appManagers/appPeersManager";
|
||||||
import rootScope from "../lib/rootScope";
|
import rootScope from "../lib/rootScope";
|
||||||
|
import { replaceContent } from "../helpers/dom";
|
||||||
|
import { i18n } from "../lib/langPack";
|
||||||
|
|
||||||
export type PeerTitleOptions = {
|
export type PeerTitleOptions = {
|
||||||
peerId: number,
|
peerId: number,
|
||||||
@ -59,7 +61,7 @@ export default class PeerTitle {
|
|||||||
if(this.peerId !== rootScope.myId || !this.dialog) {
|
if(this.peerId !== rootScope.myId || !this.dialog) {
|
||||||
this.element.innerHTML = appPeersManager.getPeerTitle(this.peerId, this.plainText, this.onlyFirstName);
|
this.element.innerHTML = appPeersManager.getPeerTitle(this.peerId, this.plainText, this.onlyFirstName);
|
||||||
} else {
|
} else {
|
||||||
this.element.innerHTML = this.onlyFirstName ? 'Saved' : 'Saved Messages';
|
replaceContent(this.element, i18n(this.onlyFirstName ? 'Saved' : 'SavedMessages'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,8 @@ import { isMobileSafari } from "../../helpers/userAgent";
|
|||||||
import appNavigationController from "../appNavigationController";
|
import appNavigationController from "../appNavigationController";
|
||||||
import findUpClassName from "../../helpers/dom/findUpClassName";
|
import findUpClassName from "../../helpers/dom/findUpClassName";
|
||||||
import findUpTag from "../../helpers/dom/findUpTag";
|
import findUpTag from "../../helpers/dom/findUpTag";
|
||||||
|
import PeerTitle from "../peerTitle";
|
||||||
|
import { replaceContent } from "../../helpers/dom";
|
||||||
|
|
||||||
export const LEFT_COLUMN_ACTIVE_CLASSNAME = 'is-left-column-shown';
|
export const LEFT_COLUMN_ACTIVE_CLASSNAME = 'is-left-column-shown';
|
||||||
|
|
||||||
@ -290,7 +292,7 @@ export class AppSidebarLeft extends SidebarSlider {
|
|||||||
|
|
||||||
searchSuper.nav.parentElement.append(helper);
|
searchSuper.nav.parentElement.append(helper);
|
||||||
|
|
||||||
const renderEntity = (peerId: any, title?: string) => {
|
const renderEntity = (peerId: any, title?: string | HTMLElement) => {
|
||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.classList.add('selector-user'/* , 'scale-in' */);
|
div.classList.add('selector-user'/* , 'scale-in' */);
|
||||||
|
|
||||||
@ -302,7 +304,7 @@ export class AppSidebarLeft extends SidebarSlider {
|
|||||||
div.dataset.key = '' + peerId;
|
div.dataset.key = '' + peerId;
|
||||||
if(typeof(peerId) === 'number') {
|
if(typeof(peerId) === 'number') {
|
||||||
if(title === undefined) {
|
if(title === undefined) {
|
||||||
title = peerId === rootScope.myId ? 'Saved' : appPeersManager.getPeerTitle(peerId, false, true);
|
title = new PeerTitle({peerId, onlyFirstName: true}).element;
|
||||||
}
|
}
|
||||||
|
|
||||||
avatarEl.setAttribute('peer', '' + peerId);
|
avatarEl.setAttribute('peer', '' + peerId);
|
||||||
@ -311,7 +313,12 @@ export class AppSidebarLeft extends SidebarSlider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(title) {
|
if(title) {
|
||||||
div.innerHTML = title;
|
if(typeof(title) === 'string') {
|
||||||
|
div.innerHTML = title;
|
||||||
|
} else {
|
||||||
|
replaceContent(div, title);
|
||||||
|
div.append(title);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
div.insertAdjacentElement('afterbegin', avatarEl);
|
div.insertAdjacentElement('afterbegin', avatarEl);
|
||||||
@ -446,7 +453,7 @@ export class AppSidebarLeft extends SidebarSlider {
|
|||||||
this.newBtnMenu.classList.add('is-hidden');
|
this.newBtnMenu.classList.add('is-hidden');
|
||||||
this.toolsBtn.parentElement.firstElementChild.classList.toggle('state-back', true);
|
this.toolsBtn.parentElement.firstElementChild.classList.toggle('state-back', true);
|
||||||
|
|
||||||
if(!isMobileSafari) {
|
if(!isMobileSafari && !appNavigationController.findItemByType('global-search')) {
|
||||||
appNavigationController.pushItem({
|
appNavigationController.pushItem({
|
||||||
onPop: () => {
|
onPop: () => {
|
||||||
close();
|
close();
|
||||||
|
@ -497,28 +497,32 @@ class PeerProfile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public setAvatar() {
|
public setAvatar() {
|
||||||
const photo = appPeersManager.getPeerPhoto(this.peerId);
|
if(this.peerId !== rootScope.myId) {
|
||||||
|
const photo = appPeersManager.getPeerPhoto(this.peerId);
|
||||||
|
|
||||||
if(photo) {
|
if(photo) {
|
||||||
const oldAvatars = this.avatars;
|
const oldAvatars = this.avatars;
|
||||||
this.avatars = new PeerProfileAvatars();
|
this.avatars = new PeerProfileAvatars();
|
||||||
this.avatars.setPeer(this.peerId);
|
this.avatars.setPeer(this.peerId);
|
||||||
this.avatars.info.append(this.name, this.subtitle);
|
this.avatars.info.append(this.name, this.subtitle);
|
||||||
|
|
||||||
this.avatar.remove();
|
|
||||||
|
|
||||||
if(oldAvatars) oldAvatars.container.replaceWith(this.avatars.container);
|
this.avatar.remove();
|
||||||
else this.element.prepend(this.avatars.container);
|
|
||||||
} else {
|
if(oldAvatars) oldAvatars.container.replaceWith(this.avatars.container);
|
||||||
if(this.avatars) {
|
else this.element.prepend(this.avatars.container);
|
||||||
this.avatars.container.remove();
|
|
||||||
this.avatars = undefined;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.avatar.setAttribute('peer', '' + this.peerId);
|
|
||||||
|
|
||||||
this.section.content.prepend(this.avatar, this.name, this.subtitle);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.avatars) {
|
||||||
|
this.avatars.container.remove();
|
||||||
|
this.avatars = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.avatar.setAttribute('peer', '' + this.peerId);
|
||||||
|
|
||||||
|
this.section.content.prepend(this.avatar, this.name, this.subtitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public fillProfileElements() {
|
public fillProfileElements() {
|
||||||
|
@ -67,6 +67,10 @@ export function getObjectKeysAndSort(object: any, sort: 'asc' | 'desc' = 'asc')
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function safeReplaceObject(wasObject: any, newObject: any) {
|
export function safeReplaceObject(wasObject: any, newObject: any) {
|
||||||
|
if(!wasObject) {
|
||||||
|
return newObject;
|
||||||
|
}
|
||||||
|
|
||||||
for(var key in wasObject) {
|
for(var key in wasObject) {
|
||||||
if(!newObject.hasOwnProperty(key) && key.charAt(0) !== '$') {
|
if(!newObject.hasOwnProperty(key) && key.charAt(0) !== '$') {
|
||||||
delete wasObject[key];
|
delete wasObject[key];
|
||||||
@ -78,6 +82,8 @@ export function safeReplaceObject(wasObject: any, newObject: any) {
|
|||||||
wasObject[key] = newObject[key];
|
wasObject[key] = newObject[key];
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return wasObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,6 +90,7 @@ const lang = {
|
|||||||
"MarkupTooltip.LinkPlaceholder": "Enter URL...",
|
"MarkupTooltip.LinkPlaceholder": "Enter URL...",
|
||||||
"MediaViewer.Context.Download": "Download",
|
"MediaViewer.Context.Download": "Download",
|
||||||
"Profile": "Profile",
|
"Profile": "Profile",
|
||||||
|
"Saved": "Saved",
|
||||||
|
|
||||||
// * android
|
// * android
|
||||||
"ActionCreateChannel": "Channel created",
|
"ActionCreateChannel": "Channel created",
|
||||||
|
@ -36,7 +36,6 @@ export class AppChatsManager {
|
|||||||
//public usernames: any = {};
|
//public usernames: any = {};
|
||||||
//public channelAccess: any = {};
|
//public channelAccess: any = {};
|
||||||
//public megagroups: {[id: number]: true} = {};
|
//public megagroups: {[id: number]: true} = {};
|
||||||
public cachedPhotoLocations: {[id: number]: ChatPhoto} = {};
|
|
||||||
|
|
||||||
public megagroupOnlines: {[id: number]: {timestamp: number, onlines: number}} = {};
|
public megagroupOnlines: {[id: number]: {timestamp: number, onlines: number}} = {};
|
||||||
|
|
||||||
@ -184,11 +183,6 @@ export class AppChatsManager {
|
|||||||
rootScope.broadcast('chat_update', chat.id);
|
rootScope.broadcast('chat_update', chat.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.cachedPhotoLocations[chat.id] !== undefined) {
|
|
||||||
safeReplaceObject(this.cachedPhotoLocations[chat.id], chat &&
|
|
||||||
chat.photo ? chat.photo : {empty: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(changedPhoto) {
|
if(changedPhoto) {
|
||||||
rootScope.broadcast('avatar_update', -chat.id);
|
rootScope.broadcast('avatar_update', -chat.id);
|
||||||
}
|
}
|
||||||
@ -388,13 +382,9 @@ export class AppChatsManager {
|
|||||||
public getChatPhoto(id: number) {
|
public getChatPhoto(id: number) {
|
||||||
const chat: Chat.chat = this.getChat(id);
|
const chat: Chat.chat = this.getChat(id);
|
||||||
|
|
||||||
if(this.cachedPhotoLocations[id] === undefined) {
|
return chat && chat.photo || {
|
||||||
this.cachedPhotoLocations[id] = chat && chat.photo || {
|
_: 'chatPhotoEmpty'
|
||||||
_: 'chatPhotoEmpty'
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.cachedPhotoLocations[id];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public getChatString(id: number) {
|
public getChatString(id: number) {
|
||||||
|
@ -184,7 +184,6 @@ export class AppMessagesManager {
|
|||||||
private reloadConversationsPromise: Promise<void>;
|
private reloadConversationsPromise: Promise<void>;
|
||||||
private reloadConversationsPeers: number[] = [];
|
private reloadConversationsPeers: number[] = [];
|
||||||
|
|
||||||
private dialogsIndex = searchIndexManager.createIndex();
|
|
||||||
private cachedResults: {
|
private cachedResults: {
|
||||||
query: string,
|
query: string,
|
||||||
count: number,
|
count: number,
|
||||||
@ -228,6 +227,15 @@ export class AppMessagesManager {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
rootScope.on('language_change', (e) => {
|
||||||
|
const peerId = appUsersManager.getSelf().id;
|
||||||
|
const dialog = this.getDialogByPeerId(peerId)[0];
|
||||||
|
if(dialog) {
|
||||||
|
const peerText = appPeersManager.getPeerSearchText(peerId);
|
||||||
|
searchIndexManager.indexObject(peerId, peerText, this.dialogsStorage.dialogsIndex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
rootScope.on('webpage_updated', (e) => {
|
rootScope.on('webpage_updated', (e) => {
|
||||||
const eventData = e;
|
const eventData = e;
|
||||||
eventData.msgs.forEach((mid) => {
|
eventData.msgs.forEach((mid) => {
|
||||||
@ -1650,7 +1658,7 @@ export class AppMessagesManager {
|
|||||||
this.cachedResults.query = query;
|
this.cachedResults.query = query;
|
||||||
this.cachedResults.folderId = folderId;
|
this.cachedResults.folderId = folderId;
|
||||||
|
|
||||||
const results = searchIndexManager.search(query, this.dialogsIndex);
|
const results = searchIndexManager.search(query, this.dialogsStorage.dialogsIndex);
|
||||||
|
|
||||||
this.cachedResults.dialogs = [];
|
this.cachedResults.dialogs = [];
|
||||||
|
|
||||||
@ -3070,7 +3078,7 @@ export class AppMessagesManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const peerText = appPeersManager.getPeerSearchText(peerId);
|
const peerText = appPeersManager.getPeerSearchText(peerId);
|
||||||
searchIndexManager.indexObject(peerId, peerText, this.dialogsIndex);
|
searchIndexManager.indexObject(peerId, peerText, this.dialogsStorage.dialogsIndex);
|
||||||
|
|
||||||
let mid: number, message;
|
let mid: number, message;
|
||||||
if(dialog.top_message) {
|
if(dialog.top_message) {
|
||||||
|
@ -35,7 +35,6 @@ export class AppUsersManager {
|
|||||||
private users: {[userId: number]: User} = {};
|
private users: {[userId: number]: User} = {};
|
||||||
private usernames: {[username: string]: number} = {};
|
private usernames: {[username: string]: number} = {};
|
||||||
//public userAccess: {[userId: number]: string} = {};
|
//public userAccess: {[userId: number]: string} = {};
|
||||||
private cachedPhotoLocations: {[userId: number]: UserProfilePhoto} = {};
|
|
||||||
private contactsIndex = searchIndexManager.createIndex();
|
private contactsIndex = searchIndexManager.createIndex();
|
||||||
private contactsFillPromise: Promise<Set<number>>;
|
private contactsFillPromise: Promise<Set<number>>;
|
||||||
public contactsList: Set<number> = new Set();
|
public contactsList: Set<number> = new Set();
|
||||||
@ -80,17 +79,12 @@ export class AppUsersManager {
|
|||||||
if(user) {
|
if(user) {
|
||||||
this.forceUserOnline(userId);
|
this.forceUserOnline(userId);
|
||||||
|
|
||||||
if(!user.photo) {
|
if(update.photo._ === 'userProfilePhotoEmpty') {
|
||||||
user.photo = update.photo;
|
delete user.photo;
|
||||||
} else {
|
} else {
|
||||||
safeReplaceObject(user.photo, update.photo);
|
user.photo = safeReplaceObject(user.photo, update.photo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.cachedPhotoLocations[userId] !== undefined) {
|
|
||||||
safeReplaceObject(this.cachedPhotoLocations[userId], update.photo ?
|
|
||||||
update.photo : {empty: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
rootScope.broadcast('user_update', userId);
|
rootScope.broadcast('user_update', userId);
|
||||||
rootScope.broadcast('avatar_update', userId);
|
rootScope.broadcast('avatar_update', userId);
|
||||||
} else console.warn('No user by id:', userId);
|
} else console.warn('No user by id:', userId);
|
||||||
@ -120,6 +114,11 @@ export class AppUsersManager {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
rootScope.on('language_change', (e) => {
|
||||||
|
const userId = this.getSelf().id;
|
||||||
|
searchIndexManager.indexObject(userId, this.getUserSearchText(userId), this.contactsIndex);
|
||||||
|
});
|
||||||
|
|
||||||
appStateManager.getState().then((state) => {
|
appStateManager.getState().then((state) => {
|
||||||
this.users = state.users;
|
this.users = state.users;
|
||||||
|
|
||||||
@ -198,12 +197,16 @@ export class AppUsersManager {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
const serviceText = user.pFlags.self ? 'Saved Messages' : '';
|
const arr: string[] = [
|
||||||
return (user.first_name || '') +
|
user.first_name,
|
||||||
' ' + (user.last_name || '') +
|
user.last_name,
|
||||||
' ' + (user.phone || '') +
|
user.phone,
|
||||||
' ' + (user.username || '') +
|
user.username,
|
||||||
' ' + serviceText;
|
user.pFlags.self ? I18n.format('SavedMessages', true) : '',
|
||||||
|
user.pFlags.self ? 'Saved Messages' : ''
|
||||||
|
];
|
||||||
|
|
||||||
|
return arr.filter(Boolean).join(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
public getContacts(query?: string, includeSaved = false) {
|
public getContacts(query?: string, includeSaved = false) {
|
||||||
@ -351,11 +354,6 @@ export class AppUsersManager {
|
|||||||
|
|
||||||
rootScope.broadcast('user_update', userId);
|
rootScope.broadcast('user_update', userId);
|
||||||
|
|
||||||
if(this.cachedPhotoLocations[userId] !== undefined) {
|
|
||||||
safeReplaceObject(this.cachedPhotoLocations[userId], user &&
|
|
||||||
user.photo ? user.photo : {empty: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(changedTitle) {
|
if(changedTitle) {
|
||||||
rootScope.broadcast('peer_title_edit', user.id);
|
rootScope.broadcast('peer_title_edit', user.id);
|
||||||
}
|
}
|
||||||
@ -514,13 +512,9 @@ export class AppUsersManager {
|
|||||||
public getUserPhoto(id: number) {
|
public getUserPhoto(id: number) {
|
||||||
const user = this.getUser(id);
|
const user = this.getUser(id);
|
||||||
|
|
||||||
if(this.cachedPhotoLocations[id] === undefined) {
|
return user && user.photo || {
|
||||||
this.cachedPhotoLocations[id] = user && user.photo || {
|
_: 'userProfilePhotoEmpty'
|
||||||
_: 'userProfilePhotoEmpty'
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.cachedPhotoLocations[id];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public getUserString(id: number) {
|
public getUserString(id: number) {
|
||||||
|
@ -13,6 +13,7 @@ import { LangPackDifference, LangPackString } from "../layer";
|
|||||||
import apiManager from "./mtproto/mtprotoworker";
|
import apiManager from "./mtproto/mtprotoworker";
|
||||||
import sessionStorage from "./sessionStorage";
|
import sessionStorage from "./sessionStorage";
|
||||||
import App from "../config/app";
|
import App from "../config/app";
|
||||||
|
import rootScope from "./rootScope";
|
||||||
|
|
||||||
export const langPack: {[actionType: string]: LangPackKey} = {
|
export const langPack: {[actionType: string]: LangPackKey} = {
|
||||||
"messageActionChatCreate": "ActionCreateGroup",
|
"messageActionChatCreate": "ActionCreateGroup",
|
||||||
@ -204,6 +205,8 @@ namespace I18n {
|
|||||||
strings.set(string.key as LangPackKey, string);
|
strings.set(string.key as LangPackKey, string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rootScope.broadcast('language_change');
|
||||||
|
|
||||||
const elements = Array.from(document.querySelectorAll(`.i18n`)) as HTMLElement[];
|
const elements = Array.from(document.querySelectorAll(`.i18n`)) as HTMLElement[];
|
||||||
elements.forEach(element => {
|
elements.forEach(element => {
|
||||||
const instance = weakMap.get(element);
|
const instance = weakMap.get(element);
|
||||||
|
@ -108,6 +108,8 @@ export type BroadcastEvents = {
|
|||||||
|
|
||||||
'notify_settings': Update.updateNotifySettings,
|
'notify_settings': Update.updateNotifySettings,
|
||||||
'notify_peer_type_settings': {key: Exclude<NotifyPeer['_'], 'notifyPeer'>, settings: PeerNotifySettings},
|
'notify_peer_type_settings': {key: Exclude<NotifyPeer['_'], 'notifyPeer'>, settings: PeerNotifySettings},
|
||||||
|
|
||||||
|
'language_change': void,
|
||||||
};
|
};
|
||||||
|
|
||||||
class RootScope extends EventListenerBase<any> {
|
class RootScope extends EventListenerBase<any> {
|
||||||
|
@ -54,12 +54,16 @@ class SearchIndexManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public indexObject(id: number, searchText: string, searchIndex: SearchIndex) {
|
public indexObject(id: number, searchText: string, searchIndex: SearchIndex) {
|
||||||
if(searchIndex.fullTexts.hasOwnProperty(id)) {
|
/* if(searchIndex.fullTexts.hasOwnProperty(id)) {
|
||||||
return false;
|
return false;
|
||||||
|
} */
|
||||||
|
|
||||||
|
if(searchText.trim()) {
|
||||||
|
searchText = this.cleanSearchText(searchText);
|
||||||
}
|
}
|
||||||
|
|
||||||
searchText = this.cleanSearchText(searchText);
|
if(!searchText) {
|
||||||
if(!searchText.length) {
|
delete searchIndex.fullTexts[id];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,4 +143,4 @@ class SearchIndexManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default new SearchIndexManager();
|
export default new SearchIndexManager();
|
||||||
|
@ -15,6 +15,7 @@ import type { AppChatsManager } from "../appManagers/appChatsManager";
|
|||||||
import type { AppMessagesManager, Dialog, MyMessage } from "../appManagers/appMessagesManager";
|
import type { AppMessagesManager, Dialog, MyMessage } from "../appManagers/appMessagesManager";
|
||||||
import type { AppPeersManager } from "../appManagers/appPeersManager";
|
import type { AppPeersManager } from "../appManagers/appPeersManager";
|
||||||
import type { ServerTimeManager } from "../mtproto/serverTimeManager";
|
import type { ServerTimeManager } from "../mtproto/serverTimeManager";
|
||||||
|
import searchIndexManager from "../searchIndexManager";
|
||||||
|
|
||||||
export default class DialogsStorage {
|
export default class DialogsStorage {
|
||||||
public dialogs: {[peerId: string]: Dialog} = {};
|
public dialogs: {[peerId: string]: Dialog} = {};
|
||||||
@ -25,6 +26,8 @@ export default class DialogsStorage {
|
|||||||
public pinnedOrders: {[folder_id: number]: number[]};
|
public pinnedOrders: {[folder_id: number]: number[]};
|
||||||
private dialogsNum: number;
|
private dialogsNum: number;
|
||||||
|
|
||||||
|
public dialogsIndex = searchIndexManager.createIndex();
|
||||||
|
|
||||||
constructor(private appMessagesManager: AppMessagesManager, private appChatsManager: AppChatsManager, private appPeersManager: AppPeersManager, private serverTimeManager: ServerTimeManager) {
|
constructor(private appMessagesManager: AppMessagesManager, private appChatsManager: AppChatsManager, private appPeersManager: AppPeersManager, private serverTimeManager: ServerTimeManager) {
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
@ -199,6 +202,7 @@ export default class DialogsStorage {
|
|||||||
if(foundDialog[0]) {
|
if(foundDialog[0]) {
|
||||||
this.byFolders[foundDialog[0].folder_id].splice(foundDialog[1], 1);
|
this.byFolders[foundDialog[0].folder_id].splice(foundDialog[1], 1);
|
||||||
delete this.dialogs[peerId];
|
delete this.dialogs[peerId];
|
||||||
|
searchIndexManager.indexObject(peerId, '', this.dialogsIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
return foundDialog;
|
return foundDialog;
|
||||||
|
Loading…
Reference in New Issue
Block a user