diff --git a/packages/web/src/widgets/DatabaseWidget.js b/packages/web/src/widgets/DatabaseWidget.js
index a17fe43d8..0f8af0c26 100644
--- a/packages/web/src/widgets/DatabaseWidget.js
+++ b/packages/web/src/widgets/DatabaseWidget.js
@@ -16,18 +16,15 @@ import {
useDatabaseInfo,
useConfig,
} from '../utility/metadataLoaders';
-import {
- SearchBoxWrapper,
- WidgetsInnerContainer,
- WidgetsMainContainer,
- WidgetsOuterContainer,
- WidgetTitle,
-} from './WidgetStyles';
+import { SearchBoxWrapper, WidgetsInnerContainer } from './WidgetStyles';
import axios from '../utility/axios';
import LoadingInfo from './LoadingInfo';
import SearchInput from './SearchInput';
import ErrorInfo from './ErrorInfo';
import WidgetColumnBar, { WidgetColumnBarItem } from './WidgetColumnBar';
+import ToolbarButton from './ToolbarButton';
+import useShowModal from '../modals/showModal';
+import ConnectionModal from '../modals/ConnectionModal';
function SubDatabaseList({ data }) {
const setDb = useSetCurrentDatabase();
@@ -57,6 +54,7 @@ function ConnectionList() {
connections && serverStatus
? connections.map((conn) => ({ ...conn, status: serverStatus[conn._id] }))
: connections;
+ const showModal = useShowModal();
const handleRefreshConnections = () => {
for (const conid of openedConnections) {
@@ -64,6 +62,10 @@ function ConnectionList() {
}
};
+ const showNewConnection = () => {
+ showModal((modalState) => );
+ };
+
const [filter, setFilter] = React.useState('');
return (
<>
@@ -83,6 +85,11 @@ function ConnectionList() {
filter={filter}
isExpandable={(data) => openedConnections.includes(data._id)}
/>
+ {connections && connections.length == 0 && (
+
+ Add new connection
+
+ )}
>
);
diff --git a/packages/web/src/widgets/Toolbar.js b/packages/web/src/widgets/Toolbar.js
index 551488b0c..b63ed9afe 100644
--- a/packages/web/src/widgets/Toolbar.js
+++ b/packages/web/src/widgets/Toolbar.js
@@ -32,7 +32,6 @@ const ToolbarContainer = styled.div`
`;
export default function ToolBar({ toolbarPortalRef }) {
- const modalState = useModalState();
const newQuery = useNewQuery();
const newQueryDesign = useNewQueryDesign();
const newFreeTable = useNewFreeTable();
@@ -53,7 +52,9 @@ export default function ToolBar({ toolbarPortalRef }) {
const currentTab = openedTabs.find((x) => x.selected);
React.useEffect(() => {
- window['dbgate_createNewConnection'] = modalState.open;
+ if (config.runAsPortal == false) {
+ window['dbgate_createNewConnection'] = showNewConnection;
+ }
window['dbgate_newQuery'] = newQuery;
window['dbgate_closeAll'] = () => setOpenedTabs([]);
window['dbgate_showAbout'] = showAbout;
@@ -79,6 +80,10 @@ export default function ToolBar({ toolbarPortalRef }) {
));
};
+ const showNewConnection = () => {
+ showModal((modalState) => );
+ };
+
const switchTheme = () => {
if (currentTheme == 'light') setCurrentTheme('dark');
else setCurrentTheme('light');
@@ -131,7 +136,6 @@ export default function ToolBar({ toolbarPortalRef }) {
return (
- {!!modalState.isOpen && }
{!electron && (
))}
- {config.runAsPortal == false && Connection}
+ {config.runAsPortal == false && (
+ Connection
+ )}
newQuery()}>SQL query
{!!currentDatabase && newQueryDesign()}>Query designer}
newFreeTable()}>Free table editor