27 lines
587 B
TypeScript
27 lines
587 B
TypeScript
import { type Opengraph } from "@lume/types";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
import { invoke } from "@tauri-apps/api/core";
|
|
|
|
export function useOpenGraph(url: string) {
|
|
const { status, data, error } = useQuery({
|
|
queryKey: ["opg", url],
|
|
queryFn: async () => {
|
|
const res: Opengraph = await invoke("opengraph", { url });
|
|
if (!res) {
|
|
throw new Error("fetch preview failed");
|
|
}
|
|
return res;
|
|
},
|
|
staleTime: Infinity,
|
|
refetchOnWindowFocus: false,
|
|
refetchOnMount: false,
|
|
refetchOnReconnect: false,
|
|
});
|
|
|
|
return {
|
|
status,
|
|
data,
|
|
error,
|
|
};
|
|
}
|