summaryrefslogtreecommitdiff
path: root/src/plugin_page.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugin_page.js')
-rw-r--r--src/plugin_page.js62
1 files changed, 59 insertions, 3 deletions
diff --git a/src/plugin_page.js b/src/plugin_page.js
index 50dc419c..537f53a3 100644
--- a/src/plugin_page.js
+++ b/src/plugin_page.js
@@ -1,4 +1,8 @@
(function () {
+ let plugins = [];
+
+ {{ PLUGINS }}
+
const PLUGIN_ICON = `
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plugin" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M1 8a7 7 0 1 1 2.898 5.673c-.167-.121-.216-.406-.002-.62l1.8-1.8a3.5 3.5 0 0 0
@@ -8,13 +12,65 @@
</svg>
`;
+ function createTitle(text) {
+ return `<div class="quickaccessmenu_Title_34nl5">${text}</div>`;
+ }
+
+ function createTabGroupPanel(content) {
+ return `<div class="quickaccessmenu_TabGroupPanel_1QO7b Panel Focusable">${content}</div>`;
+ }
+
+ function createPanelSelection(content) {
+ return `<div class="quickaccesscontrols_PanelSection_Ob5uo">${content}</div>`;
+ }
+
+ function createPanelSelectionRow(content) {
+ return `<div class="quickaccesscontrols_PanelSectionRow_26R5w">${content}</div>`;
+ }
+
+ function createButton(text, id) {
+ return `
+ <div class="basicdialog_Field_ugL9c basicdialog_WithChildrenBelow_1RjOd basicdialog_InlineWrapShiftsChildrenBelow_3a6QZ basicdialog_ExtraPaddingOnChildrenBelow_2-owv basicdialog_StandardPadding_1HrfN basicdialog_HighlightOnFocus_1xh2W Panel Focusable" style="--indent-level:0;">
+ <div class="basicdialog_FieldChildren_279n8">
+ <button id="${id}" type="button" tabindex="0" class="DialogButton _DialogLayout Secondary basicdialog_Button_1Ievp Focusable">${text}</button>
+ </div>
+ </div>
+ `;
+ }
+
+ function createPluginList() {
+ let pages = document.getElementsByClassName("quickaccessmenu_AllTabContents_2yKG4 quickaccessmenu_Down_3rR0o")[0];
+ let pluginPage = pages.children[pages.children.length - 1];
+
+ pluginPage.innerHTML = createTitle("Plugins");
+
+ let buttons = "";
+ for (let i = 0; i < plugins.length; i++) {
+ buttons += createPanelSelectionRow(createButton(plugins[i].getName(), "plugin_btn_" + i))
+ }
+
+ pluginPage.innerHTML += createTabGroupPanel(createPanelSelection(buttons));
+
+ for (let i = 0; i < plugins.length; i++) {
+ document.getElementById("plugin_btn_" + i).onclick = (function(plugin, pluginPage) {
+ return function() {
+ pluginPage.innerHTML = createButton("Back", "plugin_back") + createTitle(plugin.getName()) + createTabGroupPanel(plugin.getPageContent());
+ plugin.runCode();
+
+ document.getElementById("plugin_back").onclick = (e) => {
+ createPluginList();
+ };
+ };
+ }(plugins[i], pluginPage))
+ }
+
+ }
+
function inject() {
let tabs = document.getElementsByClassName("quickaccessmenu_TabContentColumn_2z5NL Panel Focusable")[0];
tabs.children[tabs.children.length - 1].innerHTML = PLUGIN_ICON;
- let pages = document.getElementsByClassName("quickaccessmenu_AllTabContents_2yKG4 quickaccessmenu_Down_3rR0o")[0];
- let pluginPage = pages.children[pages.children.length - 1];
- pluginPage.innerHTML = "Hello from Rust!";
+ createPluginList();
}
let injector = setInterval(function () {