Fix exchange summary (#1611)

* Fix exchange summary

* Better loading bar placement

* Fix loading coordinators calc
This commit is contained in:
KoalaSat 2024-11-24 07:35:00 +00:00 committed by GitHub
parent 2645c9eb20
commit 5fe89e26f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import React, { useContext } from 'react';
import React, { useContext, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import {
@ -35,10 +35,19 @@ interface Props {
const ExchangeDialog = ({ open = false, onClose }: Props): JSX.Element => {
const { t } = useTranslation();
const { federation } = useContext(FederationContext);
const [loadingInfo, setLoadingInfo] = useState<boolean>(true);
useEffect(() => {
if (open) federation.loadInfo();
}, [open]);
useEffect(() => {
setLoadingInfo(federation.loading);
}, [federation.loading]);
return (
<Dialog open={open} onClose={onClose}>
<div style={federation.loading ? {} : { display: 'none' }}>
<div style={loadingInfo ? {} : { display: 'none' }}>
<LinearProgress variant='indeterminate' />
</div>
<DialogContent>

View File

@ -176,10 +176,14 @@ export class Federation {
lifetime_volume: 0,
version: { major: 0, minor: 0, patch: 0 },
};
this.loading = true;
this.exchange.onlineCoordinators = 0;
this.exchange.loadingCoordinators = Object.keys(this.coordinators).length;
this.updateEnabledCoordinators();
for (const coor of Object.values(this.coordinators)) {
coor.loadInfo(() => {
this.exchange.onlineCoordinators = this.exchange.onlineCoordinators + 1;
this.onCoordinatorSaved();
});
}
@ -202,14 +206,15 @@ export class Federation {
loadBook = async (): Promise<void> => {
if (this.connection !== 'api') return;
this.loading = true;
this.book = {};
this.triggerHook('onFederationUpdate');
this.loading = true;
this.exchange.onlineCoordinators = 0;
this.exchange.loadingCoordinators = Object.keys(this.coordinators).length;
this.triggerHook('onFederationUpdate');
for (const coor of Object.values(this.coordinators)) {
coor.loadBook(() => {
this.exchange.onlineCoordinators = this.exchange.onlineCoordinators + 1;
this.onCoordinatorSaved();
this.triggerHook('onFederationUpdate');
});
}
};