github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/hooks/useTemplateRender.ts (about) 1 import { 2 KeyValuePairs, 3 TemplatesMap, 4 } from "../components/dashboards/common/types"; 5 import { renderInterpolatedTemplates } from "../utils/template"; 6 import { useCallback, useEffect, useState } from "react"; 7 8 const useTemplateRender = () => { 9 const [jqWeb, setJqWeb] = useState<any | null>(null); 10 11 // Dynamically import jq-web from its own bundle 12 useEffect(() => { 13 import("jq-web").then((m) => setJqWeb(m)); 14 }, []); 15 16 const renderTemplates = useCallback( 17 async (templates: TemplatesMap, data: KeyValuePairs[]) => { 18 if (!jqWeb) { 19 return []; 20 } 21 return renderInterpolatedTemplates(templates, data, jqWeb); 22 }, 23 [jqWeb] 24 ); 25 26 return { 27 renderTemplates, 28 ready: !!jqWeb, 29 }; 30 }; 31 32 export default useTemplateRender;