diff --git a/apps/explorer/src/app/components/blocks/block-data.tsx b/apps/explorer/src/app/components/blocks/block-data.tsx
index 419c3b235..d0598009d 100644
--- a/apps/explorer/src/app/components/blocks/block-data.tsx
+++ b/apps/explorer/src/app/components/blocks/block-data.tsx
@@ -6,11 +6,15 @@ import { Table, TableRow, TableCell } from '../table';
interface BlockProps {
block: BlockMeta;
+ className?: string;
}
-export const BlockData = ({ block }: BlockProps) => {
+export const BlockData = ({ block, className }: BlockProps) => {
return (
-
+
{
+ if (loading) {
+ return Loading... ;
+ }
+
+ if (error) {
+ return Error: {error} ;
+ }
+
+ // eslint-disable-next-line react/jsx-no-useless-fragment
+ return <>{children}>;
+};
diff --git a/apps/explorer/src/app/components/status-message/index.tsx b/apps/explorer/src/app/components/status-message/index.tsx
index 3c1f1e7dc..10bc441cc 100644
--- a/apps/explorer/src/app/components/status-message/index.tsx
+++ b/apps/explorer/src/app/components/status-message/index.tsx
@@ -7,6 +7,6 @@ interface StatusMessageProps {
}
export const StatusMessage = ({ children, className }: StatusMessageProps) => {
- const classes = classnames('font-alpha', 'text-h4', 'mb-28', className);
+ const classes = classnames('font-alpha text-h4 mb-28', className);
return {children} ;
};
diff --git a/apps/explorer/src/app/components/txs/home/txs-data.tsx b/apps/explorer/src/app/components/txs/home/block-txs-data.tsx
similarity index 66%
rename from apps/explorer/src/app/components/txs/home/txs-data.tsx
rename to apps/explorer/src/app/components/txs/home/block-txs-data.tsx
index 005bd4854..d728bd34d 100644
--- a/apps/explorer/src/app/components/txs/home/txs-data.tsx
+++ b/apps/explorer/src/app/components/txs/home/block-txs-data.tsx
@@ -8,9 +8,12 @@ interface TxsProps {
className?: string;
}
-export const TxsData = ({ data, className }: TxsProps) => {
+export const BlockTxsData = ({ data, className }: TxsProps) => {
if (!data?.result) {
- return Awaiting block data
;
+ // Data for the block has already been fetched at this point, so no errors
+ // or loading to deal with. This is specifically the case
+ // where the data object is not undefined, but lacks a result.
+ return No data
;
}
return (
@@ -21,7 +24,7 @@ export const TxsData = ({ data, className }: TxsProps) => {
{data.result?.block_metas?.map((block, index) => {
return (
-
+
);
diff --git a/apps/explorer/src/app/components/txs/index.tsx b/apps/explorer/src/app/components/txs/index.tsx
index b27e867fd..03b5e94ae 100644
--- a/apps/explorer/src/app/components/txs/index.tsx
+++ b/apps/explorer/src/app/components/txs/index.tsx
@@ -1,4 +1,4 @@
export { TxDetails } from './id/tx-details';
export { TxContent } from './id/tx-content';
export { TxList } from './pending/tx-list';
-export { TxsData } from './home/txs-data';
+export { BlockTxsData } from './home/block-txs-data';
diff --git a/apps/explorer/src/app/components/txs/txs-per-block/index.tsx b/apps/explorer/src/app/components/txs/txs-per-block/index.tsx
index 64c9b45cb..16ba2053e 100644
--- a/apps/explorer/src/app/components/txs/txs-per-block/index.tsx
+++ b/apps/explorer/src/app/components/txs/txs-per-block/index.tsx
@@ -2,6 +2,7 @@ import useFetch from '../../../hooks/use-fetch';
import { ChainExplorerTxResponse } from '../../../routes/types/chain-explorer-response';
import { DATA_SOURCES } from '../../../config';
import { Link } from 'react-router-dom';
+import { RenderFetched } from '../../render-fetched';
import { TruncateInline } from '../../truncate/truncate';
interface TxsPerBlockProps {
@@ -12,7 +13,7 @@ const truncateLength = 14;
export const TxsPerBlock = ({ blockHeight }: TxsPerBlockProps) => {
const {
- state: { data: decodedBlockData },
+ state: { data: decodedBlockData, loading, error },
} = useFetch(DATA_SOURCES.chainExplorerUrl, {
method: 'POST',
mode: 'cors',
@@ -27,44 +28,46 @@ export const TxsPerBlock = ({ blockHeight }: TxsPerBlockProps) => {
});
return (
-
-
-
-
- Transaction
- From
- Type
-
-
-
- {decodedBlockData &&
- decodedBlockData.map(({ TxHash, PubKey, Type }, index) => {
- return (
-
-
-
+
+
+
+
+
+ Transaction
+ From
+ Type
+
+
+
+ {decodedBlockData &&
+ decodedBlockData.map(({ TxHash, PubKey, Type }) => {
+ return (
+
+
+
+
+
+
+
-
-
-
-
-
- {Type}
-
- );
- })}
-
-
-
+
+ {Type}
+
+ );
+ })}
+
+
+
+
);
};
diff --git a/apps/explorer/src/app/routes/blocks/home/index.tsx b/apps/explorer/src/app/routes/blocks/home/index.tsx
index 092f3c565..15a6c8425 100644
--- a/apps/explorer/src/app/routes/blocks/home/index.tsx
+++ b/apps/explorer/src/app/routes/blocks/home/index.tsx
@@ -2,7 +2,7 @@ import { DATA_SOURCES } from '../../../config';
import useFetch from '../../../hooks/use-fetch';
import { TendermintBlockchainResponse } from '../tendermint-blockchain-response';
import { RouteTitle } from '../../../components/route-title';
-import { StatusMessage } from '../../../components/status-message';
+import { RenderFetched } from '../../../components/render-fetched';
import { BlocksData, BlocksRefetch } from '../../../components/blocks';
import { JumpToBlock } from '../../../components/jump-to-block';
@@ -17,14 +17,12 @@ const Blocks = () => {
return (
Blocks
- {loading && Loading... }
- {error && Error: {error} }
- {data && (
+
<>
>
- )}
+
);
diff --git a/apps/explorer/src/app/routes/txs/home/index.tsx b/apps/explorer/src/app/routes/txs/home/index.tsx
index 21144f509..fc382840d 100644
--- a/apps/explorer/src/app/routes/txs/home/index.tsx
+++ b/apps/explorer/src/app/routes/txs/home/index.tsx
@@ -3,12 +3,13 @@ import { TendermintBlockchainResponse } from '../../blocks/tendermint-blockchain
import { DATA_SOURCES } from '../../../config';
import { RouteTitle } from '../../../components/route-title';
import { BlocksRefetch } from '../../../components/blocks';
-import { TxsData } from '../../../components/txs';
+import { RenderFetched } from '../../../components/render-fetched';
+import { BlockTxsData } from '../../../components/txs';
import { JumpToBlock } from '../../../components/jump-to-block';
const Txs = () => {
const {
- state: { data },
+ state: { data, error, loading },
refetch,
} = useFetch(
`${DATA_SOURCES.tendermintUrl}/blockchain`
@@ -17,8 +18,12 @@ const Txs = () => {
return (
Transactions
-
-
+
+ <>
+
+
+ >
+
);