mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-21 17:36:01 +00:00
server connections handling
This commit is contained in:
14
packages/web/src/utility/OpnedConnectionsPinger.js
Normal file
14
packages/web/src/utility/OpnedConnectionsPinger.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import React from 'react';
|
||||
import { useOpenedConnections } from './globalState';
|
||||
import axios from './axios';
|
||||
|
||||
export default function OpenedConnectionsPinger({ children }) {
|
||||
const openedConnections = useOpenedConnections();
|
||||
React.useEffect(() => {
|
||||
const handle = window.setInterval(() => {
|
||||
axios.post('server-connections/ping', { connections: openedConnections });
|
||||
}, 30 * 1000);
|
||||
return () => window.clearInterval(handle);
|
||||
}, [openedConnections]);
|
||||
return children;
|
||||
}
|
||||
@@ -84,15 +84,23 @@ export function useAppObjectParams() {
|
||||
const newQuery = useNewQuery();
|
||||
const openedTabs = useOpenedTabs();
|
||||
const setSavedSqlFiles = useSetSavedSqlFiles();
|
||||
|
||||
const openedConnections = useOpenedConnections();
|
||||
const setOpenedConnections = useSetOpenedConnections();
|
||||
|
||||
return {
|
||||
setOpenedTabs,
|
||||
currentDatabase,
|
||||
newQuery,
|
||||
openedTabs,
|
||||
setSavedSqlFiles,
|
||||
openedConnections,
|
||||
setOpenedConnections,
|
||||
};
|
||||
}
|
||||
|
||||
const [SavedSqlFilesProvider, useSavedSqlFiles, useSetSavedSqlFiles] = createStorageState('savedSqlFiles', []);
|
||||
export { SavedSqlFilesProvider, useSavedSqlFiles, useSetSavedSqlFiles };
|
||||
|
||||
const [OpenedConnectionsProvider, useOpenedConnections, useSetOpenedConnections] = createGlobalState([]);
|
||||
|
||||
export { OpenedConnectionsProvider, useOpenedConnections, useSetOpenedConnections };
|
||||
|
||||
@@ -33,6 +33,12 @@ const databaseListLoader = ({ conid }) => ({
|
||||
reloadTrigger: `database-list-changed-${conid}`,
|
||||
});
|
||||
|
||||
const serverStatusLoader = () => ({
|
||||
url: 'server-connections/server-status',
|
||||
params: {},
|
||||
reloadTrigger: `server-status-changed`,
|
||||
});
|
||||
|
||||
const connectionListLoader = () => ({
|
||||
url: 'connections/list',
|
||||
params: {},
|
||||
@@ -126,6 +132,13 @@ export function useDatabaseList(args) {
|
||||
return useCore(databaseListLoader, args);
|
||||
}
|
||||
|
||||
export function getServerStatus() {
|
||||
return getCore(serverStatusLoader, {});
|
||||
}
|
||||
export function useServerStatus() {
|
||||
return useCore(serverStatusLoader, {});
|
||||
}
|
||||
|
||||
export function getConnectionList() {
|
||||
return getCore(connectionListLoader, {});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user