diff --git a/src/app/Layout/MainLayout/index.tsx b/src/app/Layout/MainLayout/index.tsx index c8785726..76c181ad 100644 --- a/src/app/Layout/MainLayout/index.tsx +++ b/src/app/Layout/MainLayout/index.tsx @@ -1,13 +1,16 @@ +import { Box, CircularProgress, Container, Typography } from '@mui/material' import React, { useContext, useEffect } from 'react' +import { getActiveNetwork, selectAllChains, selectNetworkStatus } from 'store/app-config' +import { useAppDispatch, useAppSelector } from 'store/configureStore' + +import { ColorModeContext } from '../../../styles/theme/ThemeProvider' +import Icon from '@mdi/react' import { NavBar } from 'app/components/NavBar' import { Outlet } from 'react-router-dom' -import { useAppDispatch, useAppSelector } from 'store/configureStore' -import { Typography, Box, CircularProgress, Container } from '@mui/material' -import { getActiveNetwork, selectAllChains, selectNetworkStatus } from 'store/app-config' +import PageContainer from 'app/components/PageContainer' import { Status } from 'types' import { getChains } from 'api' -import PageContainer from 'app/components/PageContainer' -import { ColorModeContext } from '../../../styles/theme/ThemeProvider' +import { mdiAccessPointNetworkOff } from '@mdi/js' import { selectedTheme } from '../../../store/app-config' const Content: React.FC = () => { @@ -36,14 +39,32 @@ const Content: React.FC = () => { gap: '20px', }} > - - Something went wrong, Please Try Again! - + + + Something went wrong + + (theme.palette.mode === 'dark' ? '#CBD4E2' : '#64748B'), + }} + > + We have encountered an unexpected issue with our current system. For + uninterrupted service, switch over to the Camino Network. + + ) diff --git a/src/app/components/CamAmount.tsx b/src/app/components/CamAmount.tsx index eda95c43..462263ea 100644 --- a/src/app/components/CamAmount.tsx +++ b/src/app/components/CamAmount.tsx @@ -1,16 +1,18 @@ import * as React from 'react' -import { Typography, Tooltip, Box } from '@mui/material' -import { ReactComponent as GasStationOutline } from './assets/gas-station-outline.svg' -import { ReactComponent as ACamIcon } from './assets/a-cam.svg' -import { ReactComponent as NCamIcon } from './assets/n-cam.svg' -import { ReactComponent as CamIcon } from './assets/cam.svg' + +import { Box, Tooltip, Typography } from '@mui/material' import { - getDisplayAmount, - getACamAmount, customToLocaleString, + getACamAmount, + getDisplayAmount, roundedToLocaleString, } from '../../utils/currency-utils' + +import { ReactComponent as ACamIcon } from './assets/a-cam.svg' +import { ReactComponent as CamIcon } from './assets/cam.svg' +import { ReactComponent as GasStationOutline } from './assets/gas-station-outline.svg' import { ICamAmount } from 'types/filesInComponents' +import { ReactComponent as NCamIcon } from './assets/n-cam.svg' import { useLocation } from 'react-router-dom' export function AmountIcon({ currency }: { currency: string }) { diff --git a/src/app/components/CopyTitleCard.tsx b/src/app/components/CopyTitleCard.tsx index e753f6f8..ba4d7c41 100644 --- a/src/app/components/CopyTitleCard.tsx +++ b/src/app/components/CopyTitleCard.tsx @@ -1,8 +1,8 @@ -import React from 'react' +import DetailsField from 'app/components/DetailsField' import Icon from '@mdi/react' import OutlinedContainer from 'app/components/OutlinedContainer' import OutlinedFilledContainer from 'app/components/OutlinedFilledContainer' -import DetailsField from 'app/components/DetailsField' +import React from 'react' export default function CopyTitleCard({ label, diff --git a/src/app/components/DetailsField.tsx b/src/app/components/DetailsField.tsx index f16d979b..579707a8 100644 --- a/src/app/components/DetailsField.tsx +++ b/src/app/components/DetailsField.tsx @@ -1,14 +1,15 @@ -import { mdiInformationOutline, mdiOpenInNew } from '@mdi/js' -import Icon from '@mdi/react' import { Box, Button, Chip, Grid, Tooltip, Typography } from '@mui/material' -import React from 'react' -import { Link } from 'react-router-dom' import { IDetailsField, IField } from 'types/filesInComponents' -import { roundedToLocaleString } from '../../utils/currency-utils' +import { mdiInformationOutline, mdiOpenInNew } from '@mdi/js' import moment, { currentDateFormat } from '../../utils/helpers/moment' -import useWidth from '../hooks/useWidth' + import { CamAmount } from './CamAmount' import CopyToClipboardButton from './CopyToClipboardButton' +import Icon from '@mdi/react' +import { Link } from 'react-router-dom' +import React from 'react' +import { roundedToLocaleString } from '../../utils/currency-utils' +import useWidth from '../hooks/useWidth' function DetailsField({ field, @@ -47,7 +48,7 @@ function DetailsField({ {!isMobile && ( <> {tooltip?.toLowerCase() || getTooltip(field?.toLowerCase()) ? ( - + {icon || ( ) : ( - + {icon} )} diff --git a/src/app/components/FilledCard.tsx b/src/app/components/FilledCard.tsx index b25d7a98..01c07aee 100644 --- a/src/app/components/FilledCard.tsx +++ b/src/app/components/FilledCard.tsx @@ -1,4 +1,5 @@ import React, { FC } from 'react' + import { Paper } from '@mui/material' interface BlockCardProps { @@ -18,7 +19,6 @@ const FilledCard: FC = React.forwardRef((props, ref) => { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', }} ref={ref} diff --git a/src/app/components/MainButton.tsx b/src/app/components/MainButton.tsx index a0070302..82f7d1ed 100644 --- a/src/app/components/MainButton.tsx +++ b/src/app/components/MainButton.tsx @@ -1,4 +1,5 @@ import * as React from 'react' + import { Button } from '@mui/material' function MainButton({ @@ -17,13 +18,15 @@ function MainButton({ variant={variant} onClick={onClick} sx={{ - borderRadius: '12px', - padding: '.55rem 2rem', + borderRadius: '8px', + padding: '0.55rem 2rem', backgroundColor: variant === 'outlined' ? 'transparent' : 'secondary.main', color: variant === 'outlined' ? 'secondary.main' : 'white', borderColor: variant === 'outlined' ? 'secondary.main' : '', boxShadow: 'none', borderWidth: '1.5px', + textTransform: 'capitalize', + fontWeight: 600, '&:hover': { boxShadow: 'none', backgroundColor: variant === 'outlined' ? 'transparent' : 'secondary.main', diff --git a/src/app/components/NavBar/Links.tsx b/src/app/components/NavBar/Links.tsx index 22e089c6..caef4374 100644 --- a/src/app/components/NavBar/Links.tsx +++ b/src/app/components/NavBar/Links.tsx @@ -1,13 +1,12 @@ -import React, { useEffect, useState } from 'react' +import React, { useMemo } from 'react' import { useLocation, useNavigate } from 'react-router-dom' import Box from '@mui/material/Box' -import { ChainType } from 'utils/types/chain-type' -import { RoutesConfig } from 'utils/route-paths' -import { STATISTICS_LINK } from '../../../utils/types/statistics-type' import Tab from '@mui/material/Tab' import Tabs from '@mui/material/Tabs' -import { getChainTypeFromUrl } from 'utils/route-utils' +import { RoutesConfig } from 'utils/route-paths' +import { ChainType } from 'utils/types/chain-type' +import { STATISTICS_LINK } from '../../../utils/types/statistics-type' function a11yProps(index: number) { return { @@ -32,22 +31,18 @@ const activeTab = (path: string): number => { export default function Links() { const routes = RoutesConfig() const location = useLocation() - const [value, setValue] = useState(activeTab(getChainTypeFromUrl())) const handleChange = (event: React.SyntheticEvent, newValue: number) => { if (location.pathname !== routes.MAINNET) { if (newValue === 0) navigate(routes.CCHAIN) else if (newValue === 1) navigate(routes.XCHAIN) else if (newValue === 2) navigate(routes.PCHAIN) else if (newValue === 5) navigate(routes.STATISTICS) - if (newValue !== 3 && newValue !== 4) setValue(newValue) } } - useEffect(() => { - if (location.pathname === routes.MAINNET) setValue(0) - else if (location.pathname === routes.CCHAIN) setValue(0) - else if (location.pathname === routes.XCHAIN) setValue(1) - else if (location.pathname === routes.PCHAIN) setValue(2) - else if (location.pathname === routes.STATISTICS) setValue(5) + + const activeChainTab = useMemo(() => { + let activeChain = location.pathname.split('/')[3] + return activeTab(activeChain) }, [location]) let navigate = useNavigate() @@ -61,7 +56,7 @@ export default function Links() { }} > { } const SearchResultMenuList = ({ menuItems }: { menuItems: SearchMenuItem[] }) => { - console.log(menuItems) const navigate = useNavigate() return ( diff --git a/src/app/components/OutlinedContainer.tsx b/src/app/components/OutlinedContainer.tsx index a5f266cd..3ec50414 100644 --- a/src/app/components/OutlinedContainer.tsx +++ b/src/app/components/OutlinedContainer.tsx @@ -1,4 +1,5 @@ import * as React from 'react' + import { Box } from '@mui/material' export default function OutlinedContainer({ diff --git a/src/app/components/OverviewCards/OverviewCard.tsx b/src/app/components/OverviewCards/OverviewCard.tsx index 73d4cd4d..63175478 100644 --- a/src/app/components/OverviewCards/OverviewCard.tsx +++ b/src/app/components/OverviewCards/OverviewCard.tsx @@ -1,7 +1,8 @@ +import { Box, Card, CardContent, Typography } from '@mui/material' import React, { FC } from 'react' -import { Card, CardContent, Box, Typography } from '@mui/material' -import { Status } from 'types' + import LoadingWrapper from 'app/components/LoadingWrapper' +import { Status } from 'types' type OverviewCardProps = { title: string @@ -32,6 +33,7 @@ const OverviewCard: FC = ({ p: '1rem 2rem', borderRadius: '12px', cursor: onClick ? 'pointer' : 'default', + borderColor: 'card.border', }} onClick={onClick} > diff --git a/src/app/components/Statistics/BlockchainDataCharts/index.tsx b/src/app/components/Statistics/BlockchainDataCharts/index.tsx index c8a2c899..d5009f73 100644 --- a/src/app/components/Statistics/BlockchainDataCharts/index.tsx +++ b/src/app/components/Statistics/BlockchainDataCharts/index.tsx @@ -1,34 +1,35 @@ -import { Fragment, useEffect, useState } from 'react' +import 'react-datepicker/dist/react-datepicker.css' +import '../../../../styles/scrollbarModal.css' -import { mdiClose } from '@mdi/js' -import Icon from '@mdi/react' -import ArrowOutwardIcon from '@mui/icons-material/ArrowOutward' -import InfoIcon from '@mui/icons-material/Info' +import { + Box, + Card, + CardContent, + CardHeader, + CircularProgress, + IconButton, + Modal, + Tooltip, + Typography, +} from '@mui/material' +import { ConsumptionCharts, Emissions, TextProps } from 'types/statistics' +import { Fragment, useEffect, useState } from 'react' import { Grid, useTheme } from '@mui/material' -import Box from '@mui/material/Box' -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import CardHeader from '@mui/material/CardHeader' -import CircularProgress from '@mui/material/CircularProgress' -import IconButton from '@mui/material/IconButton' -import Modal from '@mui/material/Modal' -import Tooltip from '@mui/material/Tooltip' -import useWidth from 'app/hooks/useWidth' -import moment from 'moment' -import 'react-datepicker/dist/react-datepicker.css' +import { mdiArrowExpand, mdiClose, mdiInformationOutline } from '@mdi/js' import { useAppDispatch, useAppSelector } from 'store/configureStore' -import styled from 'styled-components' -import { Status } from 'types' -import { ConsumptionCharts, Emissions, TextProps } from 'types/statistics' -import '../../../../styles/scrollbarModal.css' -import TextBlockchainDatachart from '../../../../utils/statistics/TextBlockchainDatachart' + import DateRange from '../DateRange/DateRange' +import Icon from '@mdi/react' import LinearMeter from './LinearMeter' - import React from 'react' +import { Status } from 'types' +import TextBlockchainDatachart from '../../../../utils/statistics/TextBlockchainDatachart' +import moment from 'moment' +import styled from 'styled-components' +import useWidth from 'app/hooks/useWidth' + const TooltipContainer = styled.div` display: flex; - padding-top: 2rem; ` const LinearMeterContainer = styled.div` margin-top: -3rem; @@ -96,6 +97,16 @@ const BlockchainCharts = ({ const dataStatistics: Emissions = useAppSelector(sliceGetter) const loader = useAppSelector(sliceGetterLoader) + const onOpenModal = () => { + document.body.style.overflow = 'hidden' + setOpenModal(true) + } + + const onCloseModal = () => { + document.body.style.overflow = 'initial' + setOpenModal(false) + } + return ( {loader === Status.LOADING ? ( @@ -106,33 +117,47 @@ const BlockchainCharts = ({ ) : ( <> - + + {titleText} - - - + - + } action={ setOpenModal(true)} - style={{ - cursor: 'default', - color: 'GrayText', + onClick={onOpenModal} + sx={{ + color: `var(--camino-too-blue-to-be-true)`, + padding: '0.5rem', + border: '1px solid var(--camino-too-blue-to-be-true)', }} > - + } + sx={{ '& .MuiCardHeader-action': { alignSelf: 'center' } }} /> @@ -155,13 +180,12 @@ const BlockchainCharts = ({ { - setOpenModal(false) - }} + onClose={onCloseModal} sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center', + '& .MuiPaper-root': { backgroundImage: 'none' }, }} disableScrollLock={true} > @@ -190,11 +214,8 @@ const BlockchainCharts = ({ setOpenModal(false)} - style={{ - cursor: 'default', - color: isDark ? 'white' : 'black', - }} + onClick={onCloseModal} + style={{ cursor: 'default', color: isDark ? 'white' : 'black' }} > @@ -213,9 +234,21 @@ const BlockchainCharts = ({ alignItems="center" > - + {tooltipTitle} - + ` - margin-left: 3rem; - margin-right: 1rem; - margin-top: 0.5rem; - margin-bottom: 0.5rem; - border-radius: 0.5rem; - background: ${({ backgroundColor }) => backgroundColor}; - padding: 0.5rem; -` - const CO2ConsumptionCharts = ({ utilSlice, typeMeter, @@ -170,37 +158,47 @@ const CO2ConsumptionCharts = ({ ) : ( <> - + + {titleText} - - - + - + } - style={{ - marginBottom: '0rem', - marginLeft: '0.5rem', - }} action={ setOpenModal(true)} - style={{ - cursor: 'default', - color: 'GrayText', + sx={{ + color: `var(--camino-too-blue-to-be-true)`, + padding: '0.5rem', + border: '1px solid var(--camino-too-blue-to-be-true)', }} > - + } + sx={{ '& .MuiCardHeader-action': { alignSelf: 'center' } }} /> {firstLoad === true && ( @@ -241,6 +239,7 @@ const CO2ConsumptionCharts = ({ display: 'flex', justifyContent: 'center', alignItems: 'center', + '& .MuiPaper-root': { backgroundImage: 'none' }, }} disableScrollLock={true} > @@ -281,9 +280,21 @@ const CO2ConsumptionCharts = ({ alignItems="center" > - + {description} - + {meterCO2 != null && meterCO2 !== undefined && ( diff --git a/src/app/components/ValidatorsMap/Statistics.tsx b/src/app/components/ValidatorsMap/Statistics.tsx index d2fa8003..cca5f0e1 100644 --- a/src/app/components/ValidatorsMap/Statistics.tsx +++ b/src/app/components/ValidatorsMap/Statistics.tsx @@ -1,8 +1,8 @@ -import React from 'react' import Highcharts from 'highcharts' import HighchartsReact from 'highcharts-react-official' -import flags from './json/flags.json' +import React from 'react' import { IStatistics } from 'types/statistics' +import flags from './json/flags.json' const Statistics = ({ nodesPerCountry, darkMode }: IStatistics) => { const getUrlFlag = (index: string) => { @@ -48,6 +48,12 @@ const Statistics = ({ nodesPerCountry, darkMode }: IStatistics) => { legend: { itemStyle: { color: darkMode ? 'white' : 'black', + cursor: 'default', + }, + itemHoverStyle: { + opacity: 1, + color: darkMode ? 'white' : 'black', + cursor: 'default', }, }, series: [ @@ -57,6 +63,12 @@ const Statistics = ({ nodesPerCountry, darkMode }: IStatistics) => { color: '#41547C', data: nodesPerCountry.map(value => value.nodes.length), lineColor: 'transparent', // make the line invisible + showInLegend: true, + events: { + legendItemClick: function () { + return false + }, + }, }, ], credits: { @@ -79,4 +91,4 @@ const Statistics = ({ nodesPerCountry, darkMode }: IStatistics) => { ) } -export default Statistics +export default React.memo(Statistics) diff --git a/src/app/pages/CChainPages/Address/Transactions.tsx b/src/app/pages/CChainPages/Address/Transactions.tsx index f3d516a3..73217e56 100644 --- a/src/app/pages/CChainPages/Address/Transactions.tsx +++ b/src/app/pages/CChainPages/Address/Transactions.tsx @@ -1,17 +1,18 @@ -import React, { useRef, useEffect, useCallback, FC } from 'react' -import { Grid, TableContainer, Box, LinearProgress } from '@mui/material' -import { useLocation } from 'react-router-dom' -import { useInfiniteQuery } from 'react-query' -import { loadCAddressTransactions } from 'api' +import { Box, Grid, LinearProgress, TableContainer } from '@mui/material' +import React, { FC, useCallback, useEffect, useRef } from 'react' + import Address from './Address' -import TableView from 'app/components/Table/TableView' -import useWidth from 'app/hooks/useWidth' +import { CAddressTransactionTableData } from 'types/transaction' +import { ColumnType } from 'app/pages/Validators' import LoadingWrapper from 'app/components/LoadingWrapper' import { Status } from 'types' -import { queryClient } from '../../../../App' +import TableView from 'app/components/Table/TableView' import { getAddressFromUrl } from 'utils/route-utils' -import { CAddressTransactionTableData } from 'types/transaction' -import { ColumnType } from 'app/pages/Validators' +import { loadCAddressTransactions } from 'api' +import { queryClient } from '../../../../App' +import { useInfiniteQuery } from 'react-query' +import { useLocation } from 'react-router-dom' +import useWidth from 'app/hooks/useWidth' const Transactions: FC = () => { const location = useLocation() @@ -73,7 +74,7 @@ const Transactions: FC = () => { loadingBoxStyle={{ minHeight: '500px' }} > {status === 'success' && data && ( - + {isWidescreen || isDesktop ? ( {content} ) : ( diff --git a/src/app/pages/CChainPages/Blocks/BlockDetails.tsx b/src/app/pages/CChainPages/Blocks/BlockDetails.tsx index 6a49c4a5..1de5e1a0 100644 --- a/src/app/pages/CChainPages/Blocks/BlockDetails.tsx +++ b/src/app/pages/CChainPages/Blocks/BlockDetails.tsx @@ -1,17 +1,18 @@ +import { Box, Grid, Paper } from '@mui/material' import React, { FC } from 'react' -import { Grid, Paper, Box } from '@mui/material' -import { useLocation } from 'react-router-dom' -import { useAppDispatch, useAppSelector } from 'store/configureStore' -import { fetchCBlockDetail } from 'store/cchainSlice/utils' import { getCBlockDetail, getCBlockDetailStatus } from 'store/cchainSlice' -import { RoutesConfig } from 'utils/route-paths' -import { Status } from 'types' +import { useAppDispatch, useAppSelector } from 'store/configureStore' + +import BlockDetailView from './BlockDetailView' import LoadingWrapper from 'app/components/LoadingWrapper' -import TransactionsList from 'app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList' import PageContainer from 'app/components/PageContainer' -import BlockDetailView from './BlockDetailView' +import { RoutesConfig } from 'utils/route-paths' +import { Status } from 'types' import SubPageTitle from 'app/components/SubPageTitle' +import TransactionsList from 'app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList' +import { fetchCBlockDetail } from 'store/cchainSlice/utils' import { getBlockNumber } from 'utils/route-utils' +import { useLocation } from 'react-router-dom' const BlockDetails: FC = () => { const routesConfig = RoutesConfig() @@ -38,7 +39,6 @@ const BlockDetails: FC = () => { backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} diff --git a/src/app/pages/CChainPages/Blocks/index.tsx b/src/app/pages/CChainPages/Blocks/index.tsx index 27c3c4c4..54538501 100644 --- a/src/app/pages/CChainPages/Blocks/index.tsx +++ b/src/app/pages/CChainPages/Blocks/index.tsx @@ -1,17 +1,17 @@ +import { Box, Grid, LinearProgress, Paper, TableCellProps, TableContainer } from '@mui/material' import React, { FC } from 'react' -import { Grid, Paper, TableContainer, TableCellProps, Box, LinearProgress } from '@mui/material' -import { useInfiniteQuery } from 'react-query' -import { getBlocksPage } from 'api' -import { RoutesConfig } from 'utils/route-paths' -import PageContainer from 'app/components/PageContainer' + import Block from './Block' +import { BlockTableData } from 'types/block' +import PageContainer from 'app/components/PageContainer' +import { RoutesConfig } from 'utils/route-paths' +import SubPageTitle from 'app/components/SubPageTitle' import TableView from 'app/components/Table/TableView' +import { getBlocksPage } from 'api' +import { useInfiniteQuery } from 'react-query' import useWidth from 'app/hooks/useWidth' -import SubPageTitle from 'app/components/SubPageTitle' -import { BlockTableData } from 'types/block' const Blocks: FC = () => { - const routesConfig = RoutesConfig() const intObserver = React.useRef(null) const { isDesktop, isWidescreen } = useWidth() @@ -62,7 +62,6 @@ const Blocks: FC = () => { backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} @@ -75,7 +74,7 @@ const Blocks: FC = () => { > {status === 'success' && data && ( - + {isWidescreen || isDesktop ? ( {content} ) : ( diff --git a/src/app/pages/CChainPages/CChainPage.tsx b/src/app/pages/CChainPages/CChainPage.tsx index 815e9cce..e828f06b 100644 --- a/src/app/pages/CChainPages/CChainPage.tsx +++ b/src/app/pages/CChainPages/CChainPage.tsx @@ -1,16 +1,18 @@ import * as React from 'react' -import { getCchainOverreview } from 'store/cchainSlice' -import { Typography } from '@mui/material' -import { useAppSelector } from 'store/configureStore' + +import { fetchBlocksTransactionsCChain, loadBlocksTransactionstype } from 'api' +import { getValidatorsOverreview, getValidatorsStatus } from 'store/validatorsSlice' + +import DataControllers from 'app/components/DataControllers' import LatestBlocksAndTransactionsList from 'app/pages/CChainPages/LatestBlocksAndTransactionsList' +import LoadingWrapper from 'app/components/LoadingWrapper' import OverviewCards from 'app/components/OverviewCards' -import DataControllers from 'app/components/DataControllers' import PageContainer from 'app/components/PageContainer' -import { getValidatorsOverreview, getValidatorsStatus } from 'store/validatorsSlice' -import { useQuery } from 'react-query' -import { fetchBlocksTransactionsCChain, loadBlocksTransactionstype } from 'api' import { Status } from 'types' -import LoadingWrapper from 'app/components/LoadingWrapper' +import { Typography } from '@mui/material' +import { getCchainOverreview } from 'store/cchainSlice' +import { useAppSelector } from 'store/configureStore' +import { useQuery } from 'react-query' export default function CChainPage() { const validatorsLoading = useAppSelector(getValidatorsStatus) diff --git a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/BlockList.tsx b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/BlockList.tsx index a6143ebb..f790d575 100644 --- a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/BlockList.tsx +++ b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/BlockList.tsx @@ -23,7 +23,6 @@ const BlockList: FC = ({ title, items, to }) => { display: 'flex', backgroundColor: 'card.background', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', flexDirection: 'column', diff --git a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/Items/TransactionItem.tsx b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/Items/TransactionItem.tsx index 20aefa9b..e2692351 100644 --- a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/Items/TransactionItem.tsx +++ b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/Items/TransactionItem.tsx @@ -1,12 +1,13 @@ +import { Box, Grid, Typography } from '@mui/material' import React, { FC } from 'react' -import { Box, Typography, Grid } from '@mui/material' -import { mdiTransfer } from '@mdi/js' -import { CamAmount } from '../../../../components/CamAmount' + +import AddressLink from '../../../../components/AddressLink' import { CTransaction } from 'types/transaction' -import { RoutesConfig } from 'utils/route-paths' +import { CamAmount } from '../../../../components/CamAmount' import Icon from '@mdi/react' -import AddressLink from '../../../../components/AddressLink' import RelativeTime from '../../../../components/RelativeTime' +import { RoutesConfig } from 'utils/route-paths' +import { mdiTransfer } from '@mdi/js' import useWidth from 'app/hooks/useWidth' interface TransactionItemProps { diff --git a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList.tsx b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList.tsx index 44748bc4..673ea147 100644 --- a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList.tsx +++ b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/TransactionsList.tsx @@ -25,7 +25,6 @@ const TransactionsList: FC = ({ title, items, link }) => display: 'flex', backgroundColor: 'card.background', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', flexDirection: 'column', diff --git a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/index.tsx b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/index.tsx index ef1323e4..0e99923c 100644 --- a/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/index.tsx +++ b/src/app/pages/CChainPages/LatestBlocksAndTransactionsList/index.tsx @@ -1,9 +1,10 @@ import React, { FC } from 'react' -import { Grid } from '@mui/material' + +import BlockList from './BlockList' import { BlockTableData } from 'types/block' import { CTransaction } from 'types/transaction' +import { Grid } from '@mui/material' import { RoutesConfig } from 'utils/route-paths' -import BlockList from './BlockList' import TransactionsList from './TransactionsList' interface LatestBlocksAndTransactionsListProps { @@ -15,7 +16,6 @@ const LatestBlocksAndTransactionsList: FC blocks, transactions, }) => { - const routesConfig = RoutesConfig() return ( diff --git a/src/app/pages/CChainPages/Transactions/TransactionDetails.tsx b/src/app/pages/CChainPages/Transactions/TransactionDetails.tsx index 25d888bc..7ef44331 100644 --- a/src/app/pages/CChainPages/Transactions/TransactionDetails.tsx +++ b/src/app/pages/CChainPages/Transactions/TransactionDetails.tsx @@ -1,4 +1,11 @@ -import React, { FC, useState, useEffect } from 'react' +import { Box, Button, Grid, Paper, useTheme } from '@mui/material' +import React, { FC, useEffect, useState } from 'react' +import { + TrimmedTransactionDetails, + fetchNextTransactionDetails, + fetchPrevTransactionDetails, + getNextPrevTransaction, +} from './utils' import { changeCurrentIndex, clearTr, @@ -10,29 +17,23 @@ import { getNextPrevTx, resetLoadingStatusForNPTransactions, } from 'store/cchainSlice' -import { - fetchNextTransactionDetails, - fetchPrevTransactionDetails, - getNextPrevTransaction, - TrimmedTransactionDetails, -} from './utils' -import { fetchTransactionDetails } from 'store/cchainSlice/utils' +import { mdiChevronLeft, mdiChevronRight } from '@mdi/js' import { useAppDispatch, useAppSelector } from 'store/configureStore' -import { Grid, Paper, useTheme, Box, Button } from '@mui/material' -import { useNavigate } from 'react-router-dom' -import { Status } from 'types' -import { mdiTransfer } from '@mdi/js' -import { mdiChevronRight, mdiChevronLeft } from '@mdi/js' -import { RoutesConfig } from 'utils/route-paths' -import PageContainer from 'app/components/PageContainer' + import BackButton from 'app/components/BackButton' -import OutlinedContainer from 'app/components/OutlinedContainer' import DetailsField from 'app/components/DetailsField' import Icon from '@mdi/react' -import TransactionDetailView from './TransactionDetailView' +import OutlinedContainer from 'app/components/OutlinedContainer' +import PageContainer from 'app/components/PageContainer' +import RoundButton from 'app/components/RoundButton' +import { RoutesConfig } from 'utils/route-paths' +import { Status } from 'types' import SubPageTitle from 'app/components/SubPageTitle' +import TransactionDetailView from './TransactionDetailView' +import { fetchTransactionDetails } from 'store/cchainSlice/utils' import { getTransactionFromUrl } from 'utils/route-utils' -import RoundButton from 'app/components/RoundButton' +import { mdiTransfer } from '@mdi/js' +import { useNavigate } from 'react-router-dom' const TransactionDetails: FC = () => { const routesConfig = RoutesConfig() @@ -89,22 +90,23 @@ const TransactionDetails: FC = () => { }, [currentIndex]) return ( - + - + { /> {(detailTr || detailCr) && ( - + )} diff --git a/src/app/pages/CChainPages/Transactions/index.tsx b/src/app/pages/CChainPages/Transactions/index.tsx index 0ccf6d2a..1a703509 100644 --- a/src/app/pages/CChainPages/Transactions/index.tsx +++ b/src/app/pages/CChainPages/Transactions/index.tsx @@ -1,15 +1,16 @@ -import React, { FC, useRef, useCallback } from 'react' -import { Grid, Paper, TableContainer, Box, LinearProgress } from '@mui/material' -import { useInfiniteQuery } from 'react-query' -import { getTransactionsPage } from 'api' +import { Box, Grid, LinearProgress, Paper, TableContainer } from '@mui/material' +import React, { FC, useCallback, useRef } from 'react' + +import { ColumnType } from 'app/pages/Validators' import PageContainer from 'app/components/PageContainer' +import { RoutesConfig } from 'utils/route-paths' +import SubPageTitle from 'app/components/SubPageTitle' import TableView from 'app/components/Table/TableView' -import useWidth from 'app/hooks/useWidth' import Transaction from './Transaction' -import SubPageTitle from 'app/components/SubPageTitle' -import { RoutesConfig } from 'utils/route-paths' import { TransactionTableData } from 'types/transaction' -import { ColumnType } from 'app/pages/Validators' +import { getTransactionsPage } from 'api' +import { useInfiniteQuery } from 'react-query' +import useWidth from 'app/hooks/useWidth' const Transactions: FC = () => { const intObserver = useRef(null) @@ -69,7 +70,6 @@ const Transactions: FC = () => { backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} @@ -82,7 +82,7 @@ const Transactions: FC = () => { > {status === 'success' && data && ( - + {isWidescreen || isDesktop ? ( {content} ) : ( diff --git a/src/app/pages/Statistics/index.tsx b/src/app/pages/Statistics/index.tsx index 8f67a8ee..a2a41468 100644 --- a/src/app/pages/Statistics/index.tsx +++ b/src/app/pages/Statistics/index.tsx @@ -1,6 +1,6 @@ +import '../../../styles/datacharts.css' + import { Paper, useTheme } from '@mui/material' -import PageContainer from 'app/components/PageContainer' -import SubPageTitle from 'app/components/SubPageTitle' import React, { FC } from 'react' import { getActiveAddresses, @@ -24,12 +24,13 @@ import { loadGasUsed, loadUniqueAddresses, } from 'store/blockchainDatachartsSlice/utils' -import { typeChartData } from '../../../utils/statistics/ChartSelector' -import BlockchainCharts from '../../components/Statistics/BlockchainDataCharts' +import BlockchainCharts from '../../components/Statistics/BlockchainDataCharts' import Box from '@mui/material/Box' import Grid from '@mui/material/Grid' -import '../../../styles/datacharts.css' +import PageContainer from 'app/components/PageContainer' +import SubPageTitle from 'app/components/SubPageTitle' +import { typeChartData } from '../../../utils/statistics/ChartSelector' const Statistics: FC = () => { const theme = useTheme() @@ -43,10 +44,9 @@ const Statistics: FC = () => { sx={{ minHeight: '544px', width: 1, - backgroundColor: 'primary.dark', + backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} @@ -138,10 +138,9 @@ const Statistics: FC = () => { sx={{ minHeight: '544px', width: 1, - backgroundColor: 'primary.dark', + backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} diff --git a/src/app/pages/Validators/GridViewItem.tsx b/src/app/pages/Validators/GridViewItem.tsx index 14f54888..130fa5ea 100644 --- a/src/app/pages/Validators/GridViewItem.tsx +++ b/src/app/pages/Validators/GridViewItem.tsx @@ -1,11 +1,13 @@ import * as React from 'react' -import { Grid, Paper, Typography, Box } from '@mui/material' + +import { Box, Grid, Paper, Typography } from '@mui/material' + +import Chip from '@mui/material/Chip' +import CopyButton from '../../components/CopyToClipboardButton' import { Field } from 'app/components/DetailsField' +import Tooltip from '@mui/material/Tooltip' import { ValidatorType } from 'types/store' -import Chip from '@mui/material/Chip' import moment from 'utils/helpers/moment' -import Tooltip from '@mui/material/Tooltip' -import CopyButton from '../../components/CopyToClipboardButton' import useFeatureFlags from '../../../context/featureFlagProvider' export const GridViewItem = ({ validator }: { validator: ValidatorType }) => { @@ -35,7 +37,6 @@ export const GridViewItem = ({ validator }: { validator: ValidatorType }) => { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', }} > diff --git a/src/app/pages/Validators/index.tsx b/src/app/pages/Validators/index.tsx index 75ccfa2a..d1725105 100644 --- a/src/app/pages/Validators/index.tsx +++ b/src/app/pages/Validators/index.tsx @@ -75,10 +75,9 @@ const Validators: FC = () => { minHeight: '544px', width: 1, flex: 1, - backgroundColor: 'primary.dark', + backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} diff --git a/src/app/pages/XChainPages/Address/AddressSection.tsx b/src/app/pages/XChainPages/Address/AddressSection.tsx index 1ce9e6a2..7bd33b9a 100644 --- a/src/app/pages/XChainPages/Address/AddressSection.tsx +++ b/src/app/pages/XChainPages/Address/AddressSection.tsx @@ -1,10 +1,11 @@ -import React from 'react' -import { Grid, Box, Chip } from '@mui/material' +import { Box, Chip, Grid } from '@mui/material' + import AddressLink from 'app/components/AddressLink' -import moment from 'utils/helpers/moment' -import { getAddressFromUrl } from 'utils/route-utils' -import { RoutesConfig } from 'utils/route-paths' import { IAddress } from 'types/address' +import React from 'react' +import { RoutesConfig } from 'utils/route-paths' +import { getAddressFromUrl } from 'utils/route-utils' +import moment from 'utils/helpers/moment' export const AddressSection = ({ type, timestamp, id, chainType }: IAddress) => { const routesConfig = RoutesConfig() @@ -50,11 +51,7 @@ export const AddressSection = ({ type, timestamp, id, chainType }: IAddress) => diff --git a/src/app/pages/XChainPages/Address/InputOutputSection.tsx b/src/app/pages/XChainPages/Address/InputOutputSection.tsx index b165d208..e3d89cef 100644 --- a/src/app/pages/XChainPages/Address/InputOutputSection.tsx +++ b/src/app/pages/XChainPages/Address/InputOutputSection.tsx @@ -1,8 +1,9 @@ -import React from 'react' +import { Fund, InputsOutputs } from 'types/transaction' import { Grid, Paper, Typography } from '@mui/material' + import DetailsField from 'app/components/DetailsField' +import React from 'react' import useWidth from 'app/hooks/useWidth' -import { Fund, InputsOutputs } from 'types/transaction' export const InputOutputSection = ({ inputs, outputs }: InputsOutputs) => { const { isTablet } = useWidth() @@ -80,10 +81,14 @@ const InputCard = ({ address, value }: Fund) => { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', maxWidth: '500px', width: '100%', + borderRadius: '12px', + backgroundColor: 'card.background', + borderWidth: '1px', + borderStyle: 'solid', + borderColor: 'card.border', }} > { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', maxWidth: '500px', width: '100%', + borderRadius: '12px', + backgroundColor: 'card.background', + borderWidth: '1px', + borderStyle: 'solid', + borderColor: 'card.border', }} > - + @@ -126,7 +127,7 @@ const Panels = ({ value, chainType }: { value: number; chainType: ChainType }) = export const AddressOverviewCard = ({ balance }: { balance: number }) => { return ( - + diff --git a/src/app/pages/XChainPages/Address/XPAddressView.tsx b/src/app/pages/XChainPages/Address/XPAddressView.tsx index 116c10dc..d613364f 100644 --- a/src/app/pages/XChainPages/Address/XPAddressView.tsx +++ b/src/app/pages/XChainPages/Address/XPAddressView.tsx @@ -1,16 +1,18 @@ import * as React from 'react' -import { Grid, TableContainer, Divider } from '@mui/material' -import axios from 'axios' + +import { Divider, Grid, TableContainer } from '@mui/material' import { convertMemo, getInputFunds, getOutputFunds } from 'utils/magellan' -import { MagellanXPTransaction } from 'types/magellan-types' -import { useLocation } from 'react-router-dom' -import { ChainType } from 'utils/types/chain-type' +import { getBaseUrl, getChainID } from 'api/utils' + import { AddressSection } from './AddressSection' +import { ChainType } from 'utils/types/chain-type' import { InputOutputSection } from './InputOutputSection' -import { getBaseUrl, getChainID } from 'api/utils' -import { xpTransactionApi } from 'utils/magellan-api-utils' -import { getAddressFromUrl } from 'utils/route-utils' import { LoadsBlocksAndTransactions } from 'types/address' +import { MagellanXPTransaction } from 'types/magellan-types' +import axios from 'axios' +import { getAddressFromUrl } from 'utils/route-utils' +import { useLocation } from 'react-router-dom' +import { xpTransactionApi } from 'utils/magellan-api-utils' export function createTransaction(magellanTransaction: MagellanXPTransaction) { return { diff --git a/src/app/pages/XChainPages/Transactions/Transaction.tsx b/src/app/pages/XChainPages/Transactions/Transaction.tsx index 25c8e4f5..5641ddb4 100644 --- a/src/app/pages/XChainPages/Transactions/Transaction.tsx +++ b/src/app/pages/XChainPages/Transactions/Transaction.tsx @@ -1,15 +1,16 @@ -import React from 'react' -import { Grid, Paper, TableCell, TableRow, Typography, Chip } from '@mui/material' -import { Field } from 'app/components/DetailsField' -import { getAddressLink, GetTransactionType, GetAddressType } from 'utils/route-utils' -import { ChainType } from 'utils/types/chain-type' +import { Chip, Grid, Paper, TableCell, TableRow, Typography } from '@mui/material' +import { GetAddressType, GetTransactionType, getAddressLink } from 'utils/route-utils' + import AddressLink from 'app/components/AddressLink' -import useWidth from 'app/hooks/useWidth' -import moment from 'utils/helpers/moment' +import { ChainType } from 'utils/types/chain-type' +import { Field } from 'app/components/DetailsField' import { NoMaxWidthTooltip } from 'app/components/RelativeTime' -import { getChainTypeFromUrl } from 'utils/route-utils' -import { XPTransaction } from 'types/transaction' +import React from 'react' import { RoutesConfig } from 'utils/route-paths' +import { XPTransaction } from 'types/transaction' +import { getChainTypeFromUrl } from 'utils/route-utils' +import moment from 'utils/helpers/moment' +import useWidth from 'app/hooks/useWidth' interface Props { transaction: any @@ -37,7 +38,6 @@ const Transaction = React.forwardRef((props, ref) => { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', }} ref={ref} @@ -53,7 +53,6 @@ const Transaction = React.forwardRef((props, ref) => { gap: '10px', display: 'flex', flexDirection: 'column', - backgroundColor: 'primary.light', backgroundImage: 'none', }} > @@ -139,7 +138,7 @@ const GridItem = ({ transaction }: { transaction: XPTransaction }) => { @@ -222,7 +221,7 @@ const CustomRow = ({ transaction }: { transaction: XPTransaction }) => { diff --git a/src/app/pages/XChainPages/Transactions/XPTransactionDetailView.tsx b/src/app/pages/XChainPages/Transactions/XPTransactionDetailView.tsx index 2e592c49..1df3d407 100644 --- a/src/app/pages/XChainPages/Transactions/XPTransactionDetailView.tsx +++ b/src/app/pages/XChainPages/Transactions/XPTransactionDetailView.tsx @@ -1,12 +1,14 @@ import * as React from 'react' + import { Divider, Grid } from '@mui/material' -import OutlinedContainer from 'app/components/OutlinedContainer' + import DetailsField from 'app/components/DetailsField' +import { ITransactionDetailView } from 'types/transaction' +import Icon from '@mdi/react' import { InputOutputSection } from '../Address/InputOutputSection' -import { mdiCheckboxMarkedCircleOutline } from '@mdi/js' +import OutlinedContainer from 'app/components/OutlinedContainer' import { mdiAlertCircleOutline } from '@mdi/js' -import Icon from '@mdi/react' -import { ITransactionDetailView } from 'types/transaction' +import { mdiCheckboxMarkedCircleOutline } from '@mdi/js' function TransactionDetailView({ detailTr, inputs, outputs }: ITransactionDetailView) { return ( @@ -72,11 +74,15 @@ function TransactionDetailView({ detailTr, inputs, outputs }: ITransactionDetail type="string" style={{ padding: '1rem' }} /> - - - - + {inputs && inputs?.length > 0 && outputs && outputs?.length > 0 && ( + + )} + {inputs && inputs?.length > 0 && outputs && outputs?.length > 0 && ( + + + + )} )} diff --git a/src/app/pages/XChainPages/Transactions/XPTransactionsDetails.tsx b/src/app/pages/XChainPages/Transactions/XPTransactionsDetails.tsx index d1db99e5..f1381c5c 100644 --- a/src/app/pages/XChainPages/Transactions/XPTransactionsDetails.tsx +++ b/src/app/pages/XChainPages/Transactions/XPTransactionsDetails.tsx @@ -1,22 +1,25 @@ -import { mdiTransfer } from '@mdi/js' +import * as React from 'react' + import { Box, Grid, Paper, Typography } from '@mui/material' +import { convertMemo, getInputFunds, getOutputFunds } from 'utils/magellan' +import { getAddressFromUrl, getChainTypeFromUrl } from 'utils/route-utils' + import BackButton from 'app/components/BackButton' import CopyTitleCard from 'app/components/CopyTitleCard' import PageContainer from 'app/components/PageContainer' +import { RoutesConfig } from 'utils/route-paths' +import SubPageTitle from 'app/components/SubPageTitle' +import TransactionDetailView from './XPTransactionDetailView' +import { XPTransaction } from 'types/transaction' +import { XPTransactionDetail } from 'types/magellan-types' import axios from 'axios' +import { currentDateFormat } from 'utils/helpers/moment' +import { mdiTransfer } from '@mdi/js' import moment from 'moment' -import * as React from 'react' -import { useLocation } from 'react-router-dom' import { selectMagellanAddress } from 'store/app-config' -import { useAppSelector } from 'store/configureStore' -import { XPTransactionDetail } from 'types/magellan-types' -import { XPTransaction } from 'types/transaction' -import { currentDateFormat } from 'utils/helpers/moment' -import { convertMemo, getInputFunds, getOutputFunds } from 'utils/magellan' import { transactionApi } from 'utils/magellan-api-utils' -import { RoutesConfig } from 'utils/route-paths' -import { getAddressFromUrl, getChainTypeFromUrl } from 'utils/route-utils' -import TransactionDetailView from './XPTransactionDetailView' +import { useAppSelector } from 'store/configureStore' +import { useLocation } from 'react-router-dom' export default function XPTransactionDetails() { const routesConfig = RoutesConfig() @@ -73,34 +76,24 @@ export default function XPTransactionDetails() { variant="outlined" square sx={{ + display: 'flex', + flexDirection: 'column', minHeight: '680px', width: 1, backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} > - - - - - {`${location.pathname - .split('/')[3][0] - .toLocaleUpperCase()}-Chain Transaction`} - - + + {details && ( )} diff --git a/src/app/pages/XChainPages/Transactions/index.tsx b/src/app/pages/XChainPages/Transactions/index.tsx index 66d03287..c11a606d 100644 --- a/src/app/pages/XChainPages/Transactions/index.tsx +++ b/src/app/pages/XChainPages/Transactions/index.tsx @@ -1,15 +1,16 @@ -import React from 'react' -import { Grid, Paper, TableContainer, Box, LinearProgress } from '@mui/material' -import { useInfiniteQuery } from 'react-query' -import { getXPTransactions } from 'api' -import PageContainer from 'app/components/PageContainer' +import { Box, Grid, LinearProgress, Paper, TableContainer } from '@mui/material' + +import { ColumnType } from 'app/pages/Validators' import CutomTable from 'app/components/Table/TableView' -import useWidth from 'app/hooks/useWidth' -import Transaction from './Transaction' +import PageContainer from 'app/components/PageContainer' +import React from 'react' +import { RoutesConfig } from 'utils/route-paths' import SubPageTitle from 'app/components/SubPageTitle' +import Transaction from './Transaction' import { getChainTypeFromUrl } from 'utils/route-utils' -import { ColumnType } from 'app/pages/Validators' -import { RoutesConfig } from 'utils/route-paths' +import { getXPTransactions } from 'api' +import { useInfiniteQuery } from 'react-query' +import useWidth from 'app/hooks/useWidth' const XPTransactions = () => { const routesConfig = RoutesConfig() @@ -73,10 +74,9 @@ const XPTransactions = () => { sx={{ minHeight: '680px', width: 1, - backgroundColor: 'primary.dark', + backgroundColor: 'card.background', borderRadius: '12px', borderWidth: '1px', - borderColor: 'primary.light', borderStyle: 'solid', p: '1rem 1.5rem 1rem 1.5rem', }} @@ -92,7 +92,7 @@ const XPTransactions = () => { backToLink={routesConfig.BASE_PATH + '/' + chainType} /> {status === 'success' && data && ( - + {isWidescreen || isDesktop ? ( {content} ) : ( @@ -160,4 +160,4 @@ const columns: ColumnType[] = [ }, ] -export default XPTransactions \ No newline at end of file +export default XPTransactions diff --git a/src/index.css b/src/index.css index 8b137891..edbf7b34 100644 --- a/src/index.css +++ b/src/index.css @@ -1 +1,56 @@ +:root { + --border-radius-lg: 12px; + --border-radius-sm: 6px; + --spacing-space-md: 12px; + --spacing-space-base: 16px; + --spacing-space-sm: 8px; + --spacing-space-md: 12px; + --spacing-space-base: 16px; + --spacing-space-lg: 24px; + + --tailwind-slate-white: #ffffff; + --tailwind-slate-slate-50: #f8fafc; + --tailwind-slate-slate-100: #f1f5f9; + --tailwind-slate-slate-200: #e2e7f0; + --tailwind-slate-slate-300: #cbd4e2; + --tailwind-slate-slate-400: #94a2b8; + --tailwind-slate-slate-500: #64748b; + --tailwind-slate-slate-600: #475569; + --tailwind-slate-slate-700: #334155; + --tailwind-slate-slate-800: #1e293b; + --tailwind-slate-slate-900: #0f182a; + --tailwind-slate-slate-950: #020617; + + --camino-too-blue-to-be-true: #0085ff; + --camino-magento: #b440fc; + --camino-aphrodite-teal: #35e9ad; + --camino-aphrodite-aqua: #b5e3fd; + --camino-muted-blue: #317ca5; + + --camino-gradient-1: linear-gradient(90deg, #0085ff 0%, #b440fc 100%); + --camino-gradient-2: linear-gradient(90deg, #b440fc 0%, #35e9ad 100%); + --camino-gradient-3: linear-gradient(90deg, #35e9ad 0%, #0085ff 100%); + --camino-gradient-4: linear-gradient(90deg, #b440fc 0%, #0f182a 100%); + + --camino-primary-light: #b3daff; + --camino-primary-dark: #012c5d; + --camino-secondary-light: #e9c6fe; + --camino-secondary-dark: #37175c; + --camino-success-light: #18b728; + --camino-success-dark: #09de6b; + --camino-warning-light: #e5a21f; + --camino-warning-dark: #e5a21f; + --camino-error-light: #e5431f; + --camino-error-dark: #e5431f; +} + +html[data-theme='light'] { + --bg: #f1f5f9; + --bg-card: #ffffff; +} + +html[data-theme='dark'] { + --bg: #020617; + --bg-card: #020617; +} diff --git a/src/styles/theme/themes.ts b/src/styles/theme/themes.ts index 702eb6f7..299157c9 100644 --- a/src/styles/theme/themes.ts +++ b/src/styles/theme/themes.ts @@ -71,7 +71,7 @@ export const LightThemePalette: Partial = { contrastText: '#0F172A', }, secondary: { - main: '#149EED', + main: '#0085FF', light: '#B440FC', dark: '#7E2DB0', contrastText: '#0F172A', @@ -104,7 +104,7 @@ export const LightThemePalette: Partial = { card: { background: '#FFFFFF', navBar: '#FFFFFF', - border: '#CBD5E1', + border: '#CBD4E2', title: '#0F172A', subValue: '#334155', contrastText: '#0F172A', @@ -146,7 +146,7 @@ export const DarkThemePalette: Partial = { contrastText: '#FFFFFF', }, secondary: { - main: '#149EED', + main: '#0085FF', light: '#B440FC', dark: '#7E2DB0', contrastText: '#0F172A', @@ -177,9 +177,9 @@ export const DarkThemePalette: Partial = { }, grey: grey, card: { - background: '#0F172A', - navBar: '#0F172A', - border: alpha('#919EAB', 0.24), + background: `var(--bg)`, + navBar: `var(--bg)`, + border: '#334155', title: '#64748B', subValue: '#64748B', contrastText: '#FFFFFF', @@ -342,14 +342,16 @@ const defaultComponents = { }, }, }, - MuiPaper: { - styleOverrides: { - root: { - boxShadow: '0px 0px 5px rgba(0, 0, 0, 0.1)', - borderRadius: '7px', - }, - }, - }, + // MuiPaper: { + // styleOverrides: { + // root: { + // // boxShadow: '0px 0px 5px rgba(0, 0, 0, 0.1)', + // boxShadow: 'none', + // borderRadius: '7px', + // borderColor: 'card.border', + // }, + // }, + // }, MuiTab: { styleOverrides: { root: { @@ -403,6 +405,15 @@ const defaultComponents = { export const lightTheme = createTheme({ palette: LightThemePalette, components: { + MuiPaper: { + styleOverrides: { + root: { + boxShadow: 'none', + borderRadius: '7px', + borderColor: '#CBD4E2', + }, + }, + }, MuiCssBaseline: { styleOverrides: { body: { @@ -445,10 +456,19 @@ export const lightTheme = createTheme({ export const darkTheme = createTheme({ palette: DarkThemePalette, components: { + MuiPaper: { + styleOverrides: { + root: { + boxShadow: 'none', + borderRadius: '7px', + borderColor: '#334155', + }, + }, + }, MuiCssBaseline: { styleOverrides: { body: { - backgroundColor: '#0F172A', + backgroundColor: `var(--bg)`, }, }, }, diff --git a/src/types/filesInComponents.ts b/src/types/filesInComponents.ts index c52f7821..d217f848 100644 --- a/src/types/filesInComponents.ts +++ b/src/types/filesInComponents.ts @@ -1,6 +1,6 @@ export interface IDetailsField { field: string - value?: string | number + value?: string | number | React.ReactElement type: string icon?: React.ReactElement tooltip?: string @@ -13,7 +13,7 @@ export interface IDetailsField { export interface IField { type: string - value?: number | string + value?: number | string | React.ReactElement fontWeight?: string abbreviate?: boolean field?: string diff --git a/src/utils/statistics/TextBlockchainDatachart.tsx b/src/utils/statistics/TextBlockchainDatachart.tsx index f8743416..5816fe8f 100644 --- a/src/utils/statistics/TextBlockchainDatachart.tsx +++ b/src/utils/statistics/TextBlockchainDatachart.tsx @@ -1,8 +1,8 @@ -import { useTheme } from '@mui/material' -import moment from 'moment' -import React from 'react' import { IBlockChainDataChart } from 'types/statistics' +import React from 'react' +import { Typography } from '@mui/material' import { currentDateFormat } from 'utils/helpers/moment' +import moment from 'moment' import { seeTimeAxis } from '../../app/components/Statistics/ChartConfig/SeeTimeAxis' import { typeChartData } from './ChartSelector' @@ -15,8 +15,6 @@ const TextBlockchainDatachart = ({ isDescriptionOfHighest, timeSeeAxis, }: IBlockChainDataChart) => { - const theme = useTheme() - const isDark = theme.palette.mode === 'dark' const getLowestDate = () => { if (dataStatistics.lowestDate !== null && dataStatistics.lowestDate !== undefined) { let dateString = validateTypeTimeFilter(dataStatistics.lowestDate) @@ -85,43 +83,115 @@ const TextBlockchainDatachart = ({ {isDescriptionOfHighest ? ( <> {typeStatistic === typeChartData.DAILY_TRANSACTIONS && ( - + Highest number of {dataStatistics.highestValue} transactions on
{`${getHighestDate()}`} -
+
)} {typeStatistic === typeChartData.UNIQUE_ADRESSES && ( - + Highest increase of {dataStatistics.highestValue} new addresses was recorded on
{`${getHighestDate()}`} -
+
)} {typeStatistic === typeChartData.ACTIVE_ADDRESSES && ( - + Highest number of {dataStatistics.highestValue} addresses on
{`${getHighestDate()}`} -
+ )} ) : ( <> {typeStatistic === typeChartData.DAILY_TRANSACTIONS && ( - + Lowest number of {dataStatistics.lowestValue} transactions on
{`${getLowestDate()}`} -
+ )} {typeStatistic === typeChartData.UNIQUE_ADRESSES && ( - + Lowest increase of {dataStatistics.lowestValue} new addresses was recorded on
{`${getLowestDate()}`} -
+ )} {typeStatistic === typeChartData.ACTIVE_ADDRESSES && ( - + Lowest number of {dataStatistics.lowestValue} addresses on
{`${getLowestDate()}`} -
+ )} )}