Rewrite Mostly Stable
This commit is contained in:
parent
88eea5ad67
commit
67221411f8
5 changed files with 20 additions and 3 deletions
|
@ -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));
|
||||||
|
|
|
@ -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,
|
||||||
};
|
});
|
||||||
|
|
|
@ -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)
|
||||||
|
|
8
src/utils/SvelteStores.ts
Normal file
8
src/utils/SvelteStores.ts
Normal 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);
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue