import { defineStore } from "pinia"; import { ref } from "vue"; import { repo } from "../adapters"; export interface TitleEntry { id: string; title: string; } // Owner's {id,title} index, used to resolve [[wiki-links]] client-side. export const useTitlesStore = defineStore("titles", () => { const items = ref([]); const loaded = ref(false); async function load(): Promise { if (loaded.value) return; items.value = await repo.notes.titles(); loaded.value = true; } async function reload(): Promise { loaded.value = false; await load(); } function resolve(title: string): TitleEntry | null { const norm = title.trim().toLowerCase(); return items.value.find((t) => t.title.trim().toLowerCase() === norm) ?? null; } return { items, loaded, load, reload, resolve }; });