mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
fix: sidebar layout not being applied on pageload #249
This commit is contained in:
+20
-5
@@ -465,8 +465,6 @@ export function tryLoad() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function ReplaceMenuSVG(element: HTMLElement, svg: string) {
|
function ReplaceMenuSVG(element: HTMLElement, svg: string) {
|
||||||
let item = element.firstChild as HTMLElement
|
let item = element.firstChild as HTMLElement
|
||||||
item!.firstChild!.remove()
|
item!.firstChild!.remove()
|
||||||
@@ -477,9 +475,10 @@ function ReplaceMenuSVG(element: HTMLElement, svg: string) {
|
|||||||
item.insertBefore(newsvg as Node, item.firstChild)
|
item.insertBefore(newsvg as Node, item.firstChild)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const processedSymbol = Symbol('processed')
|
||||||
|
|
||||||
export async function ObserveMenuItemPosition() {
|
export async function ObserveMenuItemPosition() {
|
||||||
await waitForElm("#menu > ul > li")
|
await waitForElm("#menu > ul > li")
|
||||||
await delay(100)
|
|
||||||
|
|
||||||
eventManager.register(
|
eventManager.register(
|
||||||
"menuList",
|
"menuList",
|
||||||
@@ -488,6 +487,19 @@ export async function ObserveMenuItemPosition() {
|
|||||||
},
|
},
|
||||||
(element: Element) => {
|
(element: Element) => {
|
||||||
const node = element as HTMLElement
|
const node = element as HTMLElement
|
||||||
|
|
||||||
|
// Only process top-level menu items and skip everything else
|
||||||
|
if (!node.classList.contains('item') ||
|
||||||
|
node.nodeName !== 'LI' ||
|
||||||
|
node.parentElement?.parentElement?.id !== 'menu') {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Early exit if already processed
|
||||||
|
if ((element as any)[processedSymbol]) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (!node?.dataset?.checked && !MenuOptionsOpen) {
|
if (!node?.dataset?.checked && !MenuOptionsOpen) {
|
||||||
const key =
|
const key =
|
||||||
MenuitemSVGKey[node?.dataset?.key! as keyof typeof MenuitemSVGKey]
|
MenuitemSVGKey[node?.dataset?.key! as keyof typeof MenuitemSVGKey]
|
||||||
@@ -511,7 +523,9 @@ export async function ObserveMenuItemPosition() {
|
|||||||
label.replaceChild(span, textNode)
|
label.replaceChild(span, textNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ChangeMenuItemPositions(settingsState.menuorder)
|
ChangeMenuItemPositions(settingsState.menuorder);
|
||||||
|
|
||||||
|
(element as any)[processedSymbol] = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -584,9 +598,10 @@ export function init() {
|
|||||||
|
|
||||||
if (settingsState.onoff) {
|
if (settingsState.onoff) {
|
||||||
console.info("[BetterSEQTA+] Enabled")
|
console.info("[BetterSEQTA+] Enabled")
|
||||||
if (settingsState.DarkMode) document.documentElement.classList.add("dark")
|
if (settingsState.DarkMode) document.documentElement.classList.add("dark");
|
||||||
|
|
||||||
document.querySelector(".legacy-root")?.classList.add("hidden")
|
document.querySelector(".legacy-root")?.classList.add("hidden")
|
||||||
|
ObserveMenuItemPosition();
|
||||||
|
|
||||||
new StorageChangeHandler()
|
new StorageChangeHandler()
|
||||||
new MessageHandler()
|
new MessageHandler()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
import type { SettingsState } from "@/types/storage"
|
||||||
import { settingsState } from "../listeners/SettingsState"
|
import { settingsState } from "../listeners/SettingsState"
|
||||||
import stringToHTML from "../stringToHTML"
|
import stringToHTML from "../stringToHTML"
|
||||||
import Sortable from "sortablejs"
|
import Sortable from "sortablejs"
|
||||||
@@ -212,22 +213,24 @@ export function OpenMenuOptions() {
|
|||||||
}
|
}
|
||||||
saveNewOrder(sortable)
|
saveNewOrder(sortable)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveNewOrder(sortable: any) {
|
|
||||||
|
|
||||||
|
function saveNewOrder(sortable: any) {
|
||||||
var order = sortable.toArray()
|
var order = sortable.toArray()
|
||||||
settingsState.menuorder = order
|
settingsState.menuorder = order
|
||||||
}
|
}
|
||||||
|
|
||||||
function cloneAttributes(target: any, source: any) {
|
function cloneAttributes(target: any, source: any) {
|
||||||
[...source.attributes].forEach((attr) => {
|
[...source.attributes].forEach((attr) => {
|
||||||
target.setAttribute(attr.nodeName, attr.nodeValue)
|
target.setAttribute(attr.nodeName, attr.nodeValue)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ChangeMenuItemPositions(storage: any) {
|
|
||||||
let menuorder = storage
|
|
||||||
|
|
||||||
|
|
||||||
|
export function ChangeMenuItemPositions(menuorder: SettingsState["menuorder"]) {
|
||||||
var menuList = document.querySelector("#menu")!.firstChild!.childNodes
|
var menuList = document.querySelector("#menu")!.firstChild!.childNodes
|
||||||
|
|
||||||
let listorder = []
|
let listorder = []
|
||||||
@@ -253,4 +256,4 @@ export function OpenMenuOptions() {
|
|||||||
listItemsDOM!.appendChild(element)
|
listItemsDOM!.appendChild(element)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ import { settingsState } from "./listeners/SettingsState"
|
|||||||
import { animate, stagger } from "motion"
|
import { animate, stagger } from "motion"
|
||||||
import stringToHTML from "./stringToHTML"
|
import stringToHTML from "./stringToHTML"
|
||||||
import browser from "webextension-polyfill"
|
import browser from "webextension-polyfill"
|
||||||
import kofi from "@/resources/kofi.png"
|
import kofi from "@/resources/kofi.png?base64"
|
||||||
|
|
||||||
export async function DeleteWhatsNew() {
|
export async function DeleteWhatsNew() {
|
||||||
const bkelement = document.getElementById("whatsnewbk")
|
const bkelement = document.getElementById("whatsnewbk")
|
||||||
|
|||||||
@@ -108,7 +108,6 @@ export class MessageHandler {
|
|||||||
editSidebar() {
|
editSidebar() {
|
||||||
if (!MenuOptionsOpen) {
|
if (!MenuOptionsOpen) {
|
||||||
OpenMenuOptions();
|
OpenMenuOptions();
|
||||||
closeExtensionPopup();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user