mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 07:16:01 +00:00
fixed race conditions when starting app
This commit is contained in:
@@ -1,25 +1,47 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
import CommandListener from './commands/CommandListener.svelte';
|
||||
import DataGridRowHeightMeter from './datagrid/DataGridRowHeightMeter.svelte';
|
||||
import LoadingInfo from './elements/LoadingInfo.svelte';
|
||||
|
||||
import PluginsProvider from './plugins/PluginsProvider.svelte';
|
||||
import Screen from './Screen.svelte';
|
||||
import { setAppLoaded } from './utility/appLoadManager';
|
||||
import axiosInstance from './utility/axiosInstance';
|
||||
import ErrorHandler from './utility/ErrorHandler.svelte';
|
||||
import { useSettings } from './utility/metadataLoaders';
|
||||
import OpenTabsOnStartup from './utility/OpenTabsOnStartup.svelte';
|
||||
|
||||
const settings = useSettings();
|
||||
let loaded = false;
|
||||
|
||||
async function loadSettings() {
|
||||
try {
|
||||
const settings = await axiosInstance.get('config/get-settings');
|
||||
const connections = await axiosInstance.get('connections/list');
|
||||
const config = await axiosInstance.get('config/get');
|
||||
loaded = settings?.data && connections?.data && config?.data;
|
||||
if (loaded) {
|
||||
setAppLoaded();
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('Error loading settings, trying again in 1s');
|
||||
setTimeout(loadSettings, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
onMount(loadSettings);
|
||||
|
||||
</script>
|
||||
|
||||
<DataGridRowHeightMeter />
|
||||
<ErrorHandler />
|
||||
<PluginsProvider />
|
||||
<CommandListener />
|
||||
<OpenTabsOnStartup />
|
||||
|
||||
{#if $settings}
|
||||
{#if loaded}
|
||||
<PluginsProvider />
|
||||
<OpenTabsOnStartup />
|
||||
|
||||
<Screen />
|
||||
{:else}
|
||||
<LoadingInfo message="Loading settings..." wrapper />
|
||||
<LoadingInfo message="Starting DbGate API..." wrapper />
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user