@@ -2,6 +2,27 @@ import * as React from 'react';
22import { getLocString } from '../react-common/locReactSide' ;
33import { ConfigurableDatabaseIntegrationType } from './types' ;
44
5+ // Import integration logos
6+ /* eslint-disable @typescript-eslint/no-require-imports */
7+ const postgresqlLogo : string = require ( './icons/postgresql.svg' ) ;
8+ const mysqlLogo : string = require ( './icons/mysql.svg' ) ;
9+ const mariadbLogo : string = require ( './icons/mariadb.svg' ) ;
10+ const mongodbLogo : string = require ( './icons/mongodb.svg' ) ;
11+ const sqlServerLogo : string = require ( './icons/sql-server.svg' ) ;
12+ const bigqueryLogo : string = require ( './icons/bigquery.svg' ) ;
13+ const snowflakeLogo : string = require ( './icons/snowflake.svg' ) ;
14+ const alloydbLogo : string = require ( './icons/alloydb.svg' ) ;
15+ const spannerLogo : string = require ( './icons/spanner.svg' ) ;
16+ const materializeLogo : string = require ( './icons/materialize.svg' ) ;
17+ const clickhouseLogo : string = require ( './icons/clickhouse.svg' ) ;
18+ const athenaLogo : string = require ( './icons/athena.svg' ) ;
19+ const redshiftLogo : string = require ( './icons/redshift.svg' ) ;
20+ const databricksLogo : string = require ( './icons/databricks.svg' ) ;
21+ const dremioLogo : string = require ( './icons/dremio.svg' ) ;
22+ const mindsdbLogo : string = require ( './icons/mindsdb.svg' ) ;
23+ const trinoLogo : string = require ( './icons/trino.svg' ) ;
24+ /* eslint-enable @typescript-eslint/no-require-imports */
25+
526export interface IIntegrationTypeSelectorProps {
627 onSelectType : ( type : ConfigurableDatabaseIntegrationType ) => void ;
728}
@@ -16,87 +37,87 @@ const INTEGRATION_TYPES: IntegrationTypeInfo[] = [
1637 {
1738 type : 'pgsql' ,
1839 label : 'PostgreSQL' ,
19- icon : '🐘'
40+ icon : postgresqlLogo
2041 } ,
2142 {
2243 type : 'mysql' ,
2344 label : 'MySQL' ,
24- icon : '🐬'
45+ icon : mysqlLogo
2546 } ,
2647 {
2748 type : 'mariadb' ,
2849 label : 'MariaDB' ,
29- icon : '🦭'
50+ icon : mariadbLogo
3051 } ,
3152 {
3253 type : 'mongodb' ,
3354 label : 'MongoDB' ,
34- icon : '🍃'
55+ icon : mongodbLogo
3556 } ,
3657 {
3758 type : 'sql-server' ,
3859 label : 'Microsoft SQL Server' ,
39- icon : '🗄️'
60+ icon : sqlServerLogo
4061 } ,
4162 {
4263 type : 'big-query' ,
4364 label : 'Google BigQuery' ,
44- icon : '📊'
65+ icon : bigqueryLogo
4566 } ,
4667 {
4768 type : 'snowflake' ,
4869 label : 'Snowflake' ,
49- icon : '❄️'
70+ icon : snowflakeLogo
5071 } ,
5172 {
5273 type : 'alloydb' ,
5374 label : 'Google AlloyDB' ,
54- icon : '🔷'
75+ icon : alloydbLogo
5576 } ,
5677 {
5778 type : 'spanner' ,
5879 label : 'Google Cloud Spanner' ,
59- icon : '🔧'
80+ icon : spannerLogo
6081 } ,
6182 {
6283 type : 'materialize' ,
6384 label : 'Materialize' ,
64- icon : '⚡'
85+ icon : materializeLogo
6586 } ,
6687 {
6788 type : 'clickhouse' ,
6889 label : 'ClickHouse' ,
69- icon : '🏠'
90+ icon : clickhouseLogo
7091 } ,
7192 {
7293 type : 'athena' ,
7394 label : 'Amazon Athena' ,
74- icon : '🏛️'
95+ icon : athenaLogo
7596 } ,
7697 {
7798 type : 'redshift' ,
7899 label : 'Amazon Redshift' ,
79- icon : '🔴'
100+ icon : redshiftLogo
80101 } ,
81102 {
82103 type : 'databricks' ,
83104 label : 'Databricks' ,
84- icon : '🧱'
105+ icon : databricksLogo
85106 } ,
86107 {
87108 type : 'dremio' ,
88109 label : 'Dremio' ,
89- icon : '🚀'
110+ icon : dremioLogo
90111 } ,
91112 {
92113 type : 'mindsdb' ,
93114 label : 'MindsDB' ,
94- icon : '🧠'
115+ icon : mindsdbLogo
95116 } ,
96117 {
97118 type : 'trino' ,
98119 label : 'Trino' ,
99- icon : '⚙️'
120+ icon : trinoLogo
100121 }
101122] ;
102123
@@ -112,7 +133,9 @@ export const IntegrationTypeSelector: React.FC<IIntegrationTypeSelectorProps> =
112133 className = "integration-type-card"
113134 onClick = { ( ) => onSelectType ( integrationInfo . type ) }
114135 >
115- < div className = "integration-type-icon" > { integrationInfo . icon } </ div >
136+ < div className = "integration-type-icon" >
137+ < img src = { integrationInfo . icon } alt = { integrationInfo . label } />
138+ </ div >
116139 < div className = "integration-type-label" > { integrationInfo . label } </ div >
117140 < div className = "integration-type-category" >
118141 { getLocString ( 'integrationsDatabase' , 'Database' ) }
@@ -123,4 +146,3 @@ export const IntegrationTypeSelector: React.FC<IIntegrationTypeSelectorProps> =
123146 </ div >
124147 ) ;
125148} ;
126-
0 commit comments