Lint, remove useLayoutEffect

pull/298/head
kompotkot 2021-10-04 19:04:38 +00:00
rodzic ae8bdd9fca
commit 1534230b75
4 zmienionych plików z 341 dodań i 356 usunięć

Wyświetl plik

@ -1,279 +1,262 @@
import React, { useEffect, useState, useLayoutEffect } from "react";
import { useStatus } from "../../src/core/hooks";
import {
Heading,
Text,
Flex,
Spacer,
Stack,
chakra,
useMediaQuery,
useBreakpointValue
Heading,
Text,
Flex,
Spacer,
Stack,
chakra,
useMediaQuery,
useBreakpointValue,
} from "@chakra-ui/react";
import { AWS_ASSETS_PATH } from "../../src/core/constants";
const assets = {
background720: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background1920: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background2880: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background3840: `${AWS_ASSETS_PATH}/product-background-720x405.png`
background720: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background1920: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background2880: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
background3840: `${AWS_ASSETS_PATH}/product-background-720x405.png`,
};
const Status = () => {
const healthyStatusText = "Available";
const downStatusText = "Disabled";
const healthyStatusColor = "green.900";
const downStatusColor = "red.600";
const healthyStatusText = "Available";
const downStatusText = "Unavailable";
const healthyStatusColor = "green.900";
const downStatusColor = "red.600";
const {
apiServerStatus,
apiServerData,
crawlersServerStatus,
crawlersServerData,
gethStatus,
gethData,
crawlersStatus,
crawlersData,
dbServerStatus,
dbServerData,
latestBlockDBStatus,
latestBlockDBData
} = useStatus();
const [apiServerDataStatus, setAPIServerDataStatus] = useState({
color: downStatusColor,
text: downStatusText
});
const [crawlersServerDataStatus, setCrawlersServerDataStatus] = useState({
color: downStatusColor,
text: downStatusText
});
const [txpoolDataStatus, setTxpoolDataStatus] = useState(null);
const [trendingDataStatus, setTrendingDataStatus] = useState(null);
const [gethDataStatus, setGethDataStatus] = useState(null);
const [dbServerDataStatus, setDBServerDataStatus] = useState({
color: downStatusColor,
text: downStatusText
});
const [latestBlockDBDataStatus, setLatestBlockDBDataStatus] =
useState(null);
const shortTimestamp = (rawTimestamp) => {
return rawTimestamp.replace(/^.+T/, "").replace(/\..+/, "");
};
const [background, setBackground] = useState("background720");
const [backgroundLoaded720, setBackgroundLoaded720] = useState(false);
const [backgroundLoaded1920, setBackgroundLoaded1920] = useState(false);
const [backgroundLoaded2880, setBackgroundLoaded2880] = useState(false);
const [backgroundLoaded3840, setBackgroundLoaded3840] = useState(false);
const {
apiServerStatus,
apiServerData,
crawlersServerStatus,
crawlersServerData,
gethStatus,
gethData,
crawlersStatus,
crawlersData,
dbServerStatus,
dbServerData,
latestBlockDBStatus,
latestBlockDBData,
} = useStatus();
const [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px
] = useMediaQuery([
"(min-width: 720px)",
"(min-width: 1920px)",
"(min-width: 2880px)",
"(min-width: 3840px)"
]);
const [background, setBackground] = useState("background720");
const [backgroundLoaded720, setBackgroundLoaded720] = useState(false);
const [backgroundLoaded1920, setBackgroundLoaded1920] = useState(false);
const [backgroundLoaded2880, setBackgroundLoaded2880] = useState(false);
const [backgroundLoaded3840, setBackgroundLoaded3840] = useState(false);
useEffect(() => {
apiServerStatus();
crawlersServerStatus();
gethStatus();
dbServerStatus();
latestBlockDBStatus();
crawlersStatus();
const [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px,
] = useMediaQuery([
"(min-width: 720px)",
"(min-width: 1920px)",
"(min-width: 2880px)",
"(min-width: 3840px)",
]);
assets[
"background720"
] = `${AWS_ASSETS_PATH}/product-background-720x405.png`;
assets[
"background1920"
] = `${AWS_ASSETS_PATH}/product-background-1920x1080.png`;
assets[
"background2880"
] = `${AWS_ASSETS_PATH}/product-background-2880x1620.png`;
assets[
"background3840"
] = `${AWS_ASSETS_PATH}/product-background-3840x2160.png`;
}, []);
useEffect(() => {
apiServerStatus();
crawlersServerStatus();
crawlersStatus();
gethStatus();
dbServerStatus();
latestBlockDBStatus();
useLayoutEffect(() => {
if (backgroundLoaded3840) {
setBackground("background3840");
} else if (backgroundLoaded2880) {
setBackground("background2880");
} else if (backgroundLoaded1920) {
setBackground("background1920");
} else {
setBackground("background720");
}
}, [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px,
backgroundLoaded720,
backgroundLoaded1920,
backgroundLoaded2880,
backgroundLoaded3840
]);
assets[
"background720"
] = `${AWS_ASSETS_PATH}/product-background-720x405.png`;
assets[
"background1920"
] = `${AWS_ASSETS_PATH}/product-background-1920x1080.png`;
assets[
"background2880"
] = `${AWS_ASSETS_PATH}/product-background-2880x1620.png`;
assets[
"background3840"
] = `${AWS_ASSETS_PATH}/product-background-3840x2160.png`;
}, []);
useLayoutEffect(() => {
const imageLoader720 = new Image();
imageLoader720.src = `${AWS_ASSETS_PATH}/product-background-720x405.png`;
imageLoader720.onload = () => {
setBackgroundLoaded720(true);
};
}, []);
useLayoutEffect(() => {
if (backgroundLoaded3840) {
setBackground("background3840");
} else if (backgroundLoaded2880) {
setBackground("background2880");
} else if (backgroundLoaded1920) {
setBackground("background1920");
} else {
setBackground("background720");
}
}, [
isLargerThan720px,
isLargerThan1920px,
isLargerThan2880px,
isLargerThan3840px,
backgroundLoaded720,
backgroundLoaded1920,
backgroundLoaded2880,
backgroundLoaded3840,
]);
useLayoutEffect(() => {
const imageLoader1920 = new Image();
imageLoader1920.src = `${AWS_ASSETS_PATH}/product-background-1920x1080.png`;
imageLoader1920.onload = () => {
setBackgroundLoaded1920(true);
};
}, []);
useLayoutEffect(() => {
const imageLoader720 = new Image();
imageLoader720.src = `${AWS_ASSETS_PATH}/product-background-720x405.png`;
imageLoader720.onload = () => {
setBackgroundLoaded720(true);
};
}, []);
useLayoutEffect(() => {
const imageLoader2880 = new Image();
imageLoader2880.src = `${AWS_ASSETS_PATH}/product-background-2880x1620.png`;
imageLoader2880.onload = () => {
setBackgroundLoaded2880(true);
};
}, []);
useLayoutEffect(() => {
const imageLoader1920 = new Image();
imageLoader1920.src = `${AWS_ASSETS_PATH}/product-background-1920x1080.png`;
imageLoader1920.onload = () => {
setBackgroundLoaded1920(true);
};
}, []);
useLayoutEffect(() => {
const imageLoader3840 = new Image();
imageLoader3840.src = `${AWS_ASSETS_PATH}/product-background-3840x2160.png`;
imageLoader3840.onload = () => {
setBackgroundLoaded3840(true);
};
}, []);
useLayoutEffect(() => {
const imageLoader2880 = new Image();
imageLoader2880.src = `${AWS_ASSETS_PATH}/product-background-2880x1620.png`;
imageLoader2880.onload = () => {
setBackgroundLoaded2880(true);
};
}, []);
useLayoutEffect(() => {
if (apiServerData?.data.status == "ok") {
setAPIServerDataStatus({
color: healthyStatusColor,
text: healthyStatusText
});
}
if (crawlersServerData?.data.status == "ok") {
setCrawlersServerDataStatus({
color: healthyStatusColor,
text: healthyStatusText
});
}
if (gethData?.data?.current_block) {
setGethDataStatus(gethData?.data?.current_block);
}
if (crawlersData?.data) {
if (crawlersData?.data?.ethereum_txpool_timestamp) {
setTxpoolDataStatus(
crawlersData?.data?.ethereum_txpool_timestamp
.replace(/^.+T/, "")
.replace(/\..+/, "")
);
}
if (crawlersData?.data?.ethereum_trending_timestamp) {
setTrendingDataStatus(
crawlersData?.data?.ethereum_trending_timestamp
.replace(/^.+T/, "")
.replace(/\..+/, "")
);
}
}
useLayoutEffect(() => {
const imageLoader3840 = new Image();
imageLoader3840.src = `${AWS_ASSETS_PATH}/product-background-3840x2160.png`;
imageLoader3840.onload = () => {
setBackgroundLoaded3840(true);
};
}, []);
if (dbServerData?.data?.status == "ok") {
setDBServerDataStatus({
color: healthyStatusColor,
text: healthyStatusText
});
}
if (latestBlockDBData?.data?.block_number) {
setLatestBlockDBDataStatus(latestBlockDBData?.data?.block_number);
}
}, [apiServerData, crawlersServerData, dbServerData]);
const margin = useBreakpointValue({
base: "1%",
sm: "2%",
md: "3%",
lg: "15%",
xl: "20%",
"2xl": "25%",
});
const margin = useBreakpointValue({
base: "1%",
sm: "2%",
md: "3%",
lg: "15%",
xl: "20%",
"2xl": "25%"
});
return (
<Flex
bgPos="bottom"
bgColor="transparent"
backgroundImage={`url(${assets[`${background}`]})`}
bgSize="cover"
// boxSize="full"
minH="100vh"
direction="column"
alignItems="center"
pb={24}
>
<Stack mx={margin} my={12} maxW="1700px">
<Heading
as="h2"
size="md"
placeSelf="center"
px={12}
py={2}
borderTopRadius="xl"
>
{`Status page`}
</Heading>
<chakra.span pl={2} px={12} py={2} width="400px">
<Flex mb={3}>
<Text>Backend server</Text>
<Spacer />
<Text color={apiServerDataStatus.color}>
{apiServerDataStatus.text}
</Text>
</Flex>
<br />
<Flex mb={3}>
<Text>Crawlers server</Text>
<Spacer />
<Text color={crawlersServerDataStatus.color}>
{crawlersServerDataStatus.text}
</Text>
</Flex>
<Flex mb={3}>
<Text>Latest block in Geth</Text>
<Spacer />
<Text>{gethDataStatus}</Text>
</Flex>
<Flex mb={3}>
<Text>Txpool latest record ts</Text>
<Spacer />
<Text>{txpoolDataStatus}</Text>
</Flex>
<Flex mb={3}>
<Text>Trending latest record ts</Text>
<Spacer />
<Text>{trendingDataStatus}</Text>
</Flex>
<br />
<Flex mb={3}>
<Text>Database server</Text>
<Spacer />
<Text color={dbServerDataStatus.color}>
{dbServerDataStatus.text}
</Text>
</Flex>
<Flex mb={3}>
<Text>Latest block in Database</Text>
<Spacer />
<Text>{latestBlockDBDataStatus}</Text>
</Flex>
</chakra.span>
</Stack>
</Flex>
);
return (
<Flex
bgPos="bottom"
bgColor="transparent"
backgroundImage={`url(${assets[`${background}`]})`}
bgSize="cover"
// boxSize="full"
minH="100vh"
direction="column"
alignItems="center"
pb={24}
>
<Stack mx={margin} my={12} maxW="1700px">
<Heading
as="h2"
size="md"
placeSelf="center"
px={12}
py={2}
borderTopRadius="xl"
>
{`Status page`}
</Heading>
<chakra.span pl={2} px={12} py={2} width="400px">
<Flex mb={3}>
<Text>Backend server</Text>
<Spacer />
<Text
color={
apiServerData?.data?.status == "ok"
? healthyStatusColor
: downStatusColor
}
>
{apiServerData?.data?.status == "ok"
? healthyStatusText
: downStatusText}
</Text>
</Flex>
<br />
<Flex mb={3}>
<Text>Crawlers server</Text>
<Spacer />
<Text
color={
crawlersServerData?.data?.status == "ok"
? healthyStatusColor
: downStatusColor
}
>
{crawlersServerData?.data?.status == "ok"
? healthyStatusText
: downStatusText}
</Text>
</Flex>
<Flex mb={3}>
<Text>Latest block in Geth</Text>
<Spacer />
<Text>
{gethData?.data?.current_block ? gethData.data.current_block : 0}
</Text>
</Flex>
<Flex mb={3}>
<Text>Txpool latest record ts</Text>
<Spacer />
<Text>
{crawlersData?.data?.ethereum_txpool_timestamp
? shortTimestamp(crawlersData?.data?.ethereum_txpool_timestamp)
: downStatusText}
</Text>
</Flex>
<Flex mb={3}>
<Text>Trending latest record ts</Text>
<Spacer />
<Text>
{crawlersData?.data?.ethereum_trending_timestamp
? shortTimestamp(
crawlersData?.data?.ethereum_trending_timestamp
)
: downStatusText}
</Text>
</Flex>
<br />
<Flex mb={3}>
<Text>Database server</Text>
<Spacer />
<Text
color={
dbServerData?.data?.status == "ok"
? healthyStatusColor
: downStatusColor
}
>
{dbServerData?.data?.status == "ok"
? healthyStatusText
: downStatusText}
</Text>
</Flex>
<Flex mb={3}>
<Text>Latest block in Database</Text>
<Spacer />
<Text>
{latestBlockDBData?.data?.block_number
? latestBlockDBData.data.block_number
: 0}
</Text>
</Flex>
</chakra.span>
</Stack>
</Flex>
);
};
export default Status;

