From 074c2ff4bb8efcf50c1d5040ee02bee1d8e2440b Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Fri, 6 Jun 2025 10:16:42 +1000 Subject: [PATCH] feat: performance and visual improvements --- src/plugins/built-in/assessmentsOverview/index.ts | 6 +++--- src/plugins/built-in/assessmentsOverview/styles.css | 4 ++-- src/plugins/core/createAPI.ts | 13 +++++++------ src/plugins/core/manager.ts | 7 +++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/plugins/built-in/assessmentsOverview/index.ts b/src/plugins/built-in/assessmentsOverview/index.ts index 71746fcc..33888ae7 100644 --- a/src/plugins/built-in/assessmentsOverview/index.ts +++ b/src/plugins/built-in/assessmentsOverview/index.ts @@ -5,8 +5,8 @@ import { renderSkeletonLoader, renderErrorState } from './ui'; import styles from './styles.css?inline'; import { delay } from '@/seqta/utils/delay'; -const gridViewPlugin: Plugin<{}> = { - id: 'assessments-grid-view', +const assessmentsOverviewPlugin: Plugin<{}> = { + id: 'assessments-overview', name: 'Assessments Overview', description: 'Adds an overview option to the assessments page that organizes assessments by status', version: '1.0.0', @@ -69,4 +69,4 @@ const gridViewPlugin: Plugin<{}> = { }, }; -export default gridViewPlugin; \ No newline at end of file +export default assessmentsOverviewPlugin; \ No newline at end of file diff --git a/src/plugins/built-in/assessmentsOverview/styles.css b/src/plugins/built-in/assessmentsOverview/styles.css index fe97e42f..b6e7faa0 100644 --- a/src/plugins/built-in/assessmentsOverview/styles.css +++ b/src/plugins/built-in/assessmentsOverview/styles.css @@ -34,7 +34,7 @@ } .filter-select { - background: #ffffff; + background: #ffffff !important; border: 2px solid #e2e8f0; border-radius: 8px; color: #1a1a1a; @@ -60,7 +60,7 @@ /* Dark mode dropdowns */ .dark .filter-select { - background: var(--background-primary); + background: var(--background-primary) !important; border-color: var(--background-secondary); color: var(--text-primary); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); diff --git a/src/plugins/core/createAPI.ts b/src/plugins/core/createAPI.ts index 0877d2ab..64988f95 100644 --- a/src/plugins/core/createAPI.ts +++ b/src/plugins/core/createAPI.ts @@ -11,6 +11,7 @@ import type { import { eventManager } from "@/seqta/utils/listeners/EventManager"; import ReactFiber from "@/seqta/utils/ReactFiber"; import browser from "webextension-polyfill"; +import { settingsState } from "@/seqta/utils/listeners/SettingsState"; function createSEQTAAPI(): SEQTAAPI { return { @@ -115,16 +116,16 @@ function createSettingsAPI( // Fill with defaults first for (const key in plugin.settings) { - settingsWithMeta[key] = plugin.settings[key].default; + if (plugin.settings[key].type !== 'component' && plugin.settings[key].type !== 'button') { + settingsWithMeta[key] = plugin.settings[key].default; + } } // Load stored settings and override defaults const loaded = (async () => { try { - const stored = await browser.storage.local.get(storageKey); - const storedSettings = stored[storageKey] as Partial< - Record - >; + const allSettings = settingsState.getAll() as unknown as Record; + const storedSettings = allSettings[storageKey] as Partial>; if (storedSettings) { for (const key in storedSettings) { if (key in settingsWithMeta) { @@ -205,7 +206,7 @@ function createStorageAPI( // Load all existing storage values for this plugin const loadStoragePromise = (async () => { try { - const allStorage = await browser.storage.local.get(null); + const allStorage = settingsState.getAll(); // Filter for this plugin's storage keys and populate cache Object.entries(allStorage).forEach(([key, value]) => { diff --git a/src/plugins/core/manager.ts b/src/plugins/core/manager.ts index 86243862..b98cfd73 100644 --- a/src/plugins/core/manager.ts +++ b/src/plugins/core/manager.ts @@ -11,6 +11,7 @@ import type { } from "./types"; import { createPluginAPI } from "./createAPI"; import browser from "webextension-polyfill"; +import { settingsState } from "@/seqta/utils/listeners/SettingsState"; interface PluginSettingsStorage { enabled?: boolean; @@ -150,10 +151,8 @@ export class PluginManager { // Check if plugin is enabled before starting if (plugin.disableToggle) { - const settings = await browser.storage.local.get( - `plugin.${pluginId}.settings`, - ); - const pluginSettings = settings[`plugin.${pluginId}.settings`] as + const all = settingsState.getAll() as unknown as Record; + const pluginSettings = all[`plugin.${pluginId}.settings`] as | PluginSettingsStorage | undefined; const enabled =