Skip to content

Commit a1abaf2

Browse files
committed
Repair: the awkward refreshment to top after edition on tasks and the wrong display of customized view.
1 parent fc174e7 commit a1abaf2

3 files changed

Lines changed: 66 additions & 3 deletions

File tree

src/dataflow/api/WriteAPI.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
getDailyNote,
1616
appHasDailyNotesPluginLoaded,
1717
getDailyNoteSettings,
18-
} from "obsidian-daily-notes-interface";
18+
} from "@/utils/obsidian-daily-notes";
1919
import {
2020
saveCapture,
2121
processDateTemplates,
@@ -1912,6 +1912,12 @@ export class WriteAPI {
19121912

19131913
// Append under optional heading
19141914
const file = dailyNoteFile;
1915+
if (!file) {
1916+
return {
1917+
success: false,
1918+
error: "Failed to resolve daily note file",
1919+
};
1920+
}
19151921
const current = await this.vault.read(file);
19161922
let newContent = current;
19171923

src/managers/habit-manager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
getDateFromFile,
2929
appHasDailyNotesPluginLoaded,
3030
getDailyNoteSettings,
31-
} from "obsidian-daily-notes-interface";
31+
} from "@/utils/obsidian-daily-notes";
3232
import { Events, on, emit } from "../dataflow/events/Events";
3333
import { DateInheritanceService } from "../services/date-inheritance-service";
3434

@@ -228,7 +228,7 @@ export class HabitManager extends Component {
228228

229229
private async getDailyNotes(): Promise<TFile[]> {
230230
const files = getAllDailyNotes();
231-
return Object.values(files);
231+
return files.map((entry) => entry.file);
232232
}
233233

234234
private isDailyNote(file: TFile): boolean {

src/utils/obsidian-daily-notes.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import type { TFile } from "obsidian";
2+
import {
3+
appHasDailyNotesPluginLoaded as dailyNotesPluginLoadedUnsafe,
4+
createDailyNote as createDailyNoteUnsafe,
5+
getAllDailyNotes as getAllDailyNotesUnsafe,
6+
getDailyNote as getDailyNoteUnsafe,
7+
getDailyNoteSettings as getDailyNoteSettingsUnsafe,
8+
getDateFromFile as getDateFromFileUnsafe,
9+
} from "obsidian-daily-notes-interface";
10+
11+
export interface DailyNoteSettings {
12+
folder?: string;
13+
format?: string;
14+
template?: string;
15+
}
16+
17+
export interface DailyNoteEntry {
18+
file: TFile;
19+
date: unknown;
20+
}
21+
22+
// The upstream package ships its own obsidian dependency, which produces a
23+
// second TFile type. Centralize the boundary here so the rest of the codebase
24+
// can stay on our local obsidian types.
25+
export function appHasDailyNotesPluginLoaded(): boolean {
26+
return Boolean(dailyNotesPluginLoadedUnsafe());
27+
}
28+
29+
export async function createDailyNote(date: unknown): Promise<TFile> {
30+
return (await createDailyNoteUnsafe(date as never)) as unknown as TFile;
31+
}
32+
33+
export function getAllDailyNotes(): DailyNoteEntry[] {
34+
return getAllDailyNotesUnsafe() as unknown as DailyNoteEntry[];
35+
}
36+
37+
export function getDailyNote(
38+
date: unknown,
39+
dailyNotes: DailyNoteEntry[],
40+
): TFile | null {
41+
const file = getDailyNoteUnsafe(
42+
date as never,
43+
dailyNotes as never,
44+
) as unknown as TFile | null | undefined;
45+
return file ?? null;
46+
}
47+
48+
export function getDailyNoteSettings(): DailyNoteSettings {
49+
return getDailyNoteSettingsUnsafe() as unknown as DailyNoteSettings;
50+
}
51+
52+
export function getDateFromFile(file: TFile, granularity?: string): any {
53+
return getDateFromFileUnsafe(
54+
file as never,
55+
granularity as never,
56+
) as any;
57+
}

0 commit comments

Comments
 (0)