Wyświetl plik

@ -1,5 +1,5 @@
export NEXT_PUBLIC_MIXPANEL_TOKEN="<YOUR MIXPANEL TOKEN HERE>"
export NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="<stripe publishable key>"
export NEXT_PUBLIC_MOONSTREAM_API_URL="<moonstream_api_url>"
export NEXT_PUBLIC_MOONSTREAM_CRAWLERS_URL="<moonstream_crawlers_url>"
export NEXT_PUBLIC_MOONSTREAM_ETHEREUM_CLUSTER_URL="<moonstream_crawlers_url>"
export NEXT_PUBLIC_MOONSTREAM_DB_URL="<moonstream_db_url>"

Wyświetl plik

@ -3,87 +3,89 @@ import { useToast } from "./";
import { AuthService } from "../../core/services";
const useStatus = () => {
const toast = useToast();
const toast = useToast();
const { mutate: apiServerStatus, data: apiServerData } = useMutation(
AuthService.apiServerStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
}
);
const { mutate: apiServerStatus, data: apiServerData } = useMutation(
AuthService.apiServerStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
}
);
const { mutate: crawlersServerStatus, data: crawlersServerData } =
useMutation(AuthService.crawlersServerStatus, {
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
});
const { mutate: gethStatus, data: gethData } = useMutation(
AuthService.gethStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
}
);
const { mutate: crawlersStatus, data: crawlersData } = useMutation(
AuthService.crawlersStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
}
);
const { mutate: crawlersServerStatus, data: crawlersServerData } =
useMutation(AuthService.crawlersServerStatus, {
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
});
const { mutate: gethStatus, data: gethData } = useMutation(
AuthService.gethStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
}
);
const { mutate: crawlersStatus, data: crawlersData } = useMutation(
AuthService.crawlersStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
}
);
const { mutate: dbServerStatus, data: dbServerData } = useMutation(
AuthService.dbServerStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
}
);
const { mutate: latestBlockDBStatus, data: latestBlockDBData } =
useMutation(AuthService.latestBlockDBStatus, {
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
}
});
const { mutate: dbServerStatus, data: dbServerData } = useMutation(
AuthService.dbServerStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
}
);
const { mutate: latestBlockDBStatus, data: latestBlockDBData } = useMutation(
AuthService.latestBlockDBStatus,
{
onError: (error) => {
// toast(error, "error");
},
onSuccess: () => {
// toast("Status received", "success");
},
}
);
return {
apiServerStatus,
apiServerData,
crawlersServerStatus,
crawlersServerData,
gethStatus,
gethData,
crawlersStatus,
crawlersData,
dbServerStatus,
dbServerData,
latestBlockDBStatus,
latestBlockDBData
};
return {
apiServerStatus,
apiServerData,
crawlersServerStatus,
crawlersServerData,
gethStatus,
gethData,
crawlersStatus,
crawlersData,
dbServerStatus,
dbServerData,
latestBlockDBStatus,
latestBlockDBData,
};
};
export default useStatus;

