Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jsxc/jsxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus <klaus@jsxc.org>2021-12-28 18:33:10 +0300
committerGitHub <noreply@github.com>2021-12-28 18:33:10 +0300
commit2610a478e59a23afa060aca94d3134a845eb24a4 (patch)
tree8e9937dbe1de62f8dadd88d2413cd17dd64e8d9b
parentd6517b1253db24071f32c6e4579ef17aa6212f6f (diff)
parent78c0dff91d304beb8e94e7d3d55a9938faa08d82 (diff)
Merge pull request #1060 from jsxc/mam_gui_improvements
feat: show "Load Button" if message area is empty
-rw-r--r--src/connection/services/Vcard.ts2
-rw-r--r--src/plugins/VersionPlugin.ts2
-rw-r--r--src/plugins/mam/Plugin.ts8
-rw-r--r--src/plugins/omemo/Plugin.ts2
-rw-r--r--src/ui/ChatWindow.ts2
5 files changed, 10 insertions, 6 deletions
diff --git a/src/connection/services/Vcard.ts b/src/connection/services/Vcard.ts
index 041f6a44..c113cea5 100644
--- a/src/connection/services/Vcard.ts
+++ b/src/connection/services/Vcard.ts
@@ -81,7 +81,7 @@ export default class Vcard extends AbstractService {
private parseVcardChildren = (stanza: JQuery<XMLDocument>): vCardData => {
let self = this;
let data: vCardData = {};
- let children = stanza.children();
+ let children: JQuery<XMLDocument> = stanza.children() as any;
children.each(function () {
let item = $(this);
diff --git a/src/plugins/VersionPlugin.ts b/src/plugins/VersionPlugin.ts
index 9ecbb534..25a80914 100644
--- a/src/plugins/VersionPlugin.ts
+++ b/src/plugins/VersionPlugin.ts
@@ -106,7 +106,7 @@ export default class VersionPlugin extends AbstractPlugin {
OSName = 'Android';
}
- if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
+ if (/iPad|iPhone|iPod/.test(userAgent) && !(<any>window).MSStream) {
OSName = 'iOS';
}
}
diff --git a/src/plugins/mam/Plugin.ts b/src/plugins/mam/Plugin.ts
index 2f4dbfc3..fe6c7737 100644
--- a/src/plugins/mam/Plugin.ts
+++ b/src/plugins/mam/Plugin.ts
@@ -150,14 +150,18 @@ export default class MessageArchiveManagementPlugin extends AbstractPlugin {
element.append(spanElement);
messageAreaElement.on('scroll', function () {
- if (messageAreaElement.height() + this.scrollTop < 42 && !archive.isExhausted()) {
+ const topDelta = 10;
+ const scrollTop = Math.abs(this.scrollTop);
+ const isAtTop = this.clientHeight + scrollTop + topDelta >= this.scrollHeight;
+
+ if (isAtTop && !archive.isExhausted()) {
element.addClass(classNameShow);
} else {
element.removeClass(classNameShow);
}
});
- messageAreaElement.trigger('scroll');
+ setTimeout(() => messageAreaElement.trigger('scroll'), 1000);
if (!archive.isExhausted()) {
chatWindowElement.addClass(classNameMamEnable);
diff --git a/src/plugins/omemo/Plugin.ts b/src/plugins/omemo/Plugin.ts
index 4964a76d..c84a9533 100644
--- a/src/plugins/omemo/Plugin.ts
+++ b/src/plugins/omemo/Plugin.ts
@@ -119,7 +119,7 @@ export default class OMEMOPlugin extends EncryptionPlugin {
let stanza = await pepService.retrieveItems(NS_DEVICELIST, contact.getJid().bare);
this.onDeviceListUpdate(stanza);
- } catch(err) {
+ } catch (err) {
this.pluginAPI.Log.debug('Can not retrieve device list', err);
return false;
diff --git a/src/ui/ChatWindow.ts b/src/ui/ChatWindow.ts
index a86763ce..ce03e97e 100644
--- a/src/ui/ChatWindow.ts
+++ b/src/ui/ChatWindow.ts
@@ -162,7 +162,7 @@ export default class ChatWindow {
this.getTranscript().clear();
- this.element.find('.jsxc-message-area').empty();
+ this.element.find('.jsxc-message-area').empty().trigger('scroll');
this.getAccount().triggerChatWindowClearedHook(this, this.contact);
}