(function () { "use strict"; function startDarkModeObserver(settings) { var observer = new MutationObserver(function () { window.RedditTweaks.loadSettings().then(function (updated) { if (updated.darkMode === "auto") { if (updated.badgeLayout) { window.RedditTweaks.badgeTweak.updateColors(updated); } if (updated.cardLayout) { window.RedditTweaks.cardTweak.updateSettings(updated); } } }); }); observer.observe(document.body, { attributes: true, attributeFilter: ["class"], }); } function startPostObserver(settings) { var target = document.getElementById("siteTable") || document.querySelector('.content[role="main"]') || document.body; var observer = new MutationObserver(function (mutations) { var hasNewPosts = false; for (var i = 0; i < mutations.length; i++) { var added = mutations[i].addedNodes; for (var j = 0; j < added.length; j++) { var node = added[j]; if (node.nodeType !== Node.ELEMENT_NODE) continue; if ((node.matches && node.matches("div.thing.link")) || (node.querySelector && node.querySelector("div.thing.link"))) { hasNewPosts = true; break; } } if (hasNewPosts) break; } if (hasNewPosts) { window.RedditTweaks.loadSettings().then(function (updated) { if (settings.badgeLayout) { window.RedditTweaks.badgeTweak.processNewPosts(updated); } if (settings.cardLayout) { window.RedditTweaks.cardTweak.processNewPosts(updated); } }); } }); observer.observe(target, { childList: true, subtree: true }); } async function init() { try { var settings = await window.RedditTweaks.loadSettings(); console.log("RedditTweaks init:", { enabled: settings.enabled, badgeLayout: settings.badgeLayout, cardLayout: settings.cardLayout }); if (!settings.enabled) return; if (settings.badgeLayout) { document.documentElement.classList.add("rt-badges-enabled"); window.RedditTweaks.badgeTweak.apply(settings); } if (settings.fontOverride) { document.documentElement.classList.add("rt-fonts-enabled"); } if (settings.cardLayout) { window.RedditTweaks.cardTweak.apply(settings); } if (settings.badgeLayout || settings.cardLayout) { startPostObserver(settings); startDarkModeObserver(settings); } browser.storage.onChanged.addListener(function (changes) { if ( (changes.enabled && changes.enabled.newValue !== changes.enabled.oldValue) || (changes.badgeLayout && changes.badgeLayout.newValue !== changes.badgeLayout.oldValue) || (changes.fontOverride && changes.fontOverride.newValue !== changes.fontOverride.oldValue) || (changes.cardLayout && changes.cardLayout.newValue !== changes.cardLayout.oldValue) ) { location.reload(); return; } window.RedditTweaks.loadSettings().then(function (updated) { if (updated.badgeLayout) { window.RedditTweaks.badgeTweak.updateColors(updated); } if (updated.cardLayout) { window.RedditTweaks.cardTweak.updateSettings(updated); } }); }); } catch (err) { console.error("RedditTweaks init failed:", err); } } init(); })();