- {this.getSvgIcon(sourceMeta.kind.toLowerCase(), 25, 25)}
+ {getSvgIcon(sourceMeta.kind.toLowerCase(), 25, 25)}
{dataQuery.name}
diff --git a/frontend/src/Editor/LeftSidebar/SidebarDatasources.jsx b/frontend/src/Editor/LeftSidebar/SidebarDatasources.jsx
index e4eca2343a..dd25a878c9 100644
--- a/frontend/src/Editor/LeftSidebar/SidebarDatasources.jsx
+++ b/frontend/src/Editor/LeftSidebar/SidebarDatasources.jsx
@@ -5,21 +5,13 @@ import { DataSourceManager } from '../DataSourceManager';
import { DataSourceTypes } from '../DataSourceManager/SourceComponents';
import OverlayTrigger from 'react-bootstrap/esm/OverlayTrigger';
import Tooltip from 'react-bootstrap/esm/Tooltip';
-import { allSvgs } from '@tooljet/plugins/client';
+import { getSvgIcon } from '@/_helpers/appUtils';
export const LeftSidebarDataSources = ({ appId, editingVersionId, darkMode, dataSources = [], dataSourcesChanged }) => {
const [open, trigger, content] = usePopover(false);
const [showDataSourceManagerModal, toggleDataSourceManagerModal] = React.useState(false);
const [selectedDataSource, setSelectedDataSource] = React.useState(null);
- // TODO: move this to a react component
- // TODO: add falback svg icon if icon not found
- const getSvgIcon = (key, height = 50, width = 50) => {
- const Icon = allSvgs[key];
-
- return
;
- };
-
const renderDataSource = (dataSource, idx) => {
const sourceMeta = DataSourceTypes.find((source) => source.kind === dataSource.kind);
return (
diff --git a/frontend/src/HomePage/TemplateLibraryModal/TemplateDisplay.jsx b/frontend/src/HomePage/TemplateLibraryModal/TemplateDisplay.jsx
index 0907491b39..5b1239340f 100644
--- a/frontend/src/HomePage/TemplateLibraryModal/TemplateDisplay.jsx
+++ b/frontend/src/HomePage/TemplateLibraryModal/TemplateDisplay.jsx
@@ -1,8 +1,10 @@
import React from 'react';
import { Container, Row, Badge } from 'react-bootstrap';
+import { getSvgIcon } from '@/_helpers/appUtils';
export default function TemplateDisplay(props) {
const { id, name, description, sources } = props?.app ?? {};
+
return (
@@ -29,10 +31,7 @@ export default function TemplateDisplay(props) {
className="d-flex flex-rows align-items-center justify-content-center"
style={{ backgroundColor: 'white', borderRadius: 20, height: 20, width: 20 }}
>
-
+ {getSvgIcon(source.id, 14, 14)}
{source.name}
diff --git a/frontend/src/_helpers/appUtils.js b/frontend/src/_helpers/appUtils.js
index 8e8e22adc8..80969fd8c8 100644
--- a/frontend/src/_helpers/appUtils.js
+++ b/frontend/src/_helpers/appUtils.js
@@ -13,6 +13,7 @@ import Tooltip from 'react-bootstrap/Tooltip';
import { componentTypes } from '../Editor/Components/components';
import generateCSV from '@/_lib/generate-csv';
import generateFile from '@/_lib/generate-file';
+import { allSvgs } from '@tooljet/plugins/client';
export function setStateAsync(_ref, state) {
return new Promise((resolve) => {
@@ -715,3 +716,9 @@ export function computeComponentState(_ref, components) {
defaultComponentStateComputed: true,
});
}
+
+export const getSvgIcon = (key, height = 50, width = 50) => {
+ const Icon = allSvgs[key];
+
+ return