obsidian-book-tracker/src/ui/modals/RatingModal.ts

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();
});
}
}