Skip to content

Commit

Permalink
Fix exchange summary (#1611)
Browse files Browse the repository at this point in the history
* Fix exchange summary

* Better loading bar placement

* Fix loading coordinators calc
  • Loading branch information
KoalaSat authored Nov 24, 2024
1 parent 2645c9e commit 5fe89e2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
13 changes: 11 additions & 2 deletions frontend/src/components/Dialogs/Exchange.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useContext } from 'react';
import React, { useContext, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';

import {
Expand Down Expand Up @@ -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>
Expand Down
11 changes: 8 additions & 3 deletions frontend/src/models/Federation.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
}
Expand All @@ -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');
});
}
};
Expand Down

0 comments on commit 5fe89e2

Please sign in to comment.