UNPKG

insta-toc

Version:

Simultaneously generate, update, and maintain a table of contents for your notes in real time.

39 lines (33 loc) 1.43 kB
import { stringifyYaml } from "obsidian"; import type InstaTocPlugin from "../../../Plugin"; import { getLocalSettingsOmitSuggestions } from "../../../settings/localSettingsCompletionOptions"; import { normalizeLocalTocSettings } from "../../../settings/localTocSettings"; import { LocalSettingsComponent, Modal, ModalBase, type MaybeAsyncFn } from "../.."; export default class LocalSettingsModal extends ModalBase { private yamlContent: string; constructor(plugin: InstaTocPlugin, onSubmit: MaybeAsyncFn<[string], boolean>) { super(plugin, onSubmit); this.yamlContent = stringifyYaml(normalizeLocalTocSettings(plugin.validator.localTocSettings)); } onSaveSuccess(content: string): void { this.yamlContent = content; } async open(): Promise<void> { const darkMode = this.app.isDarkMode(); const omitSuggestions = getLocalSettingsOmitSuggestions(this.plugin.validator.metadata?.headings); await this.mounter.setup(Modal, { componentClassInstance: this, plugin: this.plugin, modalTitle: "Local Settings (YAML)", ModalContentComponent: { component: LocalSettingsComponent, props: { initialYaml: this .yamlContent, darkMode, omitSuggestions } } }); } }