From b84a145cbc50a0fcf3dd6d656040dc583a375ef0 Mon Sep 17 00:00:00 2001 From: Unarray <48868686+Unarray@users.noreply.github.com> Date: Sat, 26 Aug 2023 16:23:03 +0200 Subject: [PATCH] Update SettingsTab - Make it Singleton - Change his location - Update textarea input width --- src/FileTreeGenerator.ts | 2 +- src/{settings => }/SettingsTab.ts | 35 +++++++++++++++++++++++------ src/{settings => }/settings.type.ts | 0 src/settings/index.ts | 2 -- 4 files changed, 29 insertions(+), 10 deletions(-) rename src/{settings => }/SettingsTab.ts (57%) rename src/{settings => }/settings.type.ts (100%) delete mode 100644 src/settings/index.ts diff --git a/src/FileTreeGenerator.ts b/src/FileTreeGenerator.ts index 738b8c1..51ac597 100644 --- a/src/FileTreeGenerator.ts +++ b/src/FileTreeGenerator.ts @@ -1,5 +1,5 @@ +import { SettingsTab } from "./SettingsTab"; import { GenerateTree } from "#/commands"; -import { SettingsTab } from "#/settings"; import type { App, Command, PluginManifest } from "obsidian"; import { Plugin } from "obsidian"; diff --git a/src/settings/SettingsTab.ts b/src/SettingsTab.ts similarity index 57% rename from src/settings/SettingsTab.ts rename to src/SettingsTab.ts index 3aff2ec..0690c06 100644 --- a/src/settings/SettingsTab.ts +++ b/src/SettingsTab.ts @@ -4,6 +4,16 @@ import { PluginSettingTab, Setting } from "obsidian"; export class SettingsTab extends PluginSettingTab { + private static instance: SettingsTab; + + private static setInstance = (instance: SettingsTab): void => { + SettingsTab.instance = instance; + }; + + public static getInstance = (): SettingsTab => { + return SettingsTab.instance; + }; + public static DEFAULT_SETTINGS: PluginSettings = { ignore: [".git", "node_modules"] }; @@ -13,8 +23,10 @@ export class SettingsTab extends PluginSettingTab { private plugin: FileTreeGenerator; constructor(plugin: FileTreeGenerator) { + super(plugin.app, plugin); this.plugin = plugin; + SettingsTab.setInstance(this); } public loadSettings = async(): Promise => { @@ -34,14 +46,23 @@ export class SettingsTab extends PluginSettingTab { .setName("Ignore patterns") .setDesc("This will skip this pattern when generating the tree") .addTextArea( - (text) => text - .setPlaceholder("filters according to .gitignore spec 2.22.1") - .setValue(this.settings.ignore.join("\n")) - .onChange(async(value) => { - this.settings.ignore = value.split("\n"); - await this.saveSettings(); - }) + (text) => { + text.inputEl.style.width = "100%"; + text.inputEl.rows = 8; + + return text + .setPlaceholder("filters according to .gitignore spec 2.22.1") + .setValue(this.settings.ignore.join("\n")) + .onChange(async(value) => { + this.settings.ignore = value.split("\n"); + await this.saveSettings(); + }); + } ); }; + public getSettings = (): PluginSettings => { + return { ...this.settings }; + }; + } \ No newline at end of file diff --git a/src/settings/settings.type.ts b/src/settings.type.ts similarity index 100% rename from src/settings/settings.type.ts rename to src/settings.type.ts diff --git a/src/settings/index.ts b/src/settings/index.ts deleted file mode 100644 index cd798eb..0000000 --- a/src/settings/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./SettingsTab"; -export * from "./settings.type"; \ No newline at end of file