import { useState, useEffect, useCallback } from "react"; import type { FrontmatterStore, FrontmatterData } from "./frontmatter-store"; export function useFrontmatter(store: FrontmatterStore | null) { const [data, setData] = useState(null); useEffect(() => { if (!store) return; setData(store.getAll()); return store.observe(() => setData(store.getAll())); }, [store]); const update = useCallback( (key: K, value: FrontmatterData[K]) => { store?.set(key, value); }, [store], ); const updateAll = useCallback( (partial: Partial) => { store?.setAll(partial); }, [store], ); return { data, update, updateAll }; }