diff --git a/packages/web/src/datagrid/ColumnHeaderControl.js b/packages/web/src/datagrid/ColumnHeaderControl.js
index 10bd77e69..a7440069f 100644
--- a/packages/web/src/datagrid/ColumnHeaderControl.js
+++ b/packages/web/src/datagrid/ColumnHeaderControl.js
@@ -8,6 +8,7 @@ import { isTypeDateTime } from '@dbgate/tools';
import { openDatabaseObjectDetail } from '../appobj/databaseObjectAppObject';
import { useSetOpenedTabs } from '../utility/globalState';
import { FontIcon } from '../icons';
+import useTheme from '../theme/useTheme';
const HeaderDiv = styled.div`
display: flex;
@@ -28,7 +29,7 @@ const IconWrapper = styled.span`
`;
const ResizeHandle = styled.div`
- background-color: #ccc;
+ background-color: ${(props) => props.theme.border};
width: 2px;
cursor: col-resize;
z-index: 1;
@@ -52,6 +53,7 @@ export default function ColumnHeaderControl({
const onResizeDown = useSplitterDrag('clientX', onResize);
const { foreignKey } = column;
const setOpenedTabs = useSetOpenedTabs();
+ const theme = useTheme();
const openReferencedTable = () => {
openDatabaseObjectDetail(setOpenedTabs, 'TableDataTab', null, {
@@ -125,7 +127,7 @@ export default function ColumnHeaderControl({
)}
)}
-
+
);
}
diff --git a/packages/web/src/datagrid/DataGridCore.js b/packages/web/src/datagrid/DataGridCore.js
index fc8435553..b80701ebf 100644
--- a/packages/web/src/datagrid/DataGridCore.js
+++ b/packages/web/src/datagrid/DataGridCore.js
@@ -64,7 +64,7 @@ const TableHeaderRow = styled.tr`
`;
const TableHeaderCell = styled.td`
// font-weight: bold;
- border: 1px solid #c0c0c0;
+ border: 1px solid ${(props) => props.theme.border};
// border-collapse: collapse;
text-align: left;
padding: 0;
@@ -970,6 +970,7 @@ export default function DataGridCore(props) {
{display.filterable && (
props.theme.gridheader_background_cyan[0]};
height: ${dimensions.toolBar.height}px;
min-height: ${dimensions.toolBar.height}px;
overflow: hidden;
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
+ border-top: 1px solid ${(props) => props.theme.border};
+ border-bottom: 1px solid ${(props) => props.theme.border};
`;
const Header = styled.div`
@@ -27,8 +28,9 @@ const HeaderText = styled.div`
`;
export default function ReferenceHeader({ reference, onClose }) {
+ const theme = useTheme();
return (
-
+
diff --git a/packages/web/src/datagrid/ReferenceManager.js b/packages/web/src/datagrid/ReferenceManager.js
index 00a42f4c7..f556111de 100644
--- a/packages/web/src/datagrid/ReferenceManager.js
+++ b/packages/web/src/datagrid/ReferenceManager.js
@@ -4,6 +4,7 @@ import { ManagerInnerContainer } from './ManagerStyles';
import SearchInput from '../widgets/SearchInput';
import { filterName } from '@dbgate/datalib';
import { FontIcon } from '../icons';
+import useTheme from '../theme/useTheme';
const SearchBoxWrapper = styled.div`
display: flex;
@@ -16,7 +17,7 @@ const Header = styled.div`
`;
const LinkContainer = styled.div`
- color: #337ab7;
+ color: ${props=>props.theme.manager_font_blue[7]};
margin: 5px;
&:hover {
text-decoration: underline;
@@ -32,8 +33,9 @@ const NameContainer = styled.div`
`;
function ManagerRow({ tableName, columns, icon, onClick }) {
+ const theme = useTheme();
return (
-
+
{tableName} ({columns.map((x) => x.columnName).join(', ')})
diff --git a/packages/web/src/freetable/MacroDetail.js b/packages/web/src/freetable/MacroDetail.js
index a75034653..4237eaaf8 100644
--- a/packages/web/src/freetable/MacroDetail.js
+++ b/packages/web/src/freetable/MacroDetail.js
@@ -9,6 +9,7 @@ import { WidgetTitle } from '../widgets/WidgetStyles';
import { FormButton } from '../utility/forms';
import FormStyledButton from '../widgets/FormStyledButton';
import { FontIcon } from '../icons';
+import useTheme from '../theme/useTheme';
const Container = styled.div`
display: flex;
@@ -18,8 +19,8 @@ const Container = styled.div`
height: ${dimensions.toolBar.height}px;
min-height: ${dimensions.toolBar.height}px;
overflow: hidden;
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
+ border-top: 1px solid ${(props) => props.theme.border};
+ border-bottom: 1px solid ${(props) => props.theme.border};
`;
const Header = styled.div`
@@ -60,8 +61,9 @@ const Buttons = styled.div`
`;
function MacroHeader({ selectedMacro, setSelectedMacro, onExecute }) {
+ const theme = useTheme();
return (
-
+
{selectedMacro.title}
diff --git a/packages/web/src/impexp/ImportExportConfigurator.js b/packages/web/src/impexp/ImportExportConfigurator.js
index dea06217b..8871f096a 100644
--- a/packages/web/src/impexp/ImportExportConfigurator.js
+++ b/packages/web/src/impexp/ImportExportConfigurator.js
@@ -44,7 +44,7 @@ const Column = styled.div`
const Label = styled.div`
margin: 5px;
margin-top: 15px;
- color: #777;
+ color: ${(props) => props.theme.modal_font2};
`;
const SourceNameWrapper = styled.div`
@@ -54,10 +54,10 @@ const SourceNameWrapper = styled.div`
const TrashWrapper = styled.div`
&:hover {
- background-color: #ccc;
+ background-color: ${(props) => props.theme.modal_background2};
}
cursor: pointer;
- color: blue;
+ color: ${(props) => props.theme.modal_font_blue[7]};
`;
const SqlWrapper = styled.div`
@@ -170,6 +170,7 @@ function SourceTargetConfig({
tablesField = undefined,
engine = undefined,
}) {
+ const theme = useTheme();
const { values, setFieldValue } = useFormikContext();
const types =
values[storageTypeField] == 'jsldata'
@@ -187,24 +188,24 @@ function SourceTargetConfig({
const archiveFiles = useArchiveFiles({ folder: values[archiveFolderField] });
return (
- {direction == 'source' && }
- {direction == 'target' && }
+ {direction == 'source' && }
+ {direction == 'target' && }
x.directions.includes(direction))} name={storageTypeField} />
{(storageType == 'database' || storageType == 'query') && (
<>
-
+
-
+
>
)}
{storageType == 'database' && (
<>
-
+
{tablesField && (
<>
-
+
-
+
-
+
>
)}
{storageType == 'archive' && direction == 'source' && (
<>
-
+
{
setFieldValue(
'sourceList',
@@ -296,7 +298,7 @@ function SourceName({ name }) {
return (
{name}
-
+
diff --git a/packages/web/src/modals/ImportExportModal.js b/packages/web/src/modals/ImportExportModal.js
index b355d0f0a..040917222 100644
--- a/packages/web/src/modals/ImportExportModal.js
+++ b/packages/web/src/modals/ImportExportModal.js
@@ -43,7 +43,7 @@ const WidgetColumnWrapper = styled.div`
display: flex;
flex: 1;
overflow: hidden;
- border-left: 1px solid #ccc;
+ border-left: 1px solid ${(props) => props.theme.border};
`;
const StyledForm = styled(Form)`
@@ -58,9 +58,7 @@ const StyledForm = styled(Form)`
`;
const ContentWrapper = styled.div`
- // border-bottom: 1px solid #ccc;
- border-top: 1px solid #ccc;
- // padding: 15px;
+ border-top: 1px solid ${(props) => props.theme.border};
flex: 1;
display: flex;
flex-direction: column;
@@ -135,10 +133,10 @@ export default function ImportExportModal({ modalState, initialValues, uploadedF
Import/Export
-
+
-
+
{/*
Preview
diff --git a/packages/web/src/modals/ModalContent.js b/packages/web/src/modals/ModalContent.js
index 815c28ba0..c02b20356 100644
--- a/packages/web/src/modals/ModalContent.js
+++ b/packages/web/src/modals/ModalContent.js
@@ -1,12 +1,14 @@
import React from 'react';
import styled from 'styled-components';
+import useTheme from '../theme/useTheme';
const Wrapper = styled.div`
- border-bottom: 1px solid #ccc;
- border-top: 1px solid #ccc;
+ border-bottom: 1px solid ${(props) => props.theme.border};
+ border-top: 1px solid ${(props) => props.theme.border};
padding: 15px;
`;
export default function ModalContent({ children }) {
- return {children};
+ const theme = useTheme();
+ return {children};
}
diff --git a/packages/web/src/modals/ModalFooter.js b/packages/web/src/modals/ModalFooter.js
index 4cb68b928..ddc6bec1d 100644
--- a/packages/web/src/modals/ModalFooter.js
+++ b/packages/web/src/modals/ModalFooter.js
@@ -3,7 +3,7 @@ import styled from 'styled-components';
import useTheme from '../theme/useTheme';
const Wrapper = styled.div`
- border-bottom: 1px solid #ccc;
+ border-bottom: 1px solid ${(props) => props.theme.border};
padding: 15px;
background-color: ${(props) => props.theme.modalheader_background};
`;
diff --git a/packages/web/src/theme/dark.js b/packages/web/src/theme/dark.js
index 4a5c76020..1eba21806 100644
--- a/packages/web/src/theme/dark.js
+++ b/packages/web/src/theme/dark.js
@@ -18,15 +18,16 @@ const theme = {
widget_background: '#222',
title_background: '#555',
manager_background: '#000',
- tabs_background: '#444',
+ tabs_background: '#111',
gridheader_background: '#222',
gridbody_background: '#000',
scrollbar_background: '#444',
input_background: '#333',
modal_background: '#222',
modalheader_background: '#555',
- button_background: '#337ab7',
+ button_background: '#004488',
statusbar_background: '#00c',
+ inlinebtn_background: '#222',
};
export default fillTheme(theme);
diff --git a/packages/web/src/theme/light.js b/packages/web/src/theme/light.js
index aa266aa5b..f49a3e83d 100644
--- a/packages/web/src/theme/light.js
+++ b/packages/web/src/theme/light.js
@@ -26,6 +26,7 @@ const theme = {
modalheader_background: '#eff',
button_background: '#337ab7',
statusbar_background: '#00c',
+ inlinebtn_background: '#ededed',
};
export default fillTheme(theme);
diff --git a/packages/web/src/widgets/InlineButton.js b/packages/web/src/widgets/InlineButton.js
index daf98a7bf..426e706ac 100644
--- a/packages/web/src/widgets/InlineButton.js
+++ b/packages/web/src/widgets/InlineButton.js
@@ -1,36 +1,38 @@
// @ts-nocheck
import React from 'react';
import styled from 'styled-components';
+import useTheme from '../theme/useTheme';
const ButtonDiv = styled.div`
- //box-shadow: 3px 4px 0px 0px #899599;
- background: linear-gradient(to bottom, #ededed 5%, #bab1ba 100%);
- background-color: #ededed;
- //border-radius: 15px;
- border: 1px solid #bbb;
+ background: linear-gradient(
+ to bottom,
+ ${(props) => props.theme.inlinebtn_background} 5%,
+ ${(props) => props.theme.inlinebtn_background3} 100%
+ );
+ background-color: ${(props) => props.theme.inlinebtn_background};
+ border: 1px solid ${(props) => props.theme.inlinebtn_background3};
display: inline-block;
cursor: pointer;
- // color: #3a8a9e;
- // color: gray;
- // font-family: Arial;
vertical-align: middle;
- color: black;
+ color: ${(props) => props.theme.inlinebtn_font1};;
font-size: 12px;
padding: 3px;
margin: 0;
- // padding: 7px 25px;
text-decoration: none;
- // text-shadow: 0px 1px 0px #e1e2ed;
&:hover {
- border: 1px solid #777;
+ border: 1px solid ${(props) => props.theme.inlinebtn_font2};
}
&:active:hover {
- background: linear-gradient(to bottom, #bab1ba 5%, #ededed 100%);
- background-color: #bab1ba;
+ background: linear-gradient(
+ to bottom,
+ ${(props) => props.theme.inlinebtn_background3} 5%,
+ ${(props) => props.theme.inlinebtn_background} 100%
+ );
+ background-color: ${(props) => props.theme.inlinebtn_background3};
}
display: flex;
- ${props =>
+ ${(props) =>
props.square &&
`
width: 18px;
@@ -43,25 +45,6 @@ const InnerDiv = styled.div`
text-align: center;
`;
-// ${props =>
-// !props.disabled &&
-// `
-// &:hover {
-// background-color: #286090;
-// }
-
-// &:active:hover {
-// background-color: #204d74;
-// }
-// `}
-
-// ${props =>
-// props.disabled &&
-// `
-// background-color: #ccc;
-// color: gray;
-// `}
-
export default function InlineButton({
children,
onClick = undefined,
@@ -69,6 +52,7 @@ export default function InlineButton({
disabled = undefined,
square = false,
}) {
+ const theme = useTheme();
return (
{children}