Skip to content

Commit 0c477e7

Browse files
committed
fix: prevent double screen recording permission dialog by ensuring single event handler on record button
1 parent 805327e commit 0c477e7

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

js/activity.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1976,15 +1976,19 @@ class Activity {
19761976
* Handles the recording process.
19771977
*/
19781978
function recording() {
1979-
start.addEventListener("click", async function handler() {
1979+
// Remove any previous handler to avoid multiple triggers
1980+
if (start._recordHandler) {
1981+
start.removeEventListener("click", start._recordHandler);
1982+
}
1983+
const handler = async function handler() {
19801984
try {
19811985
const stream = await recordScreen();
19821986
const mimeType = "video/webm";
19831987
mediaRecorder = createRecorder(stream, mimeType);
19841988
if (flag == 1) {
1985-
this.removeEventListener("click", handler);
1989+
start.removeEventListener("click", handler);
19861990
// Add stop handler
1987-
start.addEventListener("click", function stopHandler() {
1991+
const stopHandler = function stopHandler() {
19881992
if (mediaRecorder && mediaRecorder.state === "recording") {
19891993
mediaRecorder.stop();
19901994
mediaRecorder = new MediaRecorder(stream);
@@ -2000,10 +2004,11 @@ class Activity {
20002004
.forEach(track => track.stop());
20012005
}
20022006
}
2003-
this.removeEventListener("click", stopHandler);
2007+
start.removeEventListener("click", stopHandler);
20042008
// Re-enable recording for next time
20052009
recording();
2006-
});
2010+
};
2011+
start.addEventListener("click", stopHandler);
20072012
}
20082013
recInside.setAttribute("fill", "red");
20092014
} catch (error) {
@@ -2013,7 +2018,9 @@ class Activity {
20132018
// Re-enable recording button
20142019
recording();
20152020
}
2016-
});
2021+
};
2022+
start.addEventListener("click", handler);
2023+
start._recordHandler = handler;
20172024
}
20182025

20192026
// Start recording process if not already executing

0 commit comments

Comments
 (0)