yzh503_obsidian-aicommander.../modal.ts

44 lines
898 B
TypeScript
Raw Normal View History

2023-03-09 10:40:44 +00:00
import { App, Modal, Setting } from "obsidian";
export class PromptModal extends Modal {
prompt: string;
onSubmit: (prompt: string) => void;
constructor(
app: App,
defaultprompt: string,
onSubmit: (prompt: string) => void
) {
super(app);
this.prompt = defaultprompt;
this.onSubmit = onSubmit;
}
onOpen() {
const { contentEl } = this;
contentEl.createEl("h1", { text: "" });
new Setting(contentEl).setName("Generate text from prompt").addText((text) =>
text.setValue(this.prompt).onChange((value) => {
this.prompt = value;
})
);
new Setting(contentEl).addButton((btn) =>
btn
.setButtonText("Submit")
.setCta()
.onClick(() => {
this.close();
this.onSubmit(this.prompt);
})
);
}
onClose() {
const { contentEl } = this;
contentEl.empty();
}
}