diff options
author | Chris Poucet <poucet@google.com> | 2022-05-11 15:12:53 +0200 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2022-05-11 15:45:12 +0000 |
commit | 6c97fb0b8b3548967b36a2bab47d674d116d474c (patch) | |
tree | 423c7df05ebf2b2b34073f33600d0d4bde3065bc | |
parent | 66622fed3b40e9ed2cc27589b50386724eb6c1e4 (diff) |
Finish rendering a message before scrolling
Release-Notes: skip
Change-Id: Ibdc1c20dfa43904ceb4b760d3ebd9649f6e11d5b
(cherry picked from commit 541f5bb80fefa0246738b56345005719f9d7668a)
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts | 3 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts | 12 |
2 files changed, 8 insertions, 7 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts index 9f33990b48..c03121dadc 100644 --- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts +++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.ts @@ -306,7 +306,7 @@ export class GrMessagesList extends DIPolymerElement { super.disconnectedCallback(); } - scrollToMessage(messageID: string) { + async scrollToMessage(messageID: string) { const selector = `[data-message-id="${messageID}"]`; const el = this.shadowRoot!.querySelector(selector) as | GrMessage @@ -325,6 +325,7 @@ export class GrMessagesList extends DIPolymerElement { } el.message = {...el.message, expanded: true}; + await el.updateComplete; let top = el.offsetTop; for ( let offsetParent = el.offsetParent as HTMLElement | null; diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts index 30dd257e5f..b9cb616d29 100644 --- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts +++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.ts @@ -222,7 +222,7 @@ suite('gr-messages-list tests', () => { assert.isNotOk(query(element, '.showAllActivityToggle')); }); - test('scroll to message', () => { + test('scroll to message', async () => { const allMessageEls = getMessages(); for (const message of allMessageEls) { assertIsDefined(message.message); @@ -232,7 +232,7 @@ suite('gr-messages-list tests', () => { const scrollToStub = sinon.stub(window, 'scrollTo'); const highlightStub = sinon.stub(element, '_highlightEl'); - element.scrollToMessage('invalid'); + await element.scrollToMessage('invalid'); for (const message of allMessageEls) { assertIsDefined(message.message); @@ -243,7 +243,7 @@ suite('gr-messages-list tests', () => { } const messageID = messages[1].id; - element.scrollToMessage(messageID); + await element.scrollToMessage(messageID); assert.isTrue( queryAndAssert<GrMessage>(element, `[data-message-id="${messageID}"]`) .message?.expanded @@ -253,16 +253,16 @@ suite('gr-messages-list tests', () => { assert.isTrue(highlightStub.calledOnce); }); - test('scroll to message offscreen', () => { + test('scroll to message offscreen', async () => { const scrollToStub = sinon.stub(window, 'scrollTo'); const highlightStub = sinon.stub(element, '_highlightEl'); element.messages = generateRandomMessages(25); - flush(); + await element.updateComplete; assert.isFalse(scrollToStub.called); assert.isFalse(highlightStub.called); const messageID = element.messages[1].id; - element.scrollToMessage(messageID); + await element.scrollToMessage(messageID); assert.isTrue(scrollToStub.calledOnce); assert.isTrue(highlightStub.calledOnce); assert.isTrue( |