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;