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 { return new Promise((resolve) => { const modal = new ReadingProgressModal( app, pageCount, (pageNumber: number) => { modal.close(); resolve(pageNumber); } ); modal.open(); }); } }