icon names refactor

This commit is contained in:
Jan Prochazka
2020-11-10 18:21:29 +01:00
parent 1c2dedfef3
commit c8f7dc3d2c
37 changed files with 146 additions and 89 deletions

View File

@@ -78,7 +78,7 @@ const FileNameWrapper = styled.span`
margin-left: 5px; margin-left: 5px;
`; `;
const CloseButton = styled.span` const CloseButton = styled(FontIcon)`
margin-left: 5px; margin-left: 5px;
color: gray; color: gray;
&:hover { &:hover {
@@ -265,10 +265,11 @@ export default function TabsPanel() {
onMouseUp={(e) => handleMouseUp(e, tab.tabid)} onMouseUp={(e) => handleMouseUp(e, tab.tabid)}
onContextMenu={(e) => handleContextMenu(e, tab.tabid, tab.props)} onContextMenu={(e) => handleContextMenu(e, tab.tabid, tab.props)}
> >
{<FontIcon icon={tab.busy ? 'mdi mdi-loading mdi-spin' : tab.icon} />} {<FontIcon icon={tab.busy ? 'icon loading' : tab.icon} />}
<FileNameWrapper>{tab.title}</FileNameWrapper> <FileNameWrapper>{tab.title}</FileNameWrapper>
<CloseButton <CloseButton
className="mdi mdi-close tabCloseButton" icon="icon close"
className="tabCloseButton"
onClick={(e) => { onClick={(e) => {
e.preventDefault(); e.preventDefault();
closeTab(tab.tabid); closeTab(tab.tabid);

View File

@@ -68,7 +68,7 @@ export function AppObjectCore({
{...other} {...other}
> >
{prefix} {prefix}
<IconWrap>{isBusy ? <FontIcon icon="mdi mdi-loading mdi-spin" /> : <FontIcon icon={icon} />}</IconWrap> <IconWrap>{isBusy ? <FontIcon icon="icon loading" /> : <FontIcon icon={icon} />}</IconWrap>
{title} {title}
{statusIcon && ( {statusIcon && (
<StatusIconWrap> <StatusIconWrap>

View File

@@ -3,7 +3,7 @@ import { filterName } from '@dbgate/datalib';
const macroAppObject = () => ({ name, type, title, group }, { setOpenedTabs }) => { const macroAppObject = () => ({ name, type, title, group }, { setOpenedTabs }) => {
const key = name; const key = name;
const icon = 'mdi mdi-hammer-wrench'; const icon = 'img macro';
const matcher = (filter) => filterName(filter, name, title); const matcher = (filter) => filterName(filter, name, title);
const groupTitle = group; const groupTitle = group;

View File

@@ -6,12 +6,10 @@ import { openNewTab } from '../utility/common';
import { filterName } from '@dbgate/datalib'; import { filterName } from '@dbgate/datalib';
import axios from '../utility/axios'; import axios from '../utility/axios';
const archiveTableIcon = 'mdi mdi-table color-yellow-icon';
function openArchive(setOpenedTabs, fileName, folderName) { function openArchive(setOpenedTabs, fileName, folderName) {
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: fileName, title: fileName,
icon: archiveTableIcon, icon: 'img archive',
tooltip: `${folderName}\n${fileName}`, tooltip: `${folderName}\n${fileName}`,
tabComponent: 'ArchiveFileTab', tabComponent: 'ArchiveFileTab',
props: { props: {
@@ -34,7 +32,7 @@ function Menu({ data, setOpenedTabs }) {
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: data.fileName, title: data.fileName,
icon: archiveTableIcon, icon: 'img archive',
tabComponent: 'FreeTableTab', tabComponent: 'FreeTableTab',
props: { props: {
initialData: { initialData: {
@@ -61,7 +59,7 @@ function Menu({ data, setOpenedTabs }) {
const archiveFileAppObject = () => ({ fileName, folderName }, { setOpenedTabs }) => { const archiveFileAppObject = () => ({ fileName, folderName }, { setOpenedTabs }) => {
const key = fileName; const key = fileName;
const icon = archiveTableIcon; const icon = 'img archive';
const onClick = () => { const onClick = () => {
openArchive(setOpenedTabs, fileName, folderName); openArchive(setOpenedTabs, fileName, folderName);
}; };

View File

@@ -18,7 +18,7 @@ function Menu({ data, setOpenedTabs }) {
const archiveFolderAppObject = () => ({ name }, { setOpenedTabs, currentArchive }) => { const archiveFolderAppObject = () => ({ name }, { setOpenedTabs, currentArchive }) => {
const key = name; const key = name;
const icon = 'mdi mdi-database-outline color-green-icon'; const icon = 'img archive-folder';
const isBold = name == currentArchive; const isBold = name == currentArchive;
const matcher = (filter) => filterName(filter, name); const matcher = (filter) => filterName(filter, name);

View File

@@ -1,7 +1,7 @@
/** @param columnProps {import('@dbgate/types').ColumnInfo} */ /** @param columnProps {import('@dbgate/types').ColumnInfo} */
function getColumnIcon(columnProps) { function getColumnIcon(columnProps) {
if (columnProps.autoIncrement) return 'mdi mdi-numeric-1-box-multiple-outline'; if (columnProps.autoIncrement) return 'img autoincrement';
return 'mdi mdi-table-column'; return 'img column';
} }
/** @param columnProps {import('@dbgate/types').ColumnInfo} */ /** @param columnProps {import('@dbgate/types').ColumnInfo} */

View File

@@ -61,7 +61,7 @@ const connectionAppObject = (flags) => (
const title = displayName || server; const title = displayName || server;
const key = _id; const key = _id;
const isExpandable = openedConnections.includes(_id); const isExpandable = openedConnections.includes(_id);
const icon = 'mdi mdi-server color-blue-icon'; const icon = 'img server';
const matcher = (filter) => filterName(filter, displayName, server); const matcher = (filter) => filterName(filter, displayName, server);
const { boldCurrentDatabase } = flags || {}; const { boldCurrentDatabase } = flags || {};
const isBold = boldCurrentDatabase const isBold = boldCurrentDatabase
@@ -74,10 +74,10 @@ const connectionAppObject = (flags) => (
let statusIcon = null; let statusIcon = null;
let statusTitle = null; let statusTitle = null;
if (openedConnections.includes(_id)) { if (openedConnections.includes(_id)) {
if (!status) statusIcon = 'mdi mdi-loading mdi-spin'; if (!status) statusIcon = 'icon loading';
else if (status.name == 'pending') statusIcon = 'mdi mdi-loading mdi-spin'; else if (status.name == 'pending') statusIcon = 'icon loading';
else if (status.name == 'ok') statusIcon = 'mdi mdi-check-circle color-green'; else if (status.name == 'ok') statusIcon = 'img green-ok';
else statusIcon = 'mdi mdi-close-circle color-red'; else statusIcon = 'img red-error';
if (status && status.name == 'error') { if (status && status.name == 'error') {
statusTitle = status.message; statusTitle = status.message;
} }

View File

@@ -1,7 +1,7 @@
/** @param props {import('@dbgate/types').ConstraintInfo} */ /** @param props {import('@dbgate/types').ConstraintInfo} */
function getConstraintIcon(props) { function getConstraintIcon(props) {
if (props.constraintType == 'primaryKey') return 'mdi mdi-key-star color-yellow-icon'; if (props.constraintType == 'primaryKey') return 'img primary-key';
if (props.constraintType == 'foreignKey') return 'mdi mdi-key-link'; if (props.constraintType == 'foreignKey') return 'img foreign-key';
return null; return null;
} }

View File

@@ -11,7 +11,7 @@ function Menu({ data, setOpenedTabs, showModal }) {
const handleNewQuery = () => { const handleNewQuery = () => {
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: 'Query', title: 'Query',
icon: 'mdi mdi-file', icon: 'img sql-file',
tooltip, tooltip,
tabComponent: 'QueryTab', tabComponent: 'QueryTab',
props: { props: {
@@ -62,7 +62,7 @@ const databaseAppObject = (flags) => ({ name, connection }) => {
const { boldCurrentDatabase } = flags || {}; const { boldCurrentDatabase } = flags || {};
const title = name; const title = name;
const key = name; const key = name;
const icon = 'mdi mdi-database color-yellow-icon'; const icon = 'img database';
const isBold = boldCurrentDatabase const isBold = boldCurrentDatabase
? ({ currentDatabase }) => { ? ({ currentDatabase }) => {
return ( return (

View File

@@ -8,10 +8,10 @@ import { filterName } from '@dbgate/datalib';
import ImportExportModal from '../modals/ImportExportModal'; import ImportExportModal from '../modals/ImportExportModal';
const icons = { const icons = {
tables: 'mdi mdi-table color-blue-icon', tables: 'img table',
views: 'mdi mdi-table color-magenta-icon', views: 'img view',
procedures: 'mdi mdi-cog color-blue-icon', procedures: 'img procedure',
functions: 'mdi mdi-function-variant', functions: 'img function',
}; };
const menus = { const menus = {
@@ -101,7 +101,7 @@ export async function openDatabaseObjectDetail(
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: pureName, title: pureName,
tooltip, tooltip,
icon: sqlTemplate ? 'mdi mdi-file' : icons[objectTypeField], icon: sqlTemplate ? 'img sql-file' : icons[objectTypeField],
tabComponent: sqlTemplate ? 'QueryTab' : tabComponent, tabComponent: sqlTemplate ? 'QueryTab' : tabComponent,
props: { props: {
schemaName, schemaName,
@@ -138,7 +138,7 @@ function Menu({ data, makeAppObj, setOpenedTabs, showModal }) {
const coninfo = await getConnectionInfo(data); const coninfo = await getConnectionInfo(data);
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: data.pureName, title: data.pureName,
icon: 'mdi mdi-table color-green-icon', icon: 'img free-table',
tabComponent: 'FreeTableTab', tabComponent: 'FreeTableTab',
props: { props: {
initialData: { initialData: {

View File

@@ -16,7 +16,7 @@ function Menu({ data, setSavedSqlFiles }) {
const savedSqlFileAppObject = () => ({ name, storageKey }, { setOpenedTabs, newQuery, openedTabs }) => { const savedSqlFileAppObject = () => ({ name, storageKey }, { setOpenedTabs, newQuery, openedTabs }) => {
const key = storageKey; const key = storageKey;
const title = name; const title = name;
const icon = 'mdi mdi-file'; const icon = 'img sql-file';
const onClick = () => { const onClick = () => {
const existing = openedTabs.find((x) => x.props && x.props.storageKey == storageKey); const existing = openedTabs.find((x) => x.props && x.props.storageKey == storageKey);

View File

@@ -86,12 +86,12 @@ export default function ColumnHeaderControl({
<ColumnLabel {...column} /> <ColumnLabel {...column} />
{order == 'ASC' && ( {order == 'ASC' && (
<IconWrapper> <IconWrapper>
<FontIcon icon="mdi mdi-sort-alphabetical-ascending color-green" /> <FontIcon icon="img sort-asc" />
</IconWrapper> </IconWrapper>
)} )}
{order == 'DESC' && ( {order == 'DESC' && (
<IconWrapper> <IconWrapper>
<FontIcon icon="mdi mdi-sort-alphabetical-descending color-green" /> <FontIcon icon="img sort-desc" />
</IconWrapper> </IconWrapper>
)} )}
</LabelDiv> </LabelDiv>

View File

@@ -12,8 +12,8 @@ const Label = styled.span`
/** @param column {import('@dbgate/datalib').DisplayColumn|import('@dbgate/types').ColumnInfo} */ /** @param column {import('@dbgate/datalib').DisplayColumn|import('@dbgate/types').ColumnInfo} */
export default function ColumnLabel(column) { export default function ColumnLabel(column) {
let icon = null; let icon = null;
if (column.autoIncrement) icon = 'mdi mdi-numeric-1-box-multiple-outline'; if (column.autoIncrement) icon = 'img autoincrement';
if (column.foreignKey) icon = 'mdi mdi-key-link'; if (column.foreignKey) icon = 'img foreign-key';
return ( return (
<Label {...column}> <Label {...column}>
{icon ? <FontIcon icon={icon} /> : null} {column.headerText || column.columnName} {icon ? <FontIcon icon={icon} /> : null} {column.headerText || column.columnName}

View File

@@ -292,7 +292,7 @@ export default function DataFilterControl({
autocomplete="off" autocomplete="off"
/> />
<InlineButton buttonRef={buttonRef} onClick={handleShowMenu} square> <InlineButton buttonRef={buttonRef} onClick={handleShowMenu} square>
<FontIcon icon="mdi mdi-filter" /> <FontIcon icon="icon filter" />
</InlineButton> </InlineButton>
</FilterDiv> </FilterDiv>
); );

View File

@@ -322,7 +322,7 @@ export default function DataGridCore(props) {
const rows = getSelectedRowData().map((row) => _.pickBy(row, (v, col) => columns.find((x) => x.columnName == col))); const rows = getSelectedRowData().map((row) => _.pickBy(row, (v, col) => columns.find((x) => x.columnName == col)));
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: 'selection', title: 'selection',
icon: 'mdi mdi-table color-green-icon', icon: 'img free-table',
tabComponent: 'FreeTableTab', tabComponent: 'FreeTableTab',
props: { props: {
initialData: { initialData: {
@@ -972,7 +972,7 @@ export default function DataGridCore(props) {
> >
{filterCount > 0 && ( {filterCount > 0 && (
<InlineButton onClick={handleClearFilters} square> <InlineButton onClick={handleClearFilters} square>
<FontIcon icon="mdi mdi-filter-off" /> <FontIcon icon="icon filter-off" />
</InlineButton> </InlineButton>
)} )}
</TableHeaderCell> </TableHeaderCell>

View File

@@ -4,19 +4,19 @@ import ToolbarButton from '../widgets/ToolbarButton';
export default function DataGridToolbar({ reload, grider, save }) { export default function DataGridToolbar({ reload, grider, save }) {
return ( return (
<> <>
<ToolbarButton onClick={reload} icon="mdi mdi-reload"> <ToolbarButton onClick={reload} icon="icon reload">
Refresh Refresh
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!grider.canUndo} onClick={() => grider.undo()} icon="mdi mdi-undo"> <ToolbarButton disabled={!grider.canUndo} onClick={() => grider.undo()} icon="icon undo">
Undo Undo
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!grider.canRedo} onClick={() => grider.redo()} icon="mdi mdi-redo"> <ToolbarButton disabled={!grider.canRedo} onClick={() => grider.redo()} icon="icon redo">
Redo Redo
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!grider.allowSave} onClick={save} icon="mdi mdi-save"> <ToolbarButton disabled={!grider.allowSave} onClick={save} icon="icon save">
Save Save
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!grider.containsChanges} onClick={() => grider.revertAllChanges()} icon="mdi mdi-close"> <ToolbarButton disabled={!grider.containsChanges} onClick={() => grider.revertAllChanges()} icon="icon close">
Revert Revert
</ToolbarButton> </ToolbarButton>
</> </>

View File

@@ -30,13 +30,13 @@ export default function ReferenceHeader({ reference, onClose }) {
return ( return (
<Container> <Container>
<Header> <Header>
<FontIcon icon="mdi mdi-link-box" /> <FontIcon icon="img reference" />
<HeaderText> <HeaderText>
{reference.pureName} [{reference.columns.map((x) => x.refName).join(', ')}] = master [ {reference.pureName} [{reference.columns.map((x) => x.refName).join(', ')}] = master [
{reference.columns.map((x) => x.baseName).join(', ')}] {reference.columns.map((x) => x.baseName).join(', ')}]
</HeaderText> </HeaderText>
</Header> </Header>
<ToolbarButton icon="mdi mdi-close" onClick={onClose} patchY={6}> <ToolbarButton icon="icon close" onClick={onClose} patchY={6}>
Close Close
</ToolbarButton> </ToolbarButton>
</Container> </Container>

View File

@@ -64,7 +64,7 @@ export default function ReferenceManager(props) {
.map((fk) => ( .map((fk) => (
<ManagerRow <ManagerRow
key={fk.constraintName} key={fk.constraintName}
icon="mdi mdi-link" icon="img link"
tableName={fk.refTableName} tableName={fk.refTableName}
columns={fk.columns} columns={fk.columns}
onClick={() => onClick={() =>
@@ -89,7 +89,7 @@ export default function ReferenceManager(props) {
.map((fk) => ( .map((fk) => (
<ManagerRow <ManagerRow
key={fk.constraintName} key={fk.constraintName}
icon="mdi mdi-link-box" icon="img reference"
tableName={fk.pureName} tableName={fk.pureName}
columns={fk.columns} columns={fk.columns}
onClick={() => onClick={() =>

View File

@@ -83,7 +83,7 @@ export default function SqlDataGridCore(props) {
function openQuery() { function openQuery() {
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: 'Query', title: 'Query',
icon: 'mdi mdi-file', icon: 'img sql-file',
tabComponent: 'QueryTab', tabComponent: 'QueryTab',
props: { props: {
initialScript: display.getExportQuery(), initialScript: display.getExportQuery(),

View File

@@ -2,6 +2,7 @@ import _ from 'lodash';
import React from 'react'; import React from 'react';
import styled from 'styled-components'; import styled from 'styled-components';
import { ManagerInnerContainer } from '../datagrid/ManagerStyles'; import { ManagerInnerContainer } from '../datagrid/ManagerStyles';
import { FontIcon } from '../icons';
import keycodes from '../utility/keycodes'; import keycodes from '../utility/keycodes';
const Row = styled.div` const Row = styled.div`
@@ -22,7 +23,7 @@ const Name = styled.div`
const Buttons = styled.div` const Buttons = styled.div`
white-space: nowrap; white-space: nowrap;
`; `;
const Icon = styled.span` const Icon = styled(FontIcon)`
// margin-left: 5px; // margin-left: 5px;
position: relative; position: relative;
top: 5px; top: 5px;
@@ -100,10 +101,10 @@ function ColumnManagerRow({ column, onEdit, onRemove, onUp, onDown }) {
<Row onMouseEnter={() => setIsHover(true)} onMouseLeave={() => setIsHover(false)}> <Row onMouseEnter={() => setIsHover(true)} onMouseLeave={() => setIsHover(false)}>
<Name>{column.columnName}</Name> <Name>{column.columnName}</Name>
<Buttons> <Buttons>
<Icon className="mdi mdi-pencil" onClick={onEdit} /> <Icon icon="icon edit" onClick={onEdit} />
<Icon className="mdi mdi-delete" onClick={onRemove} /> <Icon icon="icon delete" onClick={onRemove} />
<Icon className="mdi mdi-arrow-up" onClick={onUp} /> <Icon icon="icon arrow-up" onClick={onUp} />
<Icon className="mdi mdi-arrow-down" onClick={onDown} /> <Icon icon="icon arrow-down" onClick={onDown} />
</Buttons> </Buttons>
</Row> </Row>
); );

View File

@@ -63,14 +63,14 @@ function MacroHeader({ selectedMacro, setSelectedMacro, onExecute }) {
return ( return (
<Container> <Container>
<Header> <Header>
<FontIcon icon="mdi mdi-hammer-wrench" /> <FontIcon icon="img macro" />
<HeaderText>{selectedMacro.title}</HeaderText> <HeaderText>{selectedMacro.title}</HeaderText>
</Header> </Header>
<Buttons> <Buttons>
<ToolbarButton icon="mdi mdi-play" onClick={onExecute} patchY={6}> <ToolbarButton icon="icon run" onClick={onExecute} patchY={6}>
Execute Execute
</ToolbarButton> </ToolbarButton>
<ToolbarButton icon="mdi mdi-close" onClick={() => setSelectedMacro(null)} patchY={6}> <ToolbarButton icon="icon close" onClick={() => setSelectedMacro(null)} patchY={6}>
Close Close
</ToolbarButton> </ToolbarButton>
</Buttons> </Buttons>

View File

@@ -8,7 +8,7 @@ export default function useNewFreeTable() {
return ({ title = undefined, ...props } = {}) => return ({ title = undefined, ...props } = {}) =>
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: title || 'Table', title: title || 'Table',
icon: 'mdi mdi-table color-green-icon', icon: 'img free-table',
tabComponent: 'FreeTableTab', tabComponent: 'FreeTableTab',
props, props,
}); });

View File

@@ -6,16 +6,73 @@ const iconNames = {
'icon plus-box': 'mdi mdi-plus-box-outline', 'icon plus-box': 'mdi mdi-plus-box-outline',
'icon invisible-box': 'mdi mdi-minus-box-outline icon-invisible', 'icon invisible-box': 'mdi mdi-minus-box-outline icon-invisible',
'icon cloud-upload': 'mdi mdi-cloud-upload', 'icon cloud-upload': 'mdi mdi-cloud-upload',
'icon import': 'mdi mdi-file-upload',
'icon new-connection': 'mdi mdi-database-plus',
'icon database': 'mdi mdi-database', 'icon database': 'mdi mdi-database',
'icon server': 'mdi mdi-server',
'icon table': 'mdi mdi-table',
'icon archive': 'mdi mdi-archive', 'icon archive': 'mdi mdi-archive',
'icon file': 'mdi mdi-file', 'icon file': 'mdi mdi-file',
'icon loading': 'mdi mdi-loading mdi-spin',
'icon close': 'mdi mdi-close',
'icon filter': 'mdi mdi-filter',
'icon filter-off': 'mdi mdi-filter-off',
'icon reload': 'mdi mdi-reload',
'icon undo': 'mdi mdi-undo',
'icon redo': 'mdi mdi-redo',
'icon save': 'mdi mdi-content-save',
'icon account': 'mdi mdi-account',
'icon sql-file': 'mdi mdi-file',
'icon edit': 'mdi mdi-pencil',
'icon delete': 'mdi mdi-delete',
'icon arrow-up': 'mdi mdi-arrow-up',
'icon arrow-down': 'mdi mdi-arrow-down',
'icon arrow-left': 'mdi mdi-arrow-left',
'icon arrow-right': 'mdi mdi-arrow-right',
'icon format-code': 'mdi mdi-code-tags-check',
'icon show-wizard': 'mdi mdi-comment-edit',
'icon disconnected': 'mdi mdi-lan-disconnect',
'icon run': 'mdi mdi-play',
'icon chevron-down': 'mdi mdi-chevron-down',
'img green-ok': 'mdi mdi-check-circle color-green',
'img alert': 'mdi mdi-alert-circle color-blue',
'img red-error': 'mdi mdi-close-circle color-red',
'img statusbar-ok': 'mdi mdi-check-circle color-on-statusbar-green',
'img archive': 'mdi mdi-table color-yellow-icon',
'img archive-folder': 'mdi mdi-database-outline color-green-icon',
'img autoincrement': 'mdi mdi-numeric-1-box-multiple-outline',
'img column': 'mdi mdi-table-column',
'img server': 'mdi mdi-server color-blue-icon',
'img primary-key': 'mdi mdi-key-star color-yellow-icon',
'img foreign-key': 'mdi mdi-key-link',
'img sql-file': 'mdi mdi-file',
'img shell': 'mdi mdi-flash color-blue-icon',
'img free-table': 'mdi mdi-table color-green-icon',
'img macro': 'mdi mdi-hammer-wrench',
'img database': 'mdi mdi-database color-yellow-icon',
'img table': 'mdi mdi-table color-blue-icon',
'img view': 'mdi mdi-table color-magenta-icon',
'img procedure': 'mdi mdi-cog color-blue-icon',
'img function': 'mdi mdi-function-variant',
'img sort-asc': 'mdi mdi-sort-alphabetical-ascending color-green',
'img sort-desc': 'mdi mdi-sort-alphabetical-descending color-green',
'img reference': 'mdi mdi-link-box',
'img link': 'mdi mdi-link',
}; };
export function FontIcon({ icon, className = '', ...other }) { export function FontIcon({ icon, className = '', ...other }) {
if (!icon) return null; if (!icon) return null;
let cls = icon; let cls = icon;
if (icon.startsWith('icon ')) { if (icon.startsWith('icon ') || icon.startsWith('img ')) {
cls = iconNames[icon]; cls = iconNames[icon];
if (!cls) return null; if (!cls) return null;
} }

View File

@@ -295,7 +295,7 @@ function SourceName({ name }) {
<SourceNameWrapper> <SourceNameWrapper>
<div>{name}</div> <div>{name}</div>
<TrashWrapper onClick={handleDelete}> <TrashWrapper onClick={handleDelete}>
<FontIcon icon="mdi mdi-delete" /> <FontIcon icon="icon delete" />
</TrashWrapper> </TrashWrapper>
</SourceNameWrapper> </SourceNameWrapper>
); );
@@ -353,7 +353,7 @@ export default function ImportExportConfigurator({ uploadedFile = undefined }) {
engine={sourceEngine} engine={sourceEngine}
/> />
<ArrowWrapper> <ArrowWrapper>
<FontIcon icon="mdi mdi-arrow-right" /> <FontIcon icon="icon arrow-right" />
</ArrowWrapper> </ArrowWrapper>
<SourceTargetConfig <SourceTargetConfig
direction="target" direction="target"

View File

@@ -24,7 +24,7 @@ export default function ErrorMessageModal({ modalState, title = 'Error', message
<ModalContent> <ModalContent>
<Wrapper> <Wrapper>
<IconWrapper> <IconWrapper>
<FontIcon icon="mdi mdi-close-circle color-red" /> <FontIcon icon="img red-error" />
</IconWrapper> </IconWrapper>
{message} {message}
</Wrapper> </Wrapper>

View File

@@ -90,7 +90,7 @@ function GenerateSctriptButton({ modalState }) {
const code = await createImpExpScript(values); const code = await createImpExpScript(values);
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: 'Shell', title: 'Shell',
icon: 'mdi mdi-flash color-blue-icon', icon: 'img shell',
tabComponent: 'ShellTab', tabComponent: 'ShellTab',
props: { props: {
initialScript: code, initialScript: code,

View File

@@ -24,7 +24,7 @@ export default function ModalHeader({ children, modalState }) {
<Wrapper> <Wrapper>
<div>{children}</div> <div>{children}</div>
<CloseWrapper onClick={modalState.close}> <CloseWrapper onClick={modalState.close}>
<FontIcon icon="mdi mdi-close" /> <FontIcon icon="icon close" />
</CloseWrapper> </CloseWrapper>
</Wrapper> </Wrapper>
); );

View File

@@ -4,19 +4,19 @@ import ToolbarButton from '../widgets/ToolbarButton';
export default function QueryToolbar({ execute, cancel, isDatabaseDefined, busy, save, format, isConnected, kill }) { export default function QueryToolbar({ execute, cancel, isDatabaseDefined, busy, save, format, isConnected, kill }) {
return ( return (
<> <>
<ToolbarButton disabled={!isDatabaseDefined || busy} onClick={execute} icon="mdi mdi-play"> <ToolbarButton disabled={!isDatabaseDefined || busy} onClick={execute} icon="icon run">
Execute Execute
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!busy} onClick={cancel} icon="mdi mdi-close"> <ToolbarButton disabled={!busy} onClick={cancel} icon="icon close">
Cancel Cancel
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!isConnected} onClick={kill} icon="mdi mdi-close"> <ToolbarButton disabled={!isConnected} onClick={kill} icon="icon close">
Kill Kill
</ToolbarButton> </ToolbarButton>
<ToolbarButton onClick={save} icon="mdi mdi-save"> <ToolbarButton onClick={save} icon="icon save">
Save Save
</ToolbarButton> </ToolbarButton>
<ToolbarButton onClick={format} icon="mdi mdi-code-tags-check"> <ToolbarButton onClick={format} icon="icon format-code">
Format Format
</ToolbarButton> </ToolbarButton>
</> </>

View File

@@ -4,13 +4,13 @@ import ToolbarButton from '../widgets/ToolbarButton';
export default function ShellToolbar({ execute, cancel, busy, edit, editAvailable }) { export default function ShellToolbar({ execute, cancel, busy, edit, editAvailable }) {
return ( return (
<> <>
<ToolbarButton disabled={busy} onClick={execute} icon="mdi mdi-play"> <ToolbarButton disabled={busy} onClick={execute} icon="icon run">
Execute Execute
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!busy} onClick={cancel} icon="mdi mdi-close"> <ToolbarButton disabled={!busy} onClick={cancel} icon="icon close">
Cancel Cancel
</ToolbarButton> </ToolbarButton>
<ToolbarButton disabled={!editAvailable} onClick={edit} icon="mdi mdi-comment-edit"> <ToolbarButton disabled={!editAvailable} onClick={edit} icon="icon show-wizard">
Show wizard Show wizard
</ToolbarButton> </ToolbarButton>
</> </>

View File

@@ -14,7 +14,7 @@ export default function useNewQuery() {
return ({ title = undefined, ...props } = {}) => return ({ title = undefined, ...props } = {}) =>
openNewTab(setOpenedTabs, { openNewTab(setOpenedTabs, {
title: title || 'Query', title: title || 'Query',
icon: 'mdi mdi-file', icon: 'img sql-file',
tooltip, tooltip,
tabComponent: 'QueryTab', tabComponent: 'QueryTab',
props: { props: {

View File

@@ -126,7 +126,7 @@ function SqlObjectListWrapper() {
const db = useCurrentDatabase(); const db = useCurrentDatabase();
if (!db) { if (!db) {
return <ErrorInfo message="Database not selected" icon="mdi mdi-alert-circle color-blue" />; return <ErrorInfo message="Database not selected" icon="img alert" />;
} }
const { name, connection } = db; const { name, connection } = db;

View File

@@ -13,7 +13,7 @@ export default function DropDownButton({ children }) {
return ( return (
<InlineButton buttonRef={buttonRef} onClick={handleShowMenu} square> <InlineButton buttonRef={buttonRef} onClick={handleShowMenu} square>
<FontIcon icon="mdi mdi-chevron-down" /> <FontIcon icon="icon chevron-down" />
</InlineButton> </InlineButton>
); );
} }

View File

@@ -19,7 +19,7 @@ const ContainerSmall = styled.div`
margin-right: 10px; margin-right: 10px;
`; `;
export default function ErrorInfo({ message, icon = 'mdi mdi-close-circle color-red', isSmall = false }) { export default function ErrorInfo({ message, icon = 'img red-error', isSmall = false }) {
if (isSmall) { if (isSmall) {
return ( return (
<ContainerSmall> <ContainerSmall>

View File

@@ -34,7 +34,7 @@ export default function LoadingInfo({ message, wrapper = false }) {
const core = ( const core = (
<Container> <Container>
<Spinner> <Spinner>
<FontIcon icon="mdi mdi-loading mdi-spin" /> <FontIcon icon="icon loading" />
</Spinner> </Spinner>
{message} {message}
</Container> </Container>

View File

@@ -25,18 +25,18 @@ export default function StatusBar() {
<Container> <Container>
{name && ( {name && (
<Item> <Item>
<FontIcon icon="mdi mdi-database" /> {name} <FontIcon icon="icon database" /> {name}
</Item> </Item>
)} )}
{(displayName || server) && ( {(displayName || server) && (
<Item> <Item>
<FontIcon icon='mdi mdi-server'/> {displayName || server} <FontIcon icon="icon server" /> {displayName || server}
</Item> </Item>
)} )}
{user && ( {user && (
<Item> <Item>
<FontIcon icon="mdi mdi-account" /> {user} <FontIcon icon="icon account" /> {user}
</Item> </Item>
)} )}
@@ -44,17 +44,17 @@ export default function StatusBar() {
<Item> <Item>
{status.name == 'pending' && ( {status.name == 'pending' && (
<> <>
<FontIcon icon="mdi mdi-loading mdi-spin" /> Loading <FontIcon icon="icon loading" /> Loading
</> </>
)} )}
{status.name == 'ok' && ( {status.name == 'ok' && (
<> <>
<FontIcon icon="mdi mdi-check-circle color-on-statusbar-green" /> Connected <FontIcon icon="img statusbar-ok" /> Connected
</> </>
)} )}
{status.name == 'error' && ( {status.name == 'error' && (
<> <>
<FontIcon icon="mdi mdi-close-circle color-red" /> Error <FontIcon icon="img red-error" /> Error
</> </>
)} )}
</Item> </Item>
@@ -62,7 +62,7 @@ export default function StatusBar() {
{!connection && ( {!connection && (
<Item> <Item>
<> <>
<FontIcon icon="mdi mdi-lan-disconnect" /> Not connected <FontIcon icon="icon disconnected" /> Not connected
</> </>
</Item> </Item>
)} )}

View File

@@ -87,17 +87,17 @@ export default function ToolBar({ toolbarPortalRef }) {
</ToolbarButton> </ToolbarButton>
))} ))}
{config.runAsPortal == false && ( {config.runAsPortal == false && (
<ToolbarButton onClick={modalState.open} icon="mdi mdi-database-plus"> <ToolbarButton onClick={modalState.open} icon="icon new-connection">
Add connection Add connection
</ToolbarButton> </ToolbarButton>
)} )}
<ToolbarButton onClick={newQuery} icon="mdi mdi-file"> <ToolbarButton onClick={newQuery} icon="icon sql-file">
New Query New Query
</ToolbarButton> </ToolbarButton>
<ToolbarButton onClick={newFreeTable} icon="mdi mdi-table"> <ToolbarButton onClick={newFreeTable} icon="icon table">
Free table editor Free table editor
</ToolbarButton> </ToolbarButton>
<ToolbarButton onClick={showImport} icon="mdi mdi-file-upload"> <ToolbarButton onClick={showImport} icon="icon import">
Import data Import data
</ToolbarButton> </ToolbarButton>

View File

@@ -22,7 +22,7 @@ const IconWrapper = styled.div`
export default function WidgetIconPanel() { export default function WidgetIconPanel() {
const widgets = [ const widgets = [
{ {
icon: 'mdi mdi-database', icon: 'icon database',
name: 'database', name: 'database',
title: 'Database connections', title: 'Database connections',
}, },
@@ -31,12 +31,12 @@ export default function WidgetIconPanel() {
// name: 'table', // name: 'table',
// }, // },
{ {
icon: 'mdi mdi-file', icon: 'icon file',
name: 'file', name: 'file',
title: 'Closed tabs & Saved SQL files', title: 'Closed tabs & Saved SQL files',
}, },
{ {
icon: 'mdi mdi-archive', icon: 'icon archive',
name: 'archive', name: 'archive',
title: 'Archive (saved tabular data)', title: 'Archive (saved tabular data)',
}, },