90cc239999
* create gateway details page * adding uptime chart * adding loading state for gateways * adding link style * fixing gateways pagination * remove gateway name and desc * adding correct toolpit text and cleaning * fix build * PR requested changes * fix build * requested changes * fix build a rever console utility addition Co-authored-by: Gala <calero.vg@gmail.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { GatewayResponse, GatewayResponseItem, GatewayReportResponse } from '../typeDefs/explorer-api';
|
|
|
|
export type GatewayRowType = {
|
|
id: string;
|
|
owner: string;
|
|
identityKey: string;
|
|
bond: number;
|
|
host: string;
|
|
location: string;
|
|
};
|
|
|
|
export type GatewayEnrichedRowType = GatewayRowType & {
|
|
routingScore: string;
|
|
avgUptime: string;
|
|
clientsPort: number;
|
|
mixPort: number;
|
|
};
|
|
|
|
export function gatewayToGridRow(arrayOfGateways: GatewayResponse): GatewayRowType[] {
|
|
return !arrayOfGateways
|
|
? []
|
|
: arrayOfGateways.map((gw) => ({
|
|
id: gw.owner,
|
|
owner: gw.owner,
|
|
identityKey: gw.gateway.identity_key || '',
|
|
location: gw?.gateway?.location || '',
|
|
bond: gw.pledge_amount.amount || 0,
|
|
host: gw.gateway.host || '',
|
|
}));
|
|
}
|
|
|
|
export function gatewayEnrichedToGridRow(
|
|
gateway: GatewayResponseItem,
|
|
report: GatewayReportResponse,
|
|
): GatewayEnrichedRowType {
|
|
return {
|
|
id: gateway.owner,
|
|
owner: gateway.owner,
|
|
identityKey: gateway.gateway.identity_key || '',
|
|
location: gateway?.gateway?.location || '',
|
|
bond: gateway.pledge_amount.amount || 0,
|
|
host: gateway.gateway.host || '',
|
|
clientsPort: gateway.gateway.clients_port || 0,
|
|
mixPort: gateway.gateway.mix_port || 0,
|
|
routingScore: `${report.most_recent}%`,
|
|
avgUptime: `${report.last_day || report.last_hour}%`,
|
|
};
|
|
}
|