Rewrite Mostly Stable

This commit is contained in:
Luke Leppan 2022-11-16 11:48:56 +02:00
parent 88eea5ad67
commit 67221411f8
No known key found for this signature in database
GPG key ID: AE403C75AFBBC102
5 changed files with 20 additions and 3 deletions

View file

@ -8,6 +8,7 @@ import {
BetterWordCountSettings, BetterWordCountSettings,
DEFAULT_SETTINGS, DEFAULT_SETTINGS,
} from "src/settings/Settings"; } from "src/settings/Settings";
import { settingsStore } from "./utils/SvelteStores";
export default class BetterWordCount extends Plugin { export default class BetterWordCount extends Plugin {
public settings: BetterWordCountSettings; public settings: BetterWordCountSettings;
@ -20,6 +21,12 @@ export default class BetterWordCount extends Plugin {
} }
async onload() { async onload() {
// Settings Store
this.register(
settingsStore.subscribe((value) => {
this.settings = value;
})
);
// Handle Settings // Handle Settings
this.settings = Object.assign(DEFAULT_SETTINGS, await this.loadData()); this.settings = Object.assign(DEFAULT_SETTINGS, await this.loadData());
this.addSettingTab(new BetterWordCountSettingsTab(this.app, this)); this.addSettingTab(new BetterWordCountSettingsTab(this.app, this));

View file

@ -26,7 +26,7 @@ export interface BetterWordCountSettings {
collectStats: boolean; collectStats: boolean;
} }
export const DEFAULT_SETTINGS: BetterWordCountSettings = { export const DEFAULT_SETTINGS: BetterWordCountSettings = Object.freeze({
statusBar: [ statusBar: [
{ {
prefix: "", prefix: "",
@ -41,4 +41,4 @@ export const DEFAULT_SETTINGS: BetterWordCountSettings = {
], ],
countComments: false, countComments: false,
collectStats: false, collectStats: false,
}; });

View file

@ -22,7 +22,7 @@ export default class StatusBar {
); );
this.statusBarEl.classList.add("mod-clickable"); this.statusBarEl.classList.add("mod-clickable");
this.statusBarEl.setAttribute("aria-label", "Open Stats View"); this.statusBarEl.setAttribute("aria-label", "Coming Soon");
this.statusBarEl.setAttribute("aria-label-position", "top"); this.statusBarEl.setAttribute("aria-label-position", "top");
this.statusBarEl.addEventListener("click", (ev: MouseEvent) => this.statusBarEl.addEventListener("click", (ev: MouseEvent) =>
this.onClick(ev) this.onClick(ev)

View file

@ -0,0 +1,8 @@
import {
BetterWordCountSettings,
DEFAULT_SETTINGS,
} from "src/settings/Settings";
import { writable } from "svelte/store";
export const settingsStore =
writable<BetterWordCountSettings>(DEFAULT_SETTINGS);

View file

@ -1,9 +1,11 @@
import { ItemView, WorkspaceLeaf } from "obsidian"; import { ItemView, WorkspaceLeaf } from "obsidian";
import { STATS_ICON_NAME, VIEW_TYPE_STATS } from "src/constants"; import { STATS_ICON_NAME, VIEW_TYPE_STATS } from "src/constants";
import type BetterWordCount from "src/main";
//@ts-ignore //@ts-ignore
import Statistics from "./Statistics.svelte"; import Statistics from "./Statistics.svelte";
export default class StatsView extends ItemView { export default class StatsView extends ItemView {
private plugin: BetterWordCount;
private statistics: Statistics; private statistics: Statistics;
constructor(leaf: WorkspaceLeaf) { constructor(leaf: WorkspaceLeaf) {