feat: profile picture plugin #256

This commit is contained in:
SethBurkart123
2025-06-04 16:08:01 +10:00
parent 6c12f5cf00
commit 9b13e7571a
8 changed files with 246 additions and 17 deletions
+5 -3
View File
@@ -7,6 +7,7 @@ import type {
StringSetting,
ButtonSetting,
HotkeySetting,
ComponentSetting,
} from "./types";
import { createPluginAPI } from "./createAPI";
import browser from "webextension-polyfill";
@@ -195,7 +196,8 @@ export class PluginManager {
options: Array<{ value: string; label: string }>;
})
| (Omit<ButtonSetting, "type"> & { type: "button"; id: string; trigger?: () => void | Promise<void> })
| (Omit<HotkeySetting, "type"> & { type: "hotkey"; id: string });
| (Omit<HotkeySetting, "type"> & { type: "hotkey"; id: string })
| (Omit<ComponentSetting, "type"> & { type: "component"; id: string; component: any });
};
}> {
return Array.from(this.plugins.entries()).map(([id, plugin]) => {
@@ -203,8 +205,8 @@ export class PluginManager {
([key, setting]) => {
const settingObj = setting as any;
let result: any;
if (settingObj.type === "button") {
// For button, keep the trigger function
if (settingObj.type === "button" || settingObj.type === "component") {
// For button or component, keep the functions
result = { ...settingObj };
} else {
// For others, strip functions