diff --git a/webui/src/PeerAvailableCard.tsx b/webui/src/PeerAvailableCard.tsx index 9a5f4cd0..518a55ff 100644 --- a/webui/src/PeerAvailableCard.tsx +++ b/webui/src/PeerAvailableCard.tsx @@ -2,10 +2,13 @@ import { TAvailablePeerInfoTo } from "./api/dto"; import { useFetcher } from "react-router-dom"; import "./PeerAvailableCard.scss"; -import { hashCert } from "./hash"; + +interface TAvailablePeerInfoToWithHash extends TAvailablePeerInfoTo { + certHash: string; +} export interface TPeerAvailableCardProps { - peerInfo: TAvailablePeerInfoTo; + peerInfo: TAvailablePeerInfoToWithHash; } export function PeerAvailableCard({ peerInfo }: TPeerAvailableCardProps) { @@ -18,7 +21,7 @@ export function PeerAvailableCard({ peerInfo }: TPeerAvailableCardProps) { {peerInfo.uuid}
- Cert: {hashCert(peerInfo.cert)} + Cert: {peerInfo.certHash}
- Cert: {hashCert(peerInfo.cert)} + Cert: {peerInfo.certHash}
diff --git a/webui/src/PeerState.tsx b/webui/src/PeerState.tsx index cc135f6b..5f51bf32 100644 --- a/webui/src/PeerState.tsx +++ b/webui/src/PeerState.tsx @@ -4,7 +4,6 @@ import { LoaderToType } from "./commonPlumbing"; import { peerStateLoader } from "./PeerStatePlumbing"; import { PeerAvailableCard } from "./PeerAvailableCard"; import { PeerKnownCard } from "./PeerKnownCard"; -import { hashCert } from "./hash"; export function PeerState() { const loaderData = useLoaderData() as LoaderToType; @@ -20,7 +19,7 @@ export function PeerState() { return (
UUID: {loaderData.selfInfo.selfUuid}
-
Certificate: {hashCert(loaderData.selfInfo.cert)}
+
Certificate: {loaderData.selfInfo.certHash}
Known peers
{knownPeers}
diff --git a/webui/src/PeerStatePlumbing.ts b/webui/src/PeerStatePlumbing.ts index 96d9d5e0..4e0e8521 100644 --- a/webui/src/PeerStatePlumbing.ts +++ b/webui/src/PeerStatePlumbing.ts @@ -8,13 +8,38 @@ import { removeKnownPeer, } from "./api/PeerState"; import { ActionFunctionArgs } from "react-router-dom"; +import { hashCert } from "./hash"; export async function peerStateLoader() { + const selfInfoApi = await getSelfInfo(); + const selfInfo = { + ...selfInfoApi, + certHash: await hashCert(selfInfoApi.cert), + }; + const availablePeersApi = await getAvailablePeers(); + const availablePeers = await Promise.all( + availablePeersApi.map(async (peerInfo) => { + return { + ...peerInfo, + certHash: await hashCert(peerInfo.cert), + }; + }), + ); + const knownPeersApi = await getKnownPeers(); + const knownPeers = await Promise.all( + knownPeersApi.map(async (peerInfo) => { + return { + ...peerInfo, + certHash: await hashCert(peerInfo.cert), + }; + }), + ); + const peerAddresses = await getPeerAddresses(); return { - selfInfo: await getSelfInfo(), - availablePeers: await getAvailablePeers(), - knownPeers: await getKnownPeers(), - peerAddresses: await getPeerAddresses(), + selfInfo, + availablePeers, + knownPeers, + peerAddresses, }; }