github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/components/dashboards/layout/PanelDetail/PanelDetailDefinition.tsx (about) 1 import CodeBlock from "../../../CodeBlock"; 2 import { PanelDetailProps } from "./index"; 3 import { useMemo } from "react"; 4 5 const PanelDetailDefinition = ({ definition }: PanelDetailProps) => { 6 const formattedDefinition = useMemo(() => { 7 if (!definition.source_definition) { 8 return null; 9 } 10 const tabsToSpaces = definition.source_definition.replace(/\t/g, " "); 11 const initialSpaces = tabsToSpaces.search(/\S/); 12 const spaceString = " ".repeat(initialSpaces); 13 return tabsToSpaces 14 .replace(new RegExp(`^${spaceString}`), "") 15 .replaceAll(`\n${spaceString}`, "\n"); 16 }, [definition.source_definition]); 17 18 if (!formattedDefinition) { 19 return <></>; 20 } 21 22 return <CodeBlock language="hcl">{formattedDefinition}</CodeBlock>; 23 }; 24 25 export default PanelDetailDefinition;