Files
solana/explorer/src/App.tsx

58 lines
1.7 KiB
TypeScript
Raw Normal View History

2020-03-13 18:23:46 +08:00
import React from "react";
import { NetworkProvider } from "./providers/network";
import { TransactionsProvider } from "./providers/transactions";
import NetworkStatusButton from "./components/NetworkStatusButton";
import TransactionsCard from "./components/TransactionsCard";
2020-03-19 18:18:58 +08:00
import NetworkModal from "./components/NetworkModal";
2020-03-13 17:07:58 +08:00
function App() {
2020-03-19 18:18:58 +08:00
const [showModal, setShowModal] = React.useState(false);
2020-03-13 17:07:58 +08:00
return (
<NetworkProvider>
2020-03-19 18:18:58 +08:00
<NetworkModal show={showModal} onClose={() => setShowModal(false)} />
<div className="main-content">
<div className="header">
<div className="container">
<div className="header-body">
<div className="row align-items-end">
<div className="col">
<h6 className="header-pretitle">Beta</h6>
<h1 className="header-title">Solana Explorer</h1>
</div>
<div className="col-auto">
2020-03-19 18:18:58 +08:00
<NetworkStatusButton onClick={() => setShowModal(true)} />
</div>
</div>
2020-03-13 17:45:34 +08:00
</div>
</div>
</div>
<div className="container">
<div className="row">
<div className="col-12">
<TransactionsProvider>
<TransactionsCard />
</TransactionsProvider>
</div>
</div>
</div>
2020-03-13 17:45:34 +08:00
</div>
2020-03-19 18:18:58 +08:00
<Overlay show={showModal} onClick={() => setShowModal(false)} />
</NetworkProvider>
2020-03-13 17:07:58 +08:00
);
}
2020-03-19 18:18:58 +08:00
type OverlayProps = {
show: boolean;
onClick: () => void;
};
function Overlay({ show, onClick }: OverlayProps) {
return show ? (
<div className="modal-backdrop fade show" onClick={onClick}></div>
) : null;
}
2020-03-13 17:07:58 +08:00
export default App;