+ {certifiedBy && {t('Certified by %s', certifiedBy)}
}
+ {details}
+ >
+ }
+ >
+
+
+ );
+}
+
+export default CertifiedIconWithTooltip;
diff --git a/superset-frontend/src/components/Icon/index.tsx b/superset-frontend/src/components/Icon/index.tsx
index c325c8133f86..f798f1c987aa 100644
--- a/superset-frontend/src/components/Icon/index.tsx
+++ b/superset-frontend/src/components/Icon/index.tsx
@@ -19,6 +19,7 @@
import React, { SVGProps } from 'react';
import { ReactComponent as CancelXIcon } from 'images/icons/cancel-x.svg';
import { ReactComponent as CardViewIcon } from 'images/icons/card-view.svg';
+import { ReactComponent as CertifiedIcon } from 'images/icons/certified.svg';
import { ReactComponent as CheckboxHalfIcon } from 'images/icons/checkbox-half.svg';
import { ReactComponent as CheckboxOffIcon } from 'images/icons/checkbox-off.svg';
import { ReactComponent as CheckboxOnIcon } from 'images/icons/checkbox-on.svg';
@@ -46,6 +47,7 @@ import { ReactComponent as WarningIcon } from 'images/icons/warning.svg';
type IconName =
| 'cancel-x'
| 'card-view'
+ | 'certified'
| 'check'
| 'checkbox-half'
| 'checkbox-off'
@@ -88,6 +90,7 @@ export const iconsRegistry: Record<
'list-view': ListViewIcon,
'sort-asc': SortAscIcon,
'sort-desc': SortDescIcon,
+ certified: CertifiedIcon,
check: CheckIcon,
close: CloseIcon,
compass: CompassIcon,
diff --git a/superset-frontend/src/datasource/DatasourceEditor.jsx b/superset-frontend/src/datasource/DatasourceEditor.jsx
index 8ce54307bd15..9aa3b367a80b 100644
--- a/superset-frontend/src/datasource/DatasourceEditor.jsx
+++ b/superset-frontend/src/datasource/DatasourceEditor.jsx
@@ -28,6 +28,7 @@ import Label from 'src/components/Label';
import Button from 'src/components/Button';
import Loading from 'src/components/Loading';
import TableSelector from 'src/components/TableSelector';
+import CertifiedIconWithTooltip from 'src/components/CertifiedIconWithTooltip';
import getClientErrorObject from '../utils/getClientErrorObject';
import CheckboxControl from '../explore/components/controls/CheckboxControl';
@@ -59,6 +60,15 @@ const DatasourceContainer = styled.div`
}
`;
+const FlexRowContainer = styled.div`
+ align-items: center;
+ display: flex;
+
+ > svg {
+ margin-right: ${({ theme }) => theme.gridUnit}px;
+ }
+`;
+
const checkboxGenerator = (d, onChange) => (