diff options
author | Klaus <klaus@jsxc.org> | 2021-12-28 18:33:10 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-28 18:33:10 +0300 |
commit | 2610a478e59a23afa060aca94d3134a845eb24a4 (patch) | |
tree | 8e9937dbe1de62f8dadd88d2413cd17dd64e8d9b | |
parent | d6517b1253db24071f32c6e4579ef17aa6212f6f (diff) | |
parent | 78c0dff91d304beb8e94e7d3d55a9938faa08d82 (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.ts | 2 | ||||
-rw-r--r-- | src/plugins/VersionPlugin.ts | 2 | ||||
-rw-r--r-- | src/plugins/mam/Plugin.ts | 8 | ||||
-rw-r--r-- | src/plugins/omemo/Plugin.ts | 2 | ||||
-rw-r--r-- | src/ui/ChatWindow.ts | 2 |
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); } |