fixed race conditions when starting app

This commit is contained in:
Jan Prochazka
2021-05-17 17:42:53 +02:00
parent e44a95d723
commit 9d933d669a
4 changed files with 66 additions and 14 deletions

View File

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