diff --git a/src/SEQTA.ts b/src/SEQTA.ts index e5cdba23..32d3f176 100644 --- a/src/SEQTA.ts +++ b/src/SEQTA.ts @@ -12,8 +12,6 @@ import { MessageHandler } from './seqta/utils/listeners/MessageListener' import { SettingsState } from "./types/storage" import ShortcutLinks from './seqta/content/links.json' import Sortable from 'sortablejs' -//import StorageListener from './seqta/utils/listeners/StorageChanges' -import { appendBackgroundToUI } from './seqta/ui/ImageBackgrounds' import assessmentsicon from './seqta/icons/assessmentsIcon' import browser from 'webextension-polyfill' import coursesicon from './seqta/icons/coursesIcon' @@ -23,13 +21,13 @@ import iframeCSS from "./css/iframe.scss?raw" import { onError } from './seqta/utils/onError' import stringToHTML from './seqta/utils/stringToHTML' import { updateAllColors } from './seqta/ui/colors/Manager' -import { updateBgDurations } from './seqta/ui/Animation' import { SettingsResizer } from "./seqta/ui/SettingsResizer"; import documentLoadCSS from './css/documentload.scss?inline' import injectedCSS from './css/injected.scss?inline' import { injectYouTubeVideo } from './seqta/ui/VideoLoader' import { settingsState } from './seqta/utils/listeners/SettingsState' import { StorageChangeHandler } from './seqta/utils/listeners/StorageChanges' +import { AddBetterSEQTAElements } from './seqta/ui/AddBetterSEQTAElements' declare global { interface Window { @@ -40,10 +38,8 @@ declare global { export let isChrome = window.chrome let SettingsClicked = false export let MenuOptionsOpen = false -let UserInitalCode = '' let currentSelectedDate = new Date() let LessonInterval: any -export let DarkMode: boolean var MenuItemMutation = false var NonSEQTAPage = false @@ -90,7 +86,7 @@ function SetDisplayNone(ElementName: string) { return `li[data-key=${ElementName}]{display:var(--menuHidden) !important; transition: 1s;}` } -function animbkEnable(item: any) { +export function enableAnimatedBackground(item: any) { if (item.animatedbk) { CreateBackground() } else { @@ -640,21 +636,16 @@ function CheckNoticeTextColour(notice: any) { mutations_list.forEach(function (mutation) { mutation.addedNodes.forEach(function (added_node) { const node = added_node as HTMLElement - const result = browser.storage.local.get(['DarkMode']) - function open (result: any) { - DarkMode = result.DarkMode - if (node.classList.contains('notice')) { - var hex = node.style.cssText.split(' ')[1] - if (hex) { + if (node.classList.contains('notice')) { + var hex = node.style.cssText.split(' ')[1] + if (hex) { const hex1 = hex.slice(0,-1) var threshold = GetThresholdOfColor(hex1) - if (DarkMode && threshold < 100) { + if (settingsState.DarkMode && threshold < 100) { node.style.cssText = '--color: undefined;' } } - } } - result.then(open, onError) }) }) }) @@ -785,14 +776,14 @@ function main(storedSetting: SettingsState) { if (storedSetting.onoff) { console.log('[BetterSEQTA+] Enabled') - if (DarkMode) document.documentElement.classList.add('dark') + if (settingsState.DarkMode) document.documentElement.classList.add('dark') document.querySelector('.legacy-root')?.classList.add('hidden') new StorageChangeHandler(); new MessageHandler() - updateAllColors(storedSetting) + updateAllColors() loading() InjectCustomIcons() HideMenuItems() @@ -874,7 +865,7 @@ export function closeSettings() { ExtensionSettings!.classList.add('hide') } -function addExtensionSettings() { +export function addExtensionSettings() { const extensionPopup = document.createElement('div') extensionPopup.classList.add('outside-container', 'hide') extensionPopup.id = 'ExtensionPopup' @@ -1155,254 +1146,22 @@ function ReplaceMenuSVG(element: HTMLElement, svg: string) { item.insertBefore((newsvg as Node), item.firstChild) } -async function AddBetterSEQTAElements(toggle: any) { - if (toggle) { - // Creates Home menu button and appends it as the first child of the list - - const result = await browser.storage.local.get() - - animbkEnable(result) - updateBgDurations(result) - - DarkMode = result.DarkMode - if (DarkMode) { - document.documentElement.classList.add('dark') - } - - const container = document.getElementById('content')! - const div = document.createElement('div') - div.classList.add('titlebar') - container.append(div) - const NewButton = stringToHTML('
') - - const menu = document.getElementById('menu')! - const List = menu.firstChild! as HTMLElement - - if (NewButton.firstChild) { - List.insertBefore(NewButton.firstChild, List.firstChild) - } - - try { - // Fetch the response and wait for it - const response = await fetch(`${location.origin}/seqta/student/login`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json; charset=utf-8', - }, - body: JSON.stringify({ - mode: 'normal', - query: null, - redirect_url: location.origin, - }), - }) - - // Parse the JSON response and wait for it - const responseData = await response.json() - let info = responseData.payload - - // Manipulate the DOM as needed - const titlebar = document.getElementsByClassName('titlebar')[0] - const userInfo = stringToHTML( - /* html */` -${info.userDesc}
-${UserInitalCode}
-${info.userDesc}
+${info.meta.code} // ${info.meta.governmentID}
+