import { css } from '@emotion/css'; import { DataSourceInstanceSettings, DataSourceJsonData, GrafanaTheme2 } from '@grafana/data'; import { useStyles2, useTheme2 } from '@grafana/ui'; export interface DataSourceLogoProps { dataSource: DataSourceInstanceSettings | undefined; } export function DataSourceLogo(props: DataSourceLogoProps) { const { dataSource } = props; const theme = useTheme2(); const styles = getStyles(theme, dataSource?.meta.builtIn); if (!dataSource) { return DataSourceLogoPlaceHolder(); } return ( {`${dataSource.meta.name} ); } export function DataSourceLogoPlaceHolder() { const styles = useStyles2(getStyles); return
; } function getStyles(theme: GrafanaTheme2, builtIn = false) { return { pickerDSLogo: css({ height: '20px', width: '20px', filter: `invert(${builtIn && theme.isLight ? 1 : 0})`, }), }; }