From 65aa8fb4e3b5ddf8cd3c52bf2451f22061352bbd Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Mon, 8 Aug 2022 19:37:40 +0200 Subject: [PATCH] fixed multi - database structure store --- .../src/utility/useMultipleDatabaseInfo.ts | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/packages/web/src/utility/useMultipleDatabaseInfo.ts b/packages/web/src/utility/useMultipleDatabaseInfo.ts index 819963428..10c6ff1a8 100644 --- a/packages/web/src/utility/useMultipleDatabaseInfo.ts +++ b/packages/web/src/utility/useMultipleDatabaseInfo.ts @@ -1,19 +1,24 @@ -import { Readable, writable } from 'svelte/store'; -import { getDatabaseInfo } from './metadataLoaders'; +import { derived, Readable } from 'svelte/store'; +import { useDatabaseInfo } from './metadataLoaders'; import { MultipleDatabaseInfo } from 'dbgate-datalib'; export function useMultipleDatabaseInfo(dbs: { conid: string; database: string }[]): Readable { - const res = writable({}); - for (const { conid, database } of dbs) { - getDatabaseInfo({ conid, database }).then(dbInfo => { - res.update(old => ({ - ...old, - [conid]: { - ...old[conid], - [database]: dbInfo, - }, - })); - }); - } - return res; + return derived( + dbs.map(db => useDatabaseInfo(db)), + values => { + let res = {}; + for (let i = 0; i < dbs.length; i++) { + const { conid, database } = dbs[i]; + const dbInfo = values[i]; + res = { + ...res, + [conid]: { + ...res[conid], + [database]: dbInfo, + }, + }; + } + return res; + } + ); }