From d20b331242d760d714b41bbabc526347397dea87 Mon Sep 17 00:00:00 2001 From: jejolare Date: Mon, 23 Sep 2024 00:26:46 +0700 Subject: [PATCH] structure fix --- .../LatestBlocks/LatestBlocks.module.scss | 0 .../default}/LatestBlocks/LatestBlocks.tsx | 0 .../TransactionPool.module.scss | 0 .../TransactionPool/TransactionPool.tsx | 0 src/pages/Blockchain/index.tsx | 87 ------------------ src/pages/index.tsx | 89 +++++++++++++++---- src/utils/ssr.ts | 4 +- 7 files changed, 74 insertions(+), 106 deletions(-) rename src/{pages/Blockchain/components => components/default}/LatestBlocks/LatestBlocks.module.scss (100%) rename src/{pages/Blockchain/components => components/default}/LatestBlocks/LatestBlocks.tsx (100%) rename src/{pages/Blockchain/components => components/default}/TransactionPool/TransactionPool.module.scss (100%) rename src/{pages/Blockchain/components => components/default}/TransactionPool/TransactionPool.tsx (100%) delete mode 100644 src/pages/Blockchain/index.tsx diff --git a/src/pages/Blockchain/components/LatestBlocks/LatestBlocks.module.scss b/src/components/default/LatestBlocks/LatestBlocks.module.scss similarity index 100% rename from src/pages/Blockchain/components/LatestBlocks/LatestBlocks.module.scss rename to src/components/default/LatestBlocks/LatestBlocks.module.scss diff --git a/src/pages/Blockchain/components/LatestBlocks/LatestBlocks.tsx b/src/components/default/LatestBlocks/LatestBlocks.tsx similarity index 100% rename from src/pages/Blockchain/components/LatestBlocks/LatestBlocks.tsx rename to src/components/default/LatestBlocks/LatestBlocks.tsx diff --git a/src/pages/Blockchain/components/TransactionPool/TransactionPool.module.scss b/src/components/default/TransactionPool/TransactionPool.module.scss similarity index 100% rename from src/pages/Blockchain/components/TransactionPool/TransactionPool.module.scss rename to src/components/default/TransactionPool/TransactionPool.module.scss diff --git a/src/pages/Blockchain/components/TransactionPool/TransactionPool.tsx b/src/components/default/TransactionPool/TransactionPool.tsx similarity index 100% rename from src/pages/Blockchain/components/TransactionPool/TransactionPool.tsx rename to src/components/default/TransactionPool/TransactionPool.tsx diff --git a/src/pages/Blockchain/index.tsx b/src/pages/Blockchain/index.tsx deleted file mode 100644 index b98bc38..0000000 --- a/src/pages/Blockchain/index.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import styles from "@/styles/Blockchain.module.scss"; -import Header from "@/components/default/Header/Header"; -import StatsPanel from "@/components/default/StatsPanel/StatsPanel"; -import InfoTopPanel from "@/components/default/InfoTopPanel/InfoTopPanel"; -import LatestBlocks from "./components/LatestBlocks/LatestBlocks"; -import TransactionPool, { PoolElement } from "./components/TransactionPool/TransactionPool"; -import { useEffect, useState } from "react"; -import Fetch from "@/utils/methods"; -import VisibilityInfo from "@/interfaces/state/VisibilityInfo"; -import Info from "@/interfaces/state/Info"; -import Block from "@/interfaces/state/Block"; - -function Blockchain({ - fetchedVisibilityInfo, - fetchedIsOnline, - fetchedInfo, - fetchedLatestBlocks, - fetchedTxPoolElements, -}: { - fetchedVisibilityInfo: VisibilityInfo | null, - fetchedInfo: Info | null, - fetchedIsOnline: boolean, - fetchedLatestBlocks: Block[], - fetchedTxPoolElements: PoolElement[], -}) { - const [burgerOpened, setBurgerOpened] = useState(false); - - const [visibilityInfo, setVisibilityInfo] = useState(fetchedVisibilityInfo); - const [isOnline, setIsOnline] = useState(fetchedIsOnline); - - useEffect(() => { - async function fetchVisibilityInfo() { - const result = await Fetch.getVisibilityInfo(); - if (result.success === false) return; - setVisibilityInfo(result); - } - - async function checkOnline() { - try { - const result = await Fetch.getInfo(); - if (result.status === "OK") { - setIsOnline(true); - } else { - setIsOnline(false); - } - } catch (error) { - console.log(error); - setIsOnline(false); - } - } - - fetchVisibilityInfo(); - const interval = setInterval(checkOnline, 5000); - return () => clearInterval(interval); - }, []); - - return ( -
-
- -

Daemon state: {isOnline ? 'Online' : 'Offline'}

-

Default network fee: 0,01

-

Minimum network fee: 0,01

-
- } - /> - - - - - ) -} - -export default Blockchain; \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx index e29ba41..4005cce 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,11 +1,16 @@ -import Blockchain from './Blockchain/index'; -import { GetServerSideProps } from 'next' -import VisibilityInfo from '@/interfaces/state/VisibilityInfo'; -import Info from '@/interfaces/state/Info'; -import Block from '@/interfaces/state/Block'; -import { PoolElement } from './Blockchain/components/TransactionPool/TransactionPool'; -import { getMainPageProps } from '@/utils/ssr'; - +import styles from "@/styles/Blockchain.module.scss"; +import Header from "@/components/default/Header/Header"; +import StatsPanel from "@/components/default/StatsPanel/StatsPanel"; +import InfoTopPanel from "@/components/default/InfoTopPanel/InfoTopPanel"; +import LatestBlocks from "@/components/default/LatestBlocks/LatestBlocks"; +import TransactionPool, { PoolElement } from "@/components/default/TransactionPool/TransactionPool"; +import { useEffect, useState } from "react"; +import Fetch from "@/utils/methods"; +import VisibilityInfo from "@/interfaces/state/VisibilityInfo"; +import Info from "@/interfaces/state/Info"; +import Block from "@/interfaces/state/Block"; +import { GetServerSideProps } from "next"; +import { getMainPageProps } from "@/utils/ssr"; export interface MainPageProps { visibilityInfo: VisibilityInfo | null; isOnline: boolean; @@ -14,16 +19,66 @@ export interface MainPageProps { txPoolElements: PoolElement[] } -function MainPage({ visibilityInfo, isOnline, info, latestBlocks, txPoolElements }: MainPageProps) { +function MainPage({ visibilityInfo: fetchedVisibilityInfo, isOnline: fetchedIsOnline, info, latestBlocks, txPoolElements }: MainPageProps) { + const [burgerOpened, setBurgerOpened] = useState(false); + + const [visibilityInfo, setVisibilityInfo] = useState(fetchedVisibilityInfo); + const [isOnline, setIsOnline] = useState(fetchedIsOnline); + + useEffect(() => { + async function fetchVisibilityInfo() { + const result = await Fetch.getVisibilityInfo(); + if (result.success === false) return; + setVisibilityInfo(result); + } + + async function checkOnline() { + try { + const result = await Fetch.getInfo(); + if (result.status === "OK") { + setIsOnline(true); + } else { + setIsOnline(false); + } + } catch (error) { + console.log(error); + setIsOnline(false); + } + } + + fetchVisibilityInfo(); + const interval = setInterval(checkOnline, 5000); + return () => clearInterval(interval); + }, []); + return ( - - ); +
+
+ +

Daemon state: {isOnline ? 'Online' : 'Offline'}

+

Default network fee: 0,01

+

Minimum network fee: 0,01

+
+ } + /> + + + + + ) } const getServerSideProps: GetServerSideProps = getMainPageProps; diff --git a/src/utils/ssr.ts b/src/utils/ssr.ts index da5b7d9..4542104 100644 --- a/src/utils/ssr.ts +++ b/src/utils/ssr.ts @@ -1,9 +1,9 @@ import VisibilityInfo from "@/interfaces/state/VisibilityInfo"; import Fetch from "./methods"; import Block from "@/interfaces/state/Block"; -import { PoolElement } from "@/pages/Blockchain/components/TransactionPool/TransactionPool"; +import { PoolElement } from "@/components/default/TransactionPool/TransactionPool"; import Info from "@/interfaces/state/Info"; -import { latestBlocksInitState } from "@/pages/Blockchain/components/LatestBlocks/LatestBlocks"; +import { latestBlocksInitState } from "@/components/default/LatestBlocks/LatestBlocks"; import Utils from "./utils"; import { DEFAULT_ITEMS_ON_PAGE } from "@/pages/aliases"; import { DEFAULT_ASSETS_ON_PAGE } from "@/pages/assets";