Skip to content

Commit de9ecfb

Browse files
committed
fix: Prevent duplicate TimelineCanvas listeners by moving attachment to onConstructed (#8549)
1 parent eb8ffda commit de9ecfb

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

apps/portal/view/news/tickets/TimelineCanvas.mjs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,28 @@ class TimelineCanvas extends Canvas {
3939
*/
4040
lastRecords = null
4141

42+
/**
43+
*
44+
*/
45+
onConstructed() {
46+
super.onConstructed();
47+
48+
let me = this,
49+
store = me.getStateProvider().getStore('sections');
50+
51+
store.on('load', me.onTimelineDataLoad, me)
52+
}
53+
4254
/**
4355
* Triggered after the offscreenRegistered config got changed
4456
* @param {Boolean} value
4557
* @param {Boolean} oldValue
4658
* @protected
4759
*/
4860
async afterSetOffscreenRegistered(value, oldValue) {
49-
if (value) {
50-
let me = this;
61+
let me = this;
5162

63+
if (value) {
5264
// Ensure the logic is loaded in the worker
5365
await Portal.canvas.Helper.importTicketCanvas();
5466

@@ -66,14 +78,14 @@ class TimelineCanvas extends Canvas {
6678
// Initial sizing
6779
await me.updateSize();
6880

69-
// Hook into state provider to listen for timeline updates
81+
// Initial load check
7082
let store = me.getStateProvider().getStore('sections');
71-
store.on('load', me.onTimelineDataLoad, me);
7283

73-
// Initial load check
7484
if (store.getCount() > 0) {
7585
me.onTimelineDataLoad(store.items)
7686
}
87+
} else {
88+
me.isCanvasReady = false
7789
}
7890
}
7991

0 commit comments

Comments
 (0)