Wyświetl plik

@ -2,7 +2,7 @@ import { http } from "../utils";
const API_URL = process.env.NEXT_PUBLIC_MOONSTREAM_API_URL;
const DB_URL = process.env.NEXT_PUBLIC_MOONSTREAM_DB_URL;
const CRAWLERS_URL = process.env.NEXT_PUBLIC_MOONSTREAM_CRAWLERS_URL;
const CRAWLERS_URL = process.env.NEXT_PUBLIC_MOONSTREAM_ETHEREUM_CLUSTER_URL;
export const AUTH_URL = `${API_URL}/users`;
export const login = ({ username, password, token_note }) => {
@ -105,43 +105,43 @@ export const revokeToken = (token) => {
};
export const apiServerStatus = () => {
return http({
method: "GET",
url: `${API_URL}/ping`
});
return http({
method: "GET",
url: `${API_URL}/ping`,
});
};
export const crawlersServerStatus = () => {
return http({
method: "GET",
url: `${CRAWLERS_URL}/ping`
});
return http({
method: "GET",
url: `${CRAWLERS_URL}/ping`,
});
};
export const gethStatus = () => {
return http({
method: "GET",
url: `${CRAWLERS_URL}/status`
});
return http({
method: "GET",
url: `${CRAWLERS_URL}/status`,
});
};
export const crawlersStatus = () => {
return http({
method: "GET",
url: `${API_URL}/status`
});
return http({
method: "GET",
url: `${API_URL}/status`,
});
};
export const dbServerStatus = () => {
return http({
method: "GET",
url: `${DB_URL}/ping`
});
return http({
method: "GET",
url: `${DB_URL}/ping`,
});
};
export const latestBlockDBStatus = () => {
return http({
method: "GET",
url: `${DB_URL}/block/latest`
});
return http({
method: "GET",
url: `${DB_URL}/block/latest`,
});
};