Here is a fixed version that opens user profile menu manually as a workaround:
(function() {
'use strict';
const userDrawerBtn = document.getElementById('expand-user-drawer-button');
userDrawerBtn.click();
const applyPreferredTheme = () => {
const getPreferredTheme = () => window?.matchMedia?.('(prefers-color-scheme:dark)')?.matches ? 'dark' : 'light';
const darkModeToggle = document.getElementsByName("darkmode-switch-name")[0];
const getRedditTheme = () => darkModeToggle.attributes["aria-checked"] ? 'dark' : 'light';
if (getRedditTheme() != getPreferredTheme()) {
darkModeToggle.click();
}
userDrawerBtn.click();
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change',applyPreferredTheme);
// The above event listener is probably not applied on page load, so we do that manually once. Also we need to wait a bit since reddit seems to set the theme manually after a bit.
setTimeout(applyPreferredTheme, 1000); //Two seconds will elapse and Code will execute.
})();
Here is a fixed version that opens user profile menu manually as a workaround: