import React, { useContext } from "react"; import { Container, Spinner } from "react-bootstrap"; import { Route, Switch } from "react-router-dom"; import HomePage from "src/components/HomePage/HomePage"; import DSBlocksPage from "src/components/ViewAllPages/DSBlocksPage"; import TxBlocksPage from "src/components/ViewAllPages/TxBlocksPage"; import TxnsPage from "src/components/ViewAllPages/TxnsPage"; import AddressDetailsPage from "src/components/DetailsPages/AddressDetailsPage/AddressDetailsPage"; import DSBlockDetailsPage from "src/components/DetailsPages/DSBlockDetailsPage/DSBlockDetailsPage"; import TxBlockDetailsPage from "src/components/DetailsPages/TxBlockDetailsPage/TxBlockDetailsPage"; import TxnDetailsPage from "src/components/DetailsPages/TxnDetailsPage/TxnDetailsPage"; import NetworkErrPage from "src/components/ErrorPages/NetworkErrPage"; import LabelsPage from "src/components/LabelsPage/LabelsPage"; import NetworksPage from "src/components/NetworksPage/NetworksPage"; import NotFoundPage from "src/components/ErrorPages/NotFoundPage"; import { NetworkContext } from "src/services/network/networkProvider"; import { Card, Button } from "react-bootstrap"; import { useLocation, Link } from "react-router-dom"; import { useNetworkUrl, useSearchParams, } from "src/services/network/networkProvider"; import "./App.css"; const UnexplicableError: React.FC = () => { const location = useLocation(); return ( <>

Ups! Something went wrong.

Network: {useNetworkUrl()}
Search: {useSearchParams()}
); }; class ErrorBoundary extends React.Component< { children: any }, { hasError: boolean } > { constructor(props: { children: any }) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(/*error: any*/) { // Update state so the next render will show the fallback UI. return { hasError: true }; } componentDidCatch(error: any, errorInfo: any) { // You can also log the error to an error reporting service console.error(error, errorInfo); } render() { if (this.state.hasError) { // You can render any custom fallback UI return ; } return this.props.children; } } const App: React.FC = () => { const networkContext = useContext(NetworkContext); if (!networkContext) { return (
); } const { inTransition, isValidUrl } = networkContext; return (
{inTransition || isValidUrl === null ? (
) : ( <> {isValidUrl ? ( <> ) : ( )} )}
); }; export default App;