generated from tpl/obsidian-sample-plugin
20 lines
551 B
TypeScript
20 lines
551 B
TypeScript
import RatingModalView from "./RatingModalView.svelte";
|
|
import { App } from "obsidian";
|
|
import { SvelteModal } from "./SvelteModal";
|
|
|
|
export class RatingModal extends SvelteModal<typeof RatingModalView> {
|
|
constructor(app: App, onSubmit: (rating: number) => void = () => {}) {
|
|
super(app, RatingModalView, { props: { onSubmit } });
|
|
}
|
|
|
|
static createAndOpen(app: App): Promise<number> {
|
|
return new Promise((resolve) => {
|
|
const modal = new RatingModal(app, (rating) => {
|
|
modal.close();
|
|
resolve(rating);
|
|
});
|
|
modal.open();
|
|
});
|
|
}
|
|
}
|