Compare commits

...

2 commits

Author SHA1 Message Date
Ell 4b6b2083a6
Merge branch 'master' into master 2024-02-21 13:07:11 +01:00
WmeLuna 0ec307eab6
feat: Add Custom JS (#104)
* Add Custom JS

* Resolve requested changes
2023-10-11 22:01:03 +02:00
3 changed files with 34 additions and 8 deletions

View file

@ -24,6 +24,7 @@ export class CustomFrame {
this.frame.addEventListener("dom-ready", () => { this.frame.addEventListener("dom-ready", () => {
this.frame.setZoomFactor(this.data.zoomLevel); this.frame.setZoomFactor(this.data.zoomLevel);
this.frame.insertCSS(this.data.customCss); this.frame.insertCSS(this.data.customCss);
this.frame.executeJavaScript(this.data.customJs)
}); });
this.frame.addEventListener("destroyed", () => { this.frame.addEventListener("destroyed", () => {
// recreate the webview if it was moved to a new window // recreate the webview if it was moved to a new window

View file

@ -149,6 +149,22 @@ export class CustomFramesSettingTab extends PluginSettingTab {
await this.plugin.saveSettings(); await this.plugin.saveSettings();
}); });
}); });
new Setting(content)
.setName("Additional JavaScript")
.setDesc(createFragment(f => {
f.createSpan({ text: "A snippet of additional JavaScript that should be applied to this frame." });
f.createEl("br");
f.createEl("em", { text: "Note that this is only applied on Desktop." });
}))
.addTextArea(t => {
t.inputEl.rows = 5;
t.inputEl.cols = 50;
t.setValue(frame.customJs);
t.onChange(async v => {
frame.customJs = v;
await this.plugin.saveSettings();
});
});
new ButtonComponent(content) new ButtonComponent(content)
.setButtonText("Remove Frame") .setButtonText("Remove Frame")
.onClick(async () => { .onClick(async () => {

View file

@ -12,7 +12,8 @@ export const presets: Record<string, CustomFrameSettings> = {
openInCenter: true, openInCenter: true,
zoomLevel: 1, zoomLevel: 1,
forceIframe: false, forceIframe: false,
customCss: "" customCss: "",
customJs: ""
}, },
"detexify": { "detexify": {
url: "https://detexify.kirelabs.org/classify.html", url: "https://detexify.kirelabs.org/classify.html",
@ -27,7 +28,8 @@ export const presets: Record<string, CustomFrameSettings> = {
#classify--info-area, #classify--info-area,
.adsbygoogle { .adsbygoogle {
display: none !important display: none !important
}` }`,
customJs: ""
}, },
"calendar": { "calendar": {
url: "https://calendar.google.com/calendar", url: "https://calendar.google.com/calendar",
@ -45,7 +47,8 @@ div[style*="min-width: 238px"] {
} }
div[style*="min-width: 238px"] span[role*="heading"] { div[style*="min-width: 238px"] span[role*="heading"] {
display: none !important; display: none !important;
}` }`,
customJs: ""
}, },
"keep": { "keep": {
url: "https://keep.google.com", url: "https://keep.google.com",
@ -65,7 +68,8 @@ html > body > div:first-child > header:first-child > div:nth-child(2) > div:nth-
} }
html > body > div:first-child > header:first-child > div > div:first-child > div > div:first-child > a:first-child { html > body > div:first-child > header:first-child > div > div:first-child > div > div:first-child > a:first-child {
cursor: default; cursor: default;
}` }`,
customJs: ""
}, },
"todoist": { "todoist": {
url: "https://todoist.com", url: "https://todoist.com",
@ -92,7 +96,8 @@ html > body > div:first-child > header:first-child > div > div:first-child > div
.undo_toast { .undo_toast {
width: 95%; width: 95%;
}` }`,
customJs: ""
}, },
"notion": { "notion": {
url: "https://www.notion.so/", url: "https://www.notion.so/",
@ -103,7 +108,8 @@ html > body > div:first-child > header:first-child > div > div:first-child > div
openInCenter: true, openInCenter: true,
zoomLevel: 1, zoomLevel: 1,
forceIframe: false, forceIframe: false,
customCss: "" customCss: "",
customJs: ""
}, },
"twitter": { "twitter": {
url: "https://twitter.com", url: "https://twitter.com",
@ -114,7 +120,8 @@ html > body > div:first-child > header:first-child > div > div:first-child > div
openInCenter: false, openInCenter: false,
zoomLevel: 1, zoomLevel: 1,
forceIframe: false, forceIframe: false,
customCss: "" customCss: "",
customJs: ""
}, },
"tasks": { "tasks": {
url: "https://tasks.google.com/embed/?origin=https://calendar.google.com&fullWidth=1", url: "https://tasks.google.com/embed/?origin=https://calendar.google.com&fullWidth=1",
@ -125,7 +132,8 @@ html > body > div:first-child > header:first-child > div > div:first-child > div
openInCenter: false, openInCenter: false,
zoomLevel: 1, zoomLevel: 1,
forceIframe: false, forceIframe: false,
customCss: "" customCss: "",
customJs: ""
} }
}; };
@ -144,6 +152,7 @@ export interface CustomFrameSettings {
zoomLevel: number; zoomLevel: number;
forceIframe: boolean; forceIframe: boolean;
customCss: string; customCss: string;
customJs: string;
} }
export function getIcon(settings: CustomFrameSettings) { export function getIcon(settings: CustomFrameSettings) {