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