mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
feat: build themes into a centralised plugin
This commit is contained in:
@@ -3,20 +3,16 @@ import browser from 'webextension-polyfill'
|
||||
import { closeExtensionPopup } from "@/seqta/utils/Closers/closeExtensionPopup"
|
||||
import { MenuOptionsOpen, OpenMenuOptions } from "@/seqta/utils/Openers/OpenMenuOptions"
|
||||
|
||||
import { deleteTheme } from '@/seqta/ui/themes/deleteTheme';
|
||||
import { getAvailableThemes } from '@/seqta/ui/themes/getAvailableThemes';
|
||||
import { saveTheme } from '@/seqta/ui/themes/saveTheme';
|
||||
import { UpdateThemePreview } from '@/seqta/ui/themes/UpdateThemePreview';
|
||||
import { getTheme } from '@/seqta/ui/themes/getTheme';
|
||||
import { setTheme } from '@/seqta/ui/themes/setTheme';
|
||||
import { disableTheme } from '@/seqta/ui/themes/disableTheme';
|
||||
import { CloseThemeCreator, OpenThemeCreator } from '@/seqta/ui/ThemeCreator';
|
||||
import ShareTheme from '@/seqta/ui/themes/shareTheme';
|
||||
import sendThemeUpdate from '@/seqta/utils/sendThemeUpdate';
|
||||
import hideSensitiveContent from '@/seqta/ui/dev/hideSensitiveContent';
|
||||
import { ThemeManager } from '@/plugins/built-in/themes/theme-manager';
|
||||
|
||||
const themeManager = ThemeManager.getInstance();
|
||||
|
||||
export class MessageHandler {
|
||||
constructor() {
|
||||
// @ts-ignore
|
||||
browser.runtime.onMessage.addListener(this.routeMessage.bind(this));
|
||||
}
|
||||
routeMessage(request: any, _sender: any, sendResponse: any) {
|
||||
@@ -32,46 +28,46 @@ export class MessageHandler {
|
||||
case 'UpdateThemePreview':
|
||||
if (request?.save == true) {
|
||||
const save = async () => {
|
||||
await saveTheme(request.body)
|
||||
await themeManager.saveTheme(request.body)
|
||||
if (request.body.enableTheme) {
|
||||
await setTheme(request.body.id)
|
||||
await themeManager.setTheme(request.body.id)
|
||||
}
|
||||
sendResponse({ status: 'success' })
|
||||
sendThemeUpdate()
|
||||
}
|
||||
save()
|
||||
} else {
|
||||
UpdateThemePreview(request.body);
|
||||
themeManager.updatePreview(request.body);
|
||||
sendResponse({ status: 'success' });
|
||||
}
|
||||
return true;
|
||||
|
||||
case 'GetTheme':
|
||||
getTheme(request.body.themeID).then((theme) => {
|
||||
themeManager.getTheme(request.body.themeID).then((theme) => {
|
||||
sendResponse(theme);
|
||||
});
|
||||
return true;
|
||||
|
||||
case 'SetTheme':
|
||||
setTheme(request.body.themeID).then(() => {
|
||||
themeManager.setTheme(request.body.themeID).then(() => {
|
||||
sendResponse({ status: 'success' });
|
||||
});
|
||||
break;
|
||||
|
||||
case 'DisableTheme':
|
||||
disableTheme().then(() => {
|
||||
themeManager.disableTheme().then(() => {
|
||||
sendResponse({ status: 'success' });
|
||||
});
|
||||
break;
|
||||
|
||||
case 'DeleteTheme':
|
||||
deleteTheme(request.body.themeID).then(() => {
|
||||
themeManager.deleteTheme(request.body.themeID).then(() => {
|
||||
sendResponse({ status: 'success' });
|
||||
});
|
||||
break;
|
||||
|
||||
case 'ListThemes':
|
||||
getAvailableThemes().then((themes) => {
|
||||
themeManager.getAvailableThemes().then((themes) => {
|
||||
sendResponse(themes);
|
||||
});
|
||||
return true;
|
||||
@@ -84,7 +80,7 @@ export class MessageHandler {
|
||||
break;
|
||||
|
||||
case 'ShareTheme':
|
||||
ShareTheme(request.body.themeID).then((id) => {
|
||||
themeManager.shareTheme(request.body.themeID).then((id) => {
|
||||
sendResponse({ status: 'success', id });
|
||||
});
|
||||
return true;
|
||||
@@ -105,8 +101,8 @@ export class MessageHandler {
|
||||
break;
|
||||
|
||||
default:
|
||||
console.debug('Unknown request info:', request.info);
|
||||
}
|
||||
console.debug('Unknown request info:', request.info);
|
||||
}
|
||||
}
|
||||
|
||||
editSidebar() {
|
||||
|
||||
Reference in New Issue
Block a user