Skip to content

Commit 4877722

Browse files
committed
refactor: use modern leaf API functions
1 parent 1e566d8 commit 4877722

4 files changed

Lines changed: 26 additions & 22 deletions

File tree

src/builder/view.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,20 @@ export default class BuilderView extends ItemView {
2525
constructor(leaf: WorkspaceLeaf, public plugin: InitiativeTracker) {
2626
super(leaf);
2727
}
28-
getState() {
29-
return [...get(encounter).entries()];
28+
getState(): Record<string, unknown> {
29+
return { encounter: [...get(encounter).entries()] };
3030
}
3131
async setState(
32-
state: [SRDMonster, number][],
32+
state: Record<string, unknown>,
3333
result: ViewStateResult
3434
): Promise<void> {
35-
if (state && Array.isArray(state)) encounter.setMultiple(state);
35+
// Support both legacy array format and new object format
36+
const entries = (
37+
Array.isArray(state)
38+
? state
39+
: state?.encounter
40+
) as [SRDMonster, number][] | undefined;
41+
if (entries && Array.isArray(entries)) encounter.setMultiple(entries);
3642
super.setState(state, result);
3743
}
3844
ui: Builder;

src/global.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
declare const app: import("obsidian").App;
12
declare type DndEventInfo = import("svelte-dnd-action").DndEventInfo;
23
declare interface GenericDndEvent<T extends Record<string, any>> {
34
items: T;

src/main.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ export default class InitiativeTracker extends Plugin {
567567
)
568568
);
569569
this.registerEvent(
570-
app.workspace.on(
570+
this.app.workspace.on(
571571
"initiative-tracker:save-state",
572572
async (state: InitiativeViewState) => {
573573
this.data.state = state;
@@ -629,14 +629,11 @@ export default class InitiativeTracker extends Plugin {
629629
}
630630

631631
async addTrackerView() {
632-
if (
633-
this.app.workspace.getLeavesOfType(INITIATIVE_TRACKER_VIEW)?.length
634-
) {
635-
return;
636-
}
637-
await this.app.workspace.getRightLeaf(false).setViewState({
638-
type: INITIATIVE_TRACKER_VIEW
639-
});
632+
await this.app.workspace.ensureSideLeaf(
633+
INITIATIVE_TRACKER_VIEW,
634+
"right",
635+
{ active: false }
636+
);
640637
}
641638
get builder() {
642639
const leaves = this.app.workspace.getLeavesOfType(BUILDER_VIEW);
@@ -727,12 +724,12 @@ export default class InitiativeTracker extends Plugin {
727724
}
728725
async openCombatant(creature: Creature) {
729726
if (!this.canUseStatBlocks) return;
730-
const view = this.combatant;
731-
if (!view) {
732-
const leaf = this.app.workspace.getRightLeaf(false);
733-
await leaf.setViewState({
734-
type: CREATURE_TRACKER_VIEW
735-
});
727+
if (!this.combatant) {
728+
await this.app.workspace.ensureSideLeaf(
729+
CREATURE_TRACKER_VIEW,
730+
"right",
731+
{ active: true }
732+
);
736733
}
737734

738735
await this.combatant.render(creature);

src/tracker/view.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export class CreatureView extends ItemView {
102102
"a.internal-link",
103103
debounce(
104104
(ev) =>
105-
app.workspace.trigger("hover-link", {
105+
this.app.workspace.trigger("hover-link", {
106106
event: ev,
107107
source: INITIATIVE_TRACKER_VIEW,
108108
hoverParent: this,
@@ -115,7 +115,7 @@ export class CreatureView extends ItemView {
115115
)
116116
);
117117
this.containerEl.on("click", "a.internal-link", (ev) =>
118-
app.workspace.openLinkText(
118+
this.app.workspace.openLinkText(
119119
(ev.target as HTMLAnchorElement).dataset.href,
120120
"initiative-tracker"
121121
)
@@ -185,7 +185,7 @@ export class CreatureView extends ItemView {
185185
if (file) {
186186
const fileContent = await this.app.vault.cachedRead(file);
187187
if (subpath && fileContent) {
188-
const cache = app.metadataCache.getFileCache(file);
188+
const cache = this.app.metadataCache.getFileCache(file);
189189
const subpathResult = resolveSubpath(cache, subpath);
190190
if (subpathResult) {
191191
content = fileContent.slice(

0 commit comments

Comments
 (0)