Greasy Fork is available in English.

Toggle Switch For Reddit Post Insights

Add toggle for post insights

// ==UserScript==
// @name         Toggle Switch For Reddit Post Insights
// @namespace    http://tampermonkey.net/
// @version      2024-08-18
// @description  Add toggle for post insights
// @author       Hared
// @match        htps://*.reddit.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=reddit.com
// @run-at       document-end
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

     function toggleSwitch() {
        let el = document.getElementsByTagName("div");
        for(let i = 0; i < el.length; i++) {
            if(el[i].hasAttribute("slot")){
                if(el[i].getAttribute("slot") == "post-insights-panel") {
                    let pi = el[i].getElementsByClassName("font-semibold text-neutral-content-strong");
                    let sw = document.createElement("faceplate-switch-input");
                    sw.setAttribute("class", "toggle-insights")
                    sw.setAttribute("faceplate-validity", "valid");
                    sw.setAttribute("role", "checkbox");
                    sw.setAttribute("tabindex", "0");
                    sw.setAttribute("aria-disabled", "false");
                    sw.setAttribute("style", "float: right;");
                    pi[0].insertBefore(sw, pi[0].firstChild);
                    sw.addEventListener('change', function() {
                        let pe = pi[0].parentElement;
                        if (sw.getAttribute('aria-checked') === 'true') {
                            pi[0].childNodes[pi[0].childNodes.length-2].style.display = 'none';
                            pe.childNodes[pe.childNodes.length-2].style.display = 'none';
                        } else {
                            pi[0].childNodes[pi[0].childNodes.length-2].style.display = '';
                            pe.childNodes[pe.childNodes.length-2].style.display = '';
                        }
                    });
                    sw.addEventListener('click', function() {
                        let checked = sw.getAttribute('aria-checked') === 'true';
                        sw.setAttribute('aria-checked', !checked);
                        sw.dispatchEvent(new Event('change'));
                    });
                    let checked = sw.getAttribute('aria-checked') === 'true';
                        sw.setAttribute('aria-checked', !checked);
                        sw.dispatchEvent(new Event('change'));
                }
            }
        }
    }
    toggleSwitch();


setInterval(function()
{
    let ex = document.getElementsByClassName("toggle-insights");
    if(ex.length == 0)
        toggleSwitch();
}, 500);
})();