generated from obsidianmd/obsidian-sample-plugin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
crypto-modal.ts
52 lines (43 loc) · 1.03 KB
/
crypto-modal.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { App, Modal, Setting } from "obsidian";
export class CryptoModal extends Modal {
base: string;
target: string;
onSubmit: (base: string, target: string) => void;
constructor(
app: App,
defaultTarget: string,
onSubmit: (base: string, target: string) => void
) {
super(app);
this.target = defaultTarget;
this.onSubmit = onSubmit;
}
onOpen() {
const { contentEl } = this;
contentEl.createEl("h1", { text: "Select crypto base and target" });
new Setting(contentEl).setName("Base").addText((text) =>
text
.setValue(this.base).onChange((value) => {
this.base = value;
}).inputEl.focus()
);
new Setting(contentEl).setName("Target").addText((text) =>
text.setValue(this.target).onChange((value) => {
this.target = value;
})
);
new Setting(contentEl).addButton((btn) =>
btn
.setButtonText("Lookup")
.setCta()
.onClick(() => {
this.close();
this.onSubmit(this.base, this.target);
})
);
}
onClose() {
let { contentEl } = this;
contentEl.empty();
}
}