From e1467782b07a1f7e886c5ac7b07dcddb563c70a6 Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Sun, 24 Mar 2024 09:45:27 +1100 Subject: [PATCH] improve million application --- manifest.json | 9 --------- package.json | 1 - src/SEQTA.ts | 10 +++------- src/interface/SettingsPage.tsx | 22 ++++++++++++---------- src/interface/main.tsx | 3 --- src/interface/pages/Shortcuts.tsx | 4 +++- src/seqta/ui/ImageBackgrounds.ts | 3 ++- src/seqta/ui/background/background.html | 2 +- src/seqta/ui/background/background.ts | 19 ++++++++++++------- vite.config.ts | 7 ++++++- 10 files changed, 39 insertions(+), 41 deletions(-) diff --git a/manifest.json b/manifest.json index 033a1a4a..cd5db772 100644 --- a/manifest.json +++ b/manifest.json @@ -28,14 +28,5 @@ "js": ["src/SEQTA.ts"], "run_at": "document_start" } - ], - "web_accessible_resources": [ - { - "resources": [ - "public/*", - "src/*" - ], - "matches": ["*://*/*"] - } ] } \ No newline at end of file diff --git a/package.json b/package.json index 21cd9a61..7e9c1f93 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "scripts": { "dev": "vite dev", "build": "vite build", - "package": "rimraf ./dist/*.map && 7z a -tzip extension.zip ./dist/*" }, "targets": { diff --git a/src/SEQTA.ts b/src/SEQTA.ts index fe27f0ba..a9a1aa73 100644 --- a/src/SEQTA.ts +++ b/src/SEQTA.ts @@ -22,7 +22,7 @@ import browser from 'webextension-polyfill' import coursesicon from './seqta/icons/coursesIcon' import { delay } from "./seqta/utils/delay" import { enableCurrentTheme } from './seqta/ui/Themes' -import iframeCSSURL from "./css/iframe.scss?raw" +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' @@ -30,6 +30,7 @@ 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 popup from './interface/index.html?url' declare global { interface Window { @@ -44,7 +45,6 @@ let UserInitalCode = '' let currentSelectedDate = new Date() let LessonInterval: any export let DarkMode: boolean -let iframeCSS: string var MenuItemMutation = false var NonSEQTAPage = false @@ -430,10 +430,6 @@ function removeThemeTagsFromNotices () { } async function updateIframesWithDarkMode(): Promise { - if (iframeCSS === undefined) { - //iframeCSS = await (await fetch(iframeCSSURL)).text() - iframeCSS = iframeCSSURL - } // Load the CSS file to overwrite iFrame default CSS const cssLink = document.createElement('style') @@ -913,7 +909,7 @@ function addExtensionSettings() { document.body.appendChild(extensionPopup) const extensionIframe: HTMLIFrameElement = document.createElement('iframe') - extensionIframe.src = `${browser.runtime.getURL('src/interface/index.html')}#settings/embedded` + extensionIframe.src = `${browser.runtime.getURL(popup)}#settings/embedded` extensionIframe.id = 'ExtensionIframe' extensionIframe.setAttribute('allowTransparency', 'true') extensionIframe.setAttribute('excludeDarkCheck', 'true') diff --git a/src/interface/SettingsPage.tsx b/src/interface/SettingsPage.tsx index 30342b75..73712602 100644 --- a/src/interface/SettingsPage.tsx +++ b/src/interface/SettingsPage.tsx @@ -2,12 +2,12 @@ import TabbedContainer from './components/TabbedContainer'; import Settings from './pages/Settings'; import logo from './assets/betterseqta-dark-full.png'; import logoDark from './assets/betterseqta-light-full.png'; +import { SettingsContextProvider } from './SettingsContext'; import Shortcuts from './pages/Shortcuts'; import Picker from './components/Picker'; import Themes from './pages/Themes'; import browser from 'webextension-polyfill'; -import { memo } from 'react'; interface SettingsPage { standalone: boolean; @@ -30,16 +30,18 @@ const SettingsPage = ({ standalone }: SettingsPage) => { ]; return ( -
-
- - - + +
+
+ + + +
+ +
- - -
+ ); }; -export default memo(SettingsPage); \ No newline at end of file +export default SettingsPage; \ No newline at end of file diff --git a/src/interface/main.tsx b/src/interface/main.tsx index bdbda5b7..450237c9 100644 --- a/src/interface/main.tsx +++ b/src/interface/main.tsx @@ -2,7 +2,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import { HashRouter, Routes, Route } from 'react-router-dom'; import './index.css'; -import { SettingsContextProvider } from './SettingsContext.js'; import SettingsPage from './SettingsPage.js'; import browser from 'webextension-polyfill'; import font from '../resources/fonts/IconFamily.woff' @@ -36,13 +35,11 @@ const root = ReactDOM.createRoot(document.getElementById('ExtensionPopup')!); root.render( - } /> } /> - , ); \ No newline at end of file diff --git a/src/interface/pages/Shortcuts.tsx b/src/interface/pages/Shortcuts.tsx index 8e159b6b..56901470 100644 --- a/src/interface/pages/Shortcuts.tsx +++ b/src/interface/pages/Shortcuts.tsx @@ -16,7 +16,7 @@ function formatUrl (inputUrl: string) { } } -export default function Shortcuts() { +function Shortcuts() { const { settingsState, setSettingsState } = useSettingsContext(); const switchChange = (shortcutName: string, isOn: boolean): void => { @@ -153,3 +153,5 @@ export default function Shortcuts() {
); } + +export default Shortcuts; \ No newline at end of file diff --git a/src/seqta/ui/ImageBackgrounds.ts b/src/seqta/ui/ImageBackgrounds.ts index 218ede48..62acafcb 100644 --- a/src/seqta/ui/ImageBackgrounds.ts +++ b/src/seqta/ui/ImageBackgrounds.ts @@ -1,5 +1,6 @@ import browser from 'webextension-polyfill'; import { SettingsState } from '../../types/storage'; +import backgroundURL from './background/background.html?url' export async function appendBackgroundToUI() { const settings = await browser.storage.local.get() as SettingsState; @@ -13,6 +14,6 @@ export async function appendBackgroundToUI() { background.id = 'background'; background.classList.add('imageBackground'); background.setAttribute('excludeDarkCheck', 'true'); - background.src = browser.runtime.getURL('src/seqta/ui/background/background.html'); + background.src = browser.runtime.getURL(backgroundURL); parent!.appendChild(background); } diff --git a/src/seqta/ui/background/background.html b/src/seqta/ui/background/background.html index d8d4fda4..c78dcf96 100644 --- a/src/seqta/ui/background/background.html +++ b/src/seqta/ui/background/background.html @@ -24,6 +24,6 @@
- + diff --git a/src/seqta/ui/background/background.ts b/src/seqta/ui/background/background.ts index 3df9be91..1208c662 100644 --- a/src/seqta/ui/background/background.ts +++ b/src/seqta/ui/background/background.ts @@ -99,14 +99,19 @@ const updateBackground = async (): Promise => { // Main function to run on page load const main = async (): Promise => { await updateBackground(); - + // Listen for changes to local storage - window.addEventListener('storage', async (event) => { - if (event.key === 'selectedBackground') { - await updateBackground(); - } - }); + try { + window.addEventListener('storage', async (event) => { + if (event.key === 'selectedBackground') { + await updateBackground(); + } + }); + } catch (error) { + console.log('An error occurred:', error); + } }; +main() // Run the main function when the document is ready -document.addEventListener('DOMContentLoaded', main); +//document.addEventListener('DOMContentLoaded', main); diff --git a/vite.config.ts b/vite.config.ts index ecfd5357..611a731e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -8,7 +8,12 @@ import { sentryVitePlugin } from "@sentry/vite-plugin"; export default defineConfig({ plugins: [ react(), - million.vite({}), + million.vite({ + auto: { + threshold: 0.005, // default: 0.1, + skip: [], // default [] + } + }), crx({ manifest }), sentryVitePlugin({ org: process.env.SENTRY_ORG,