mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-05 19:24:39 +00:00
feat: add default enabled toggle
This commit is contained in:
@@ -58,6 +58,7 @@ const globalSearchPlugin: Plugin<typeof settings> = {
|
|||||||
version: "1.0.0",
|
version: "1.0.0",
|
||||||
settings: settingsInstance.settings,
|
settings: settingsInstance.settings,
|
||||||
disableToggle: true,
|
disableToggle: true,
|
||||||
|
defaultEnabled: false,
|
||||||
styles: styles,
|
styles: styles,
|
||||||
|
|
||||||
run: async (api) => {
|
run: async (api) => {
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ export class PluginManager {
|
|||||||
if (plugin.disableToggle) {
|
if (plugin.disableToggle) {
|
||||||
const settings = await browser.storage.local.get(`plugin.${pluginId}.settings`);
|
const settings = await browser.storage.local.get(`plugin.${pluginId}.settings`);
|
||||||
const pluginSettings = settings[`plugin.${pluginId}.settings`] as PluginSettingsStorage | undefined;
|
const pluginSettings = settings[`plugin.${pluginId}.settings`] as PluginSettingsStorage | undefined;
|
||||||
const enabled = pluginSettings?.enabled ?? true;
|
const enabled = pluginSettings?.enabled ?? plugin.defaultEnabled ?? true;
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
console.info(`Plugin "${pluginId}" is disabled, skipping initialization`);
|
console.info(`Plugin "${pluginId}" is disabled, skipping initialization`);
|
||||||
return;
|
return;
|
||||||
@@ -185,6 +185,7 @@ export class PluginManager {
|
|||||||
result.id = key;
|
result.id = key;
|
||||||
result.title = result.title || key;
|
result.title = result.title || key;
|
||||||
result.description = result.description || '';
|
result.description = result.description || '';
|
||||||
|
result.defaultEnabled = plugin.defaultEnabled ?? true;
|
||||||
|
|
||||||
return [key, result];
|
return [key, result];
|
||||||
});
|
});
|
||||||
@@ -196,7 +197,7 @@ export class PluginManager {
|
|||||||
title: plugin.name,
|
title: plugin.name,
|
||||||
description: plugin.description,
|
description: plugin.description,
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
default: true
|
default: plugin.defaultEnabled ?? true
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@@ -205,7 +206,7 @@ export class PluginManager {
|
|||||||
name: plugin.name,
|
name: plugin.name,
|
||||||
description: plugin.description,
|
description: plugin.description,
|
||||||
settings: Object.fromEntries(settingsEntries),
|
settings: Object.fromEntries(settingsEntries),
|
||||||
disableToggle: plugin.disableToggle
|
disableToggle: plugin.disableToggle,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -258,7 +259,7 @@ export class PluginManager {
|
|||||||
if (!plugin?.disableToggle) continue;
|
if (!plugin?.disableToggle) continue;
|
||||||
|
|
||||||
const enabled = (change.newValue as PluginSettingsStorage)?.enabled ?? true;
|
const enabled = (change.newValue as PluginSettingsStorage)?.enabled ?? true;
|
||||||
const wasEnabled = (change.oldValue as PluginSettingsStorage)?.enabled ?? true;
|
const wasEnabled = (change.oldValue as PluginSettingsStorage)?.enabled ?? plugin.defaultEnabled ?? true;
|
||||||
|
|
||||||
if (enabled !== wasEnabled) {
|
if (enabled !== wasEnabled) {
|
||||||
this.handlePluginStateChange(pluginId, enabled);
|
this.handlePluginStateChange(pluginId, enabled);
|
||||||
|
|||||||
@@ -98,5 +98,6 @@ export interface Plugin<T extends PluginSettings = PluginSettings, S = any> {
|
|||||||
settings: T;
|
settings: T;
|
||||||
styles?: string; // Optional CSS styles for the plugin
|
styles?: string; // Optional CSS styles for the plugin
|
||||||
disableToggle?: boolean; // Optional flag to show/hide the plugin's enable/disable toggle in settings
|
disableToggle?: boolean; // Optional flag to show/hide the plugin's enable/disable toggle in settings
|
||||||
|
defaultEnabled?: boolean; // Optional flag to set the plugin's default enabled state
|
||||||
run: (api: PluginAPI<T, S>) => void | Promise<void> | (() => void) | Promise<(() => void)>;
|
run: (api: PluginAPI<T, S>) => void | Promise<void> | (() => void) | Promise<(() => void)>;
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ import themesPlugin from './built-in/themes';
|
|||||||
import animatedBackgroundPlugin from './built-in/animatedBackground';
|
import animatedBackgroundPlugin from './built-in/animatedBackground';
|
||||||
import assessmentsAveragePlugin from './built-in/assessmentsAverage';
|
import assessmentsAveragePlugin from './built-in/assessmentsAverage';
|
||||||
import globalSearchPlugin from './built-in/globalSearch/src/core';
|
import globalSearchPlugin from './built-in/globalSearch/src/core';
|
||||||
import testPlugin from './built-in/test';
|
//import testPlugin from './built-in/test';
|
||||||
|
|
||||||
// Initialize plugin manager
|
// Initialize plugin manager
|
||||||
const pluginManager = PluginManager.getInstance();
|
const pluginManager = PluginManager.getInstance();
|
||||||
@@ -19,7 +19,7 @@ pluginManager.registerPlugin(assessmentsAveragePlugin);
|
|||||||
pluginManager.registerPlugin(notificationCollectorPlugin);
|
pluginManager.registerPlugin(notificationCollectorPlugin);
|
||||||
pluginManager.registerPlugin(timetablePlugin);
|
pluginManager.registerPlugin(timetablePlugin);
|
||||||
pluginManager.registerPlugin(globalSearchPlugin);
|
pluginManager.registerPlugin(globalSearchPlugin);
|
||||||
pluginManager.registerPlugin(testPlugin);
|
//pluginManager.registerPlugin(testPlugin);
|
||||||
|
|
||||||
export { init as Monofile } from './monofile';
|
export { init as Monofile } from './monofile';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user