Skip to content

Commit 5f6b43d

Browse files
committed
Install event listener only once
1 parent 5d13a4d commit 5f6b43d

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

app/assets/javascripts/editor.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ $(document).on('turbo-migration:load', function(event) {
1616
if ($('#editor').isPresent() && CodeOceanEditor && event.detail.url.includes("/implement")) {
1717
CodeOceanEditor.initializeEverything();
1818
}
19+
});
1920

20-
function handleThemeChangeEvent(event) {
21-
if (CodeOceanEditor) {
22-
CodeOceanEditor.THEME = event.detail.currentTheme === 'dark' ? 'ace/theme/tomorrow_night' : 'ace/theme/tomorrow';
23-
document.dispatchEvent(new Event('theme:change:ace'));
24-
}
21+
function handleThemeChangeEvent(event) {
22+
if (CodeOceanEditor) {
23+
CodeOceanEditor.THEME = event.detail.currentTheme === 'dark' ? 'ace/theme/tomorrow_night' : 'ace/theme/tomorrow';
24+
document.dispatchEvent(new Event('theme:change:ace'));
2525
}
26+
}
2627

27-
$(document).on('theme:change', handleThemeChangeEvent.bind(this));
28-
});
28+
$(document).on('theme:change', handleThemeChangeEvent);

lib/assets/javascripts/color_mode_picker.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,9 @@ function showActiveTheme(theme, focus = false) {
7777
}
7878
}
7979

80-
$(document).on('turbo-migration:load', function() {
80+
$(document).on('turbo:load', function() {
8181
setTheme(getPreferredTheme())
8282

83-
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
84-
const storedTheme = getStoredTheme()
85-
if (storedTheme !== 'light' && storedTheme !== 'dark') {
86-
setTheme(getPreferredTheme())
87-
}
88-
})
89-
9083
showActiveTheme(getPreferredTheme())
9184

9285
document.querySelectorAll('[data-bs-theme-value]')
@@ -99,3 +92,10 @@ $(document).on('turbo-migration:load', function() {
9992
})
10093
})
10194
})
95+
96+
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
97+
const storedTheme = getStoredTheme()
98+
if (storedTheme !== 'light' && storedTheme !== 'dark') {
99+
setTheme(getPreferredTheme())
100+
}
101+
})

0 commit comments

Comments
 (0)