Skip to content

Commit a10cf67

Browse files
committed
refactor: Promote pause/resume to Portal.canvas.Base (#8793)
1 parent 298b07c commit a10cf67

3 files changed

Lines changed: 28 additions & 54 deletions

File tree

apps/portal/canvas/Base.mjs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class Base extends NeoBase {
2323
app: [
2424
'clearGraph',
2525
'initGraph',
26+
'pause',
27+
'resume',
2628
'setTheme',
2729
'updateSize'
2830
]
@@ -51,6 +53,11 @@ class Base extends NeoBase {
5153
* @member {OffscreenCanvasRenderingContext2D|null} context=null
5254
*/
5355
context = null
56+
/**
57+
* Flag to pause the render loop.
58+
* @member {Boolean} isPaused=false
59+
*/
60+
isPaused = false
5461

5562
/**
5663
* @member {Function} renderLoop=this.render.bind(this)
@@ -77,7 +84,8 @@ class Base extends NeoBase {
7784
me.context = null;
7885
me.canvasId = null;
7986
me.canvasSize = null;
80-
me.animationId = null
87+
me.animationId = null;
88+
me.isPaused = false
8189
}
8290

8391
/**
@@ -96,11 +104,30 @@ class Base extends NeoBase {
96104
me.waitForCanvas(canvasId, windowId, hasChange)
97105
}
98106

107+
/**
108+
* Pauses the simulation.
109+
*/
110+
pause() {
111+
this.isPaused = true
112+
}
113+
99114
/**
100115
* Abstract render method
101116
*/
102117
render() {}
103118

119+
/**
120+
* Resumes the simulation.
121+
*/
122+
resume() {
123+
let me = this;
124+
125+
if (me.isPaused) {
126+
me.isPaused = false;
127+
me.renderLoop()
128+
}
129+
}
130+
104131
/**
105132
* Exposed method for Remote Access to trigger the reactive config setter.
106133
* @param {String} value

apps/portal/canvas/HomeCanvas.mjs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ class HomeCanvas extends Base {
115115
*/
116116
remote: {
117117
app: [
118-
'pause',
119-
'resume',
120118
'updateMouseState'
121119
]
122120
},
@@ -137,11 +135,6 @@ class HomeCanvas extends Base {
137135
* @member {Object} gradients={}
138136
*/
139137
gradients = {}
140-
/**
141-
* Flag to pause the render loop.
142-
* @member {Boolean} isPaused=false
143-
*/
144-
isPaused = false
145138
/**
146139
* Tracked mouse position for interactive physics.
147140
* Initialize off-screen to prevent startup jitters.
@@ -192,7 +185,6 @@ class HomeCanvas extends Base {
192185
me.packetBuffer = null;
193186
me.shockwaves = [];
194187
me.sparks = [];
195-
me.isPaused = false;
196188
me.gradients = {};
197189
me.scale = 1
198190
}
@@ -713,25 +705,6 @@ class HomeCanvas extends Base {
713705
}
714706
}
715707

716-
/**
717-
* Pauses the simulation.
718-
*/
719-
pause() {
720-
this.isPaused = true
721-
}
722-
723-
/**
724-
* Resumes the simulation.
725-
*/
726-
resume() {
727-
let me = this;
728-
729-
if (me.isPaused) {
730-
me.isPaused = false;
731-
me.renderLoop()
732-
}
733-
}
734-
735708
/**
736709
* @member {Function} renderLoop=this.render.bind(this)
737710
*/

apps/portal/canvas/ServicesCanvas.mjs

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,6 @@ class ServicesCanvas extends Base {
116116
*/
117117
remote: {
118118
app: [
119-
'pause',
120-
'resume',
121119
'updateMouseState',
122120
'updateSize'
123121
]
@@ -153,11 +151,6 @@ class ServicesCanvas extends Base {
153151
* @member {Object} gradients={}
154152
*/
155153
gradients = {}
156-
/**
157-
* Flag to pause the render loop.
158-
* @member {Boolean} isPaused=false
159-
*/
160-
isPaused = false
161154
/**
162155
* Tracked mouse position for interactive physics.
163156
* Initialize off-screen to prevent startup jitters.
@@ -241,7 +234,6 @@ class ServicesCanvas extends Base {
241234
me.strataBuffer = null;
242235
me.particleBuffer = null;
243236
me.superHexes = [];
244-
me.isPaused = false;
245237
me.gradients = {};
246238
me.scale = 1
247239
}
@@ -927,24 +919,6 @@ class ServicesCanvas extends Base {
927919
}
928920
}
929921

930-
/**
931-
* Pauses the simulation.
932-
*/
933-
pause() {
934-
this.isPaused = true
935-
}
936-
937-
/**
938-
* Resumes the simulation.
939-
*/
940-
resume() {
941-
let me = this;
942-
if (me.isPaused) {
943-
me.isPaused = false;
944-
me.renderLoop()
945-
}
946-
}
947-
948922
/**
949923
* Main Render Loop.
950924
* Updates physics, projects geometry, and draws all layers.

0 commit comments

Comments
 (0)