server connections handling

This commit is contained in:
Jan Prochazka
2020-05-01 11:41:18 +02:00
parent 44c19ad277
commit ca7eea8a05
11 changed files with 284 additions and 71 deletions

View 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;
}

View File

@@ -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 };

View File

@@ -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, {});
}