diff --git a/src/components/chat/bubbles.ts b/src/components/chat/bubbles.ts
index eb0325cd..cb7b1b11 100644
--- a/src/components/chat/bubbles.ts
+++ b/src/components/chat/bubbles.ts
@@ -43,6 +43,7 @@ import { FocusDirection } from "../../helpers/fastSmoothScroll";
import useHeavyAnimationCheck, { getHeavyAnimationPromise, dispatchHeavyAnimationEvent } from "../../hooks/useHeavyAnimationCheck";
import { fastRaf } from "../../helpers/schedulers";
import { deferredPromise } from "../../helpers/cancellablePromise";
+import RepliesElement from "./replies";
const USE_MEDIA_TAILS = false;
const IGNORE_ACTIONS = ['messageActionHistoryClear'];
@@ -191,6 +192,12 @@ export default class ChatBubbles {
/////this.log('message_sent', bubble);
+ if(message.replies) {
+ const repliesElement = bubble.querySelector('replies-element') as RepliesElement;
+ repliesElement.message = message;
+ repliesElement.init();
+ }
+
if(message.media?.document && !message.media.document.type) {
const div = bubble.querySelector(`.document-container[data-mid="${tempId}"] .document`);
if(div) {
diff --git a/src/components/chat/replies.ts b/src/components/chat/replies.ts
index b97aa0df..44f4d726 100644
--- a/src/components/chat/replies.ts
+++ b/src/components/chat/replies.ts
@@ -48,7 +48,7 @@ export default class RepliesElement extends HTMLElement {
if(replies?.recent_repliers) {
if(leftPart && !leftPart.classList.contains('replies-footer-avatars')) {
- leftPart.remove();
+ this.innerHTML = '';
leftPart = null;
}
@@ -130,7 +130,7 @@ export default class RepliesElement extends HTMLElement {
this.innerHTML = `${replies?.replies ? formatNumber(replies.replies, 0) : ''}`;
}
- if(replies && !this.updated) {
+ if(replies && !this.updated && !this.message.pFlags.is_outgoing) {
appMessagesManager.subscribeRepliesThread(this.message.peerId, this.message.mid);
appMessagesManager.updateMessage(this.message.peerId, this.message.mid, 'replies_updated');
this.updated = true;
diff --git a/src/layer.d.ts b/src/layer.d.ts
index c25e4722..c493823e 100644
--- a/src/layer.d.ts
+++ b/src/layer.d.ts
@@ -808,6 +808,7 @@ export namespace Message {
edit_hide?: true,
pinned?: true,
unread?: true,
+ is_outgoing?: true,
}>,
id: number,
from_id?: Peer,
@@ -831,7 +832,6 @@ export namespace Message {
deleted?: boolean,
peerId?: number,
fromId?: number,
- canBeEdited?: boolean,
rReply?: string
};
@@ -846,6 +846,7 @@ export namespace Message {
post?: true,
legacy?: true,
unread?: true,
+ is_outgoing?: true,
}>,
id: number,
from_id?: Peer,
@@ -857,7 +858,6 @@ export namespace Message {
deleted?: boolean,
peerId?: number,
fromId?: number,
- canBeEdited?: boolean,
rReply?: string
};
}
@@ -3847,160 +3847,138 @@ export namespace MessageEntity {
export type messageEntityUnknown = {
_: 'messageEntityUnknown',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityMention = {
_: 'messageEntityMention',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityHashtag = {
_: 'messageEntityHashtag',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityBotCommand = {
_: 'messageEntityBotCommand',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityUrl = {
_: 'messageEntityUrl',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityEmail = {
_: 'messageEntityEmail',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityBold = {
_: 'messageEntityBold',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityItalic = {
_: 'messageEntityItalic',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityCode = {
_: 'messageEntityCode',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityPre = {
_: 'messageEntityPre',
offset: number,
length: number,
- language: string,
- nested?: Array
+ language: string
};
export type messageEntityTextUrl = {
_: 'messageEntityTextUrl',
offset: number,
length: number,
- url: string,
- nested?: Array
+ url: string
};
export type messageEntityMentionName = {
_: 'messageEntityMentionName',
offset: number,
length: number,
- user_id: number,
- nested?: Array
+ user_id: number
};
export type inputMessageEntityMentionName = {
_: 'inputMessageEntityMentionName',
offset: number,
length: number,
- user_id: InputUser,
- nested?: Array
+ user_id: InputUser
};
export type messageEntityPhone = {
_: 'messageEntityPhone',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityCashtag = {
_: 'messageEntityCashtag',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityUnderline = {
_: 'messageEntityUnderline',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityStrike = {
_: 'messageEntityStrike',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityBlockquote = {
_: 'messageEntityBlockquote',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityBankCard = {
_: 'messageEntityBankCard',
offset: number,
- length: number,
- nested?: Array
+ length: number
};
export type messageEntityEmoji = {
_: 'messageEntityEmoji',
offset?: number,
length?: number,
- unicode?: string,
- nested?: Array
+ unicode?: string
};
export type messageEntityHighlight = {
_: 'messageEntityHighlight',
offset?: number,
- length?: number,
- nested?: Array
+ length?: number
};
export type messageEntityLinebreak = {
_: 'messageEntityLinebreak',
offset?: number,
- length?: number,
- nested?: Array
+ length?: number
};
}
diff --git a/src/lib/richtextprocessor.ts b/src/lib/richtextprocessor.ts
index 24951ad9..c7ed7f63 100644
--- a/src/lib/richtextprocessor.ts
+++ b/src/lib/richtextprocessor.ts
@@ -349,7 +349,6 @@ namespace RichTextProcessor {
[_ in MessageEntity['_']]: true
}>,
- nested?: true,
contextHashtag?: string
}> = {}) {
if(!text || !text.length) {
@@ -499,7 +498,6 @@ namespace RichTextProcessor {
if(entity._ === 'messageEntityTextUrl') {
url = (entity as MessageEntity.messageEntityTextUrl).url;
url = wrapUrl(url, true);
- //inner = wrapRichNestedText(entityText, entity.nested, options);
} else {
url = wrapUrl(entityText, false);
//inner = encodeEntities(replaceUrlEncodings(entityText));
diff --git a/src/scripts/in/schema_additional_params.json b/src/scripts/in/schema_additional_params.json
index d7c7979d..5d0b35e8 100644
--- a/src/scripts/in/schema_additional_params.json
+++ b/src/scripts/in/schema_additional_params.json
@@ -69,8 +69,8 @@
{"name": "peerId", "type": "number"},
{"name": "fromId", "type": "number"},
{"name": "grouped_id", "type": "string"},
- {"name": "canBeEdited", "type": "boolean"},
{"name": "unread", "type": "true"},
+ {"name": "is_outgoing", "type": "true"},
{"name": "rReply", "type": "string"}
]
}, {
@@ -80,8 +80,8 @@
{"name": "deleted", "type": "boolean"},
{"name": "peerId", "type": "number"},
{"name": "fromId", "type": "number"},
- {"name": "canBeEdited", "type": "boolean"},
{"name": "unread", "type": "true"},
+ {"name": "is_outgoing", "type": "true"},
{"name": "rReply", "type": "string"}
]
}, {
@@ -99,121 +99,23 @@
"params": [
{"name": "offset", "type": "number"},
{"name": "length", "type": "number"},
- {"name": "unicode", "type": "string"},
- {"name": "nested", "type": "Array"}
+ {"name": "unicode", "type": "string"}
],
"type": "MessageEntity"
}, {
"predicate": "messageEntityHighlight",
"params": [
{"name": "offset", "type": "number"},
- {"name": "length", "type": "number"},
- {"name": "nested", "type": "Array"}
+ {"name": "length", "type": "number"}
],
"type": "MessageEntity"
}, {
"predicate": "messageEntityLinebreak",
"params": [
{"name": "offset", "type": "number"},
- {"name": "length", "type": "number"},
- {"name": "nested", "type": "Array"}
+ {"name": "length", "type": "number"}
],
"type": "MessageEntity"
-}, {
- "predicate": "messageEntityUnknown",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityMention",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityHashtag",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityBotCommand",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityUrl",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityEmail",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityBold",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityItalic",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityCode",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityPre",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityTextUrl",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityMentionName",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityPhone",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityCashtag",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityUnderline",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityStrike",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityBlockquote",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "messageEntityBankCard",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
-}, {
- "predicate": "inputMessageEntityMentionName",
- "params": [
- {"name": "nested", "type": "Array"}
- ]
}, {
"predicate": "user",
"params": [