@airplane/views
Version:
A React library for building Airplane views. Views components are optimized in style and functionality to produce internal apps that are easy to build and maintain.
29 lines (28 loc) • 917 B
JavaScript
import { useQueryClient } from "@tanstack/react-query";
import { useEffect } from "react";
import { WEB_HOST_GET } from "../client/endpoints.js";
import { Fetcher } from "../client/fetcher.js";
const useHandleParentMessage = (callback) => {
const queryClient = useQueryClient();
useEffect(() => {
const handleMessage = async (message) => {
const fetcher = new Fetcher();
const webHost = await queryClient.fetchQuery([WEB_HOST_GET], async () => {
return await fetcher.get(WEB_HOST_GET, {});
}, {
staleTime: Infinity
});
if (message.origin === webHost) {
callback(message.data);
}
};
window.addEventListener("message", handleMessage);
return () => {
window.removeEventListener("message", handleMessage);
};
}, [queryClient, callback]);
};
export {
useHandleParentMessage
};
//# sourceMappingURL=useHandleParentMessage.js.map