tfrere's picture
tfrere HF Staff
chore: initial commit
561e6f0
Raw
History Blame Contribute Delete
753 Bytes
import { useState, useEffect, useCallback } from "react";
import type { FrontmatterStore, FrontmatterData } from "./frontmatter-store";
export function useFrontmatter(store: FrontmatterStore | null) {
const [data, setData] = useState<FrontmatterData | null>(null);
useEffect(() => {
if (!store) return;
setData(store.getAll());
return store.observe(() => setData(store.getAll()));
}, [store]);
const update = useCallback(
<K extends keyof FrontmatterData>(key: K, value: FrontmatterData[K]) => {
store?.set(key, value);
},
[store],
);
const updateAll = useCallback(
(partial: Partial<FrontmatterData>) => {
store?.setAll(partial);
},
[store],
);
return { data, update, updateAll };
}