Make Google Tasks Great Again

Shows an alternative interface for Google Tasks, focused on a single list, keeps the last edited task open when switching tabs

// ==UserScript==
// @name         Make Google Tasks Great Again
// @version      0.14.1
// @description  Shows an alternative interface for Google Tasks, focused on a single list, keeps the last edited task open when switching tabs
// @author       CennoxX
// @namespace    https://greasyfork.org/users/21515
// @homepage     https://github.com/CennoxX/userscripts
// @supportURL   https://github.com/CennoxX/userscripts/issues/new?title=[Make%20Google%20Tasks%20Great%20Again]%20
// @match        https://tasks.google.com/*
// @match        https://calendar.google.com/calendar/u/0/r/tasks*
// @icon         https://ssl.gstatic.com//tasks/00d84c8baaaf6dd434993369f1441e47/favicon.ico
// @grant        GM.addStyle
// @license      MIT
// @noframes
// ==/UserScript==
/* jshint esversion: 11 */
(function() {
    "use strict";
    if (window.location.href == "https://tasks.google.com/tasks/" || window.location.href == "https://tasks.google.com/tasks/?sa=0") {
        window.location.replace("https://tasks.google.com/embed/?origin=https://mail.google.com");
    }
    GM.addStyle("html-blob {height: 100%; display: inline-block;}");
    GM.addStyle(".editing {max-height: initial!important;}");
    GM.addStyle("body > div { width: 650px!important; position: absolute!important; left: 50%!important; transform: translateX(-50%)!important;}");
    GM.addStyle("@media (max-width: 650px) { body > div { width: 100%!important; left: 0!important; transform: none!important;} }");

    var lastEditedTask;
    var intervalId = setInterval(()=>{
        if (!document.body)
            return;
        if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches)
            document.body.classList.add("PNKKi");
        setInterval(()=>{
            if (document.querySelectorAll("c-wiz").length != 1){
                location.reload();
            }
            if (lastEditedTask){
                lastEditedTask.classList.add("editing");
            }
            var editedTask = document.querySelector("[data-is-editing='true']");
            if (editedTask){
                editedTask.classList.add("editing");
                lastEditedTask?.classList?.remove("editing");
                lastEditedTask = editedTask;
            }
        },50);
        clearInterval(intervalId);
    },100);
})();