https://xpr.antelope.tools/block-producers/protonnz
diff --git a/webapp/src/components/EmptyState/index.js b/webapp/src/components/EmptyState/index.js
index e933505e..0f22a430 100644
--- a/webapp/src/components/EmptyState/index.js
+++ b/webapp/src/components/EmptyState/index.js
@@ -1,14 +1,14 @@
import React from 'react'
-import { Link as RouterLink } from 'react-router-dom'
+import { Link } from 'react-router-dom'
import { makeStyles } from '@mui/styles'
import { useTranslation } from 'react-i18next'
-import Link from '@mui/material/Link'
+import Button from '@mui/material/Button'
import styles from './styles'
const useStyles = makeStyles(styles)
-const EmptyState = () => {
+const EmptyState = ({ isNonCompliant }) => {
const classes = useStyles()
const { t } = useTranslation('producerCardComponent')
@@ -21,15 +21,17 @@ const EmptyState = () => {
alt=""
/>
{t('emptyState')}
-
- {t('viewList')}
-
+ {isNonCompliant && (
+
+ )}
)
}
diff --git a/webapp/src/components/EmptyState/styles.js b/webapp/src/components/EmptyState/styles.js
index 7c4a1d31..0cd34541 100644
--- a/webapp/src/components/EmptyState/styles.js
+++ b/webapp/src/components/EmptyState/styles.js
@@ -23,10 +23,10 @@ export default (theme) => ({
alignItems: 'center',
justifyContent: 'center',
'& svg': {
- color: theme.palette.error.light
+ color: theme.palette.error.light,
},
'& span': {
- marginTop: theme.spacing(1),
+ margin: theme.spacing(1, 4, 0),
},
},
imgError: {
diff --git a/webapp/src/components/NodesList/styles.js b/webapp/src/components/NodesList/styles.js
index 52d8686a..cdfc798f 100644
--- a/webapp/src/components/NodesList/styles.js
+++ b/webapp/src/components/NodesList/styles.js
@@ -20,6 +20,7 @@ export default (theme) => ({
},
cardRow: {
display: 'grid',
+ gap: theme.spacing(2),
gridTemplateColumns: '60px 240px 4fr',
alignItems: 'center',
width: '100%',
diff --git a/webapp/src/components/NonCompliantCard/index.js b/webapp/src/components/NonCompliantCard/index.js
deleted file mode 100644
index c156d637..00000000
--- a/webapp/src/components/NonCompliantCard/index.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/* eslint camelcase: 0 */
-import React, { memo } from 'react'
-import { makeStyles } from '@mui/styles'
-import { useTranslation } from 'react-i18next'
-import { Link as RouterLink } from 'react-router-dom'
-import Link from '@mui/material/Link'
-import Typography from '@mui/material/Typography'
-import moment from 'moment'
-
-import { eosConfig, generalConfig } from '../../config'
-import { formatWithThousandSeparator } from '../../utils'
-import HealthCheck from '../HealthCheck'
-import HealthCheckInfo from 'components/HealthCheck/HealthCheckInfo'
-import isValidUrl from '../../utils/validate-url'
-import VisitSite from 'components/VisitSite'
-
-import styles from './styles'
-
-const useStyles = makeStyles(styles)
-
-const NonCompliantCard = ({ producer, stats }) => {
- const classes = useStyles()
- const { t } = useTranslation('producerCardComponent')
- const { healthLights } = generalConfig
-
- const getHealthStatus = healthCheck => {
- return healthCheck.valid ? healthLights.greenLight : healthLights.redLight
- }
-
- const RowInfo = ({ title, value }) => {
- return (
-
-
- {title}:
-
- {value}
-
- )
- }
-
- return (
- <>
-
-
- {producer.owner}
-
- {t('noInfo')}
-
- {t('bpJsonGenerator')}
-
-
-
-
- {t('info')}
-
-
-
- {t('website')}:
-
- {isValidUrl(producer.url) ? (
- <>
-
-
-
-
-
-
- >
- ) : (
-
{t('invalidUrl')}
- )}
-
- {isValidUrl(producer.url) && (
-
-
- {t('bpJson')}:
-
-
-
- )}
-
-
-
-
-
- {t('dailyRewards')}
-
-
-
-
- {t('yearlyRewards')}
-
-
-
-
- >
- )
-}
-
-NonCompliantCard.propTypes = {}
-
-export default memo(NonCompliantCard)
diff --git a/webapp/src/components/NonCompliantCard/styles.js b/webapp/src/components/NonCompliantCard/styles.js
deleted file mode 100644
index c44f680e..00000000
--- a/webapp/src/components/NonCompliantCard/styles.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default (theme) => ({
- flex: {
- display: 'flex',
- flexWrap: 'wrap',
- '& .MuiTypography-body1': {
- margin: theme.spacing(1),
- },
- },
- title: {
- fontWeight: 'bold !important',
- fontSize: '12px !important',
- textTransform: 'uppercase',
- },
- bold: {
- fontWeight: '600 !important',
- },
- text: {
- width: '60px',
- },
- account: {
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'center',
- alignItems: 'center',
- alignSelf: 'center',
- [theme.breakpoints.down('sm')]: {
- borderBottom: `1px solid ${theme.palette.neutral.main}`,
- paddingBottom: theme.spacing(4),
- },
- },
- content: {
- width: '250px',
- height: 'auto',
- margin: '0px',
- flexGrow: '1',
- [theme.breakpoints.down('lg')]: {
- width: '150px',
- },
- [theme.breakpoints.down('sm')]: {
- width: '100%',
- },
- },
- borderLine: {
- [theme.breakpoints.up('sm')]: {
- marginTop: theme.spacing(3),
- marginBottom: theme.spacing(3),
- borderLeft: `1px solid ${theme.palette.neutral.main}`,
- padding: theme.spacing(0, 3, 0),
- },
- [theme.breakpoints.down('sm')]: {
- marginLeft: theme.spacing(3),
- },
- },
- lightIcon: {
- '& svg': {
- marginLeft: theme.spacing(2),
- },
- },
-})
diff --git a/webapp/src/components/NonCompliantRow/index.js b/webapp/src/components/NonCompliantRow/index.js
new file mode 100644
index 00000000..7c9cc2e0
--- /dev/null
+++ b/webapp/src/components/NonCompliantRow/index.js
@@ -0,0 +1,109 @@
+/* eslint camelcase: 0 */
+import React, { memo } from 'react'
+import { Link as RouterLink } from 'react-router-dom'
+import { makeStyles } from '@mui/styles'
+import { useTranslation } from 'react-i18next'
+import LanguageIcon from '@mui/icons-material/Language'
+import Link from '@mui/material/Link'
+import TableCell from '@mui/material/TableCell'
+import Typography from '@mui/material/Typography'
+import moment from 'moment'
+
+import { eosConfig, generalConfig } from '../../config'
+import { formatWithThousandSeparator } from '../../utils'
+import HealthCheck from '../HealthCheck'
+import HealthCheckInfo from 'components/HealthCheck/HealthCheckInfo'
+import isValidUrl from '../../utils/validate-url'
+import VisitSite from 'components/VisitSite'
+
+import styles from './styles'
+
+const useStyles = makeStyles(styles)
+
+const NonCompliantRow = ({ producer, tokenPrice }) => {
+ const classes = useStyles()
+ const { t } = useTranslation('producerCardComponent')
+ const { healthLights } = generalConfig
+
+ const getHealthStatus = healthCheck => {
+ return healthCheck.valid ? healthLights.greenLight : healthLights.redLight
+ }
+
+ return (
+ <>
+
+ {`${producer.rank}`}
+
+
+
+
+ {producer.owner}
+
+
+
+ {isValidUrl(producer.url) ? (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+ >
+ ) : (
+
+ {t('invalidUrl')}
+
+ )}
+
+ {`${formatWithThousandSeparator(
+ producer.total_votes_eos,
+ 0,
+ )}`}
+
+
+ {`${moment(producer.last_claim_time).format(
+ 'll',
+ )}`}
+
+
+ {`${formatWithThousandSeparator(
+ producer.total_rewards,
+ 0,
+ )} ${eosConfig.tokenSymbol}`}
+ {`$${formatWithThousandSeparator(
+ producer.total_rewards * tokenPrice,
+ 0,
+ )} USD`}
+
+
+ {`${formatWithThousandSeparator(
+ producer.total_rewards * 365,
+ 0,
+ )} ${eosConfig.tokenSymbol}`}
+ {`$${formatWithThousandSeparator(
+ producer.total_rewards * 365 * tokenPrice,
+ 0,
+ )} USD`}
+
+ >
+ )
+}
+
+NonCompliantRow.propTypes = {}
+
+export default memo(NonCompliantRow)
diff --git a/webapp/src/components/NonCompliantRow/styles.js b/webapp/src/components/NonCompliantRow/styles.js
new file mode 100644
index 00000000..a7d652c2
--- /dev/null
+++ b/webapp/src/components/NonCompliantRow/styles.js
@@ -0,0 +1,18 @@
+export default (theme) => ({
+ websiteContainer: {
+ display: 'flex',
+ gap: theme.spacing(1),
+ flexWrap: 'nowrap',
+ justifyContent: 'center',
+ alignItems: 'center',
+ '& div > svg': {
+ marginTop: theme.spacing(1),
+ },
+ [theme.breakpoints.down('md')]: {
+ gap: theme.spacing(2),
+ },
+ [theme.breakpoints.down('sm')]: {
+ gap: theme.spacing(8),
+ },
+ },
+})
diff --git a/webapp/src/components/ProducerName/styles.js b/webapp/src/components/ProducerName/styles.js
index c2095e2c..9dcf88b7 100644
--- a/webapp/src/components/ProducerName/styles.js
+++ b/webapp/src/components/ProducerName/styles.js
@@ -44,8 +44,8 @@ export default (theme) => ({
},
},
smallAvatar: {
- width: '56px',
- height: '56px',
+ width: '40px',
+ height: '40px',
},
bigAvatar: {
width: '104px',
diff --git a/webapp/src/components/ProducersTable/ProducerRow.js b/webapp/src/components/ProducersTable/ProducerRow.js
index 2a2cc961..4b1dd8c1 100644
--- a/webapp/src/components/ProducersTable/ProducerRow.js
+++ b/webapp/src/components/ProducersTable/ProducerRow.js
@@ -120,7 +120,7 @@ const ProducerRow = ({ producer, index }) => {
{producer?.rank && eosConfig.producerColumns?.includes('rank') && (
{`${producer?.rank}`}
diff --git a/webapp/src/components/ProducersTable/index.js b/webapp/src/components/ProducersTable/index.js
index 0cf19eb2..359109b1 100644
--- a/webapp/src/components/ProducersTable/index.js
+++ b/webapp/src/components/ProducersTable/index.js
@@ -15,11 +15,15 @@ import Typography from '@mui/material/Typography'
import { eosConfig } from '../../config'
import styles from './styles'
-import ProducerRow from './ProducerRow'
const useStyles = makeStyles(styles)
-const ProducersTable = ({ producers }) => {
+const ProducersTable = ({
+ columnsNames,
+ producers,
+ RowComponent,
+ RowProps,
+}) => {
const classes = useStyles()
const navigate = useNavigate()
const { t } = useTranslation('producerCardComponent')
@@ -35,7 +39,7 @@ const ProducersTable = ({ producers }) => {
- {eosConfig.producerColumns.map((name) => (
+ {columnsNames.map(name => (
{t(name)}
@@ -51,7 +55,7 @@ const ProducersTable = ({ producers }) => {
className={classes.tableRow}
key={`bp-${producer?.owner}-${index}`}
>
-
+
))}
diff --git a/webapp/src/components/ProducersTable/styles.js b/webapp/src/components/ProducersTable/styles.js
index 41dd51f1..5c10c09c 100644
--- a/webapp/src/components/ProducersTable/styles.js
+++ b/webapp/src/components/ProducersTable/styles.js
@@ -14,12 +14,15 @@ export default (theme) => ({
},
tableRow: {
'& .MuiTableCell-root': {
- padding: `${theme.spacing(1, 2)} !important`,
+ padding: `${theme.spacing(2)} !important`,
},
'&:hover': {
backgroundColor: `${theme.palette.neutral.lighter}`,
cursor: 'pointer',
},
+ '& a': {
+ margin: 0,
+ },
},
tableHead: {
borderBottom: `2px solid ${theme.palette.primary.main} !important`,
@@ -44,11 +47,6 @@ export default (theme) => ({
textOverflow: 'ellipsis',
width: '140px',
},
- [theme.breakpoints.down('md')]: {
- '& > a': {
- margin: 0,
- },
- },
},
countryContainer: {
[theme.breakpoints.down('md')]: {
diff --git a/webapp/src/language/en.json b/webapp/src/language/en.json
index e05dff78..075b3e3c 100644
--- a/webapp/src/language/en.json
+++ b/webapp/src/language/en.json
@@ -214,7 +214,12 @@
"rewards": "Rewards",
"rewardsPercentage": "Percentage of rewards",
"viewList": "View full list",
- "paidProducersText": "Daily Rewards"
+ "paidProducersText": "Daily Rewards",
+ "publishBPDetails": "Publish BP Details",
+ "generateBPjson": "Generate a BP.json",
+ "tooltip": {
+ "generateBPjson": "BPs can easily create and update their bp.json for transparency."
+ }
},
"nodesRoute": {},
"nodesDistributionRoute": {},
@@ -328,15 +333,7 @@
"rewards": "Rewards",
"country": "Country",
"eosRate": "EOS RATE",
- "p2pEndpoints": "Endpoints (P2P)",
- "apiEndpoints": "Endpoints (HTTPS / HTTPS)",
- "pingFromCostaRica": "Ping from Costa Rica",
- "serverVersion": "Server version",
- "secondsAgo": "s ago",
- "lastChecked": "Last Checked",
"missedBlocks": "Missed Blocks",
- "businessContact": "Business Contact",
- "technicalContact": "Technical Contact",
"social": "Social",
"ownershipDisclosure": "Ownership Disclosure",
"codeofconduct": "Code of Conduct",
@@ -346,31 +343,24 @@
"features": "Features",
"endpoints": "Endpoints",
"nodeVersion": "Version",
- "emptyNode": "Empty info for nodes",
"cpuBenchmark": "CPU Benchmark Average",
"health": "Compliance",
- "collapse": "Collapse",
"moreInfo": "More Info",
"version": "Version",
"info": "Info",
"keys": "Keys",
"location": "Location",
"stats": "Stats",
- "noData": "No Data",
"peer_keys": "Peer Key",
- "account_key": "Account Key",
- "hs_bpJson": "BP JSON",
"emptyState": "This block producer does not provide any information.",
"average": "average rating",
"ratings": "ratings",
"lastClaimTime": "Last Claimed Time",
- "noInfo": "No info provided",
"dailyRewards": "Daily Rewards",
"yearlyRewards": "Yearly Rewards",
"invalidUrl": "Invalid URL",
"viewList": "View undiscoverable BPs list",
"bpJson": "BP.json",
- "bpJsonGenerator": "BP JSON Generator",
"viewProfile": "View BP Profile",
"BPonNetwork": "{{position}} Block Producer on {{networkName}}",
"generalInformation": "General Information",
diff --git a/webapp/src/language/es.json b/webapp/src/language/es.json
index df2e2d02..7df2b3ce 100644
--- a/webapp/src/language/es.json
+++ b/webapp/src/language/es.json
@@ -218,7 +218,12 @@
"rewards": "Recompensas",
"rewardsPercentage": "Porcentaje de recompensas",
"viewList": "Ver lista completa",
- "paidProducersText": "Recompensas Diarias"
+ "paidProducersText": "Recompensas Diarias",
+ "publishBPDetails": "Publicar datos de BP",
+ "generateBPjson": "Generar un BP.json",
+ "tooltip": {
+ "generateBPjson": "BPs pueden fácilmente crear y actualizar sus bp.json para ser transparentes."
+ }
},
"nodesRoute": {},
"nodesDistributionRoute": {},
@@ -329,15 +334,7 @@
"rewards": "Recompensas",
"country": "País",
"eosRate": "EOS RATE",
- "p2pEndpoints": "(P2P)",
- "apiEndpoints": "(HTTPS / HTTPS)",
- "pingFromCostaRica": "Ping desde Costa Rica",
- "serverVersion": "Versión del servidor",
- "secondsAgo": "s atras",
- "lastChecked": "Verificado por última vez",
"missedBlocks": "Bloques perdidos",
- "businessContact": "Contacto del negocio",
- "technicalContact": "Contacto técnico",
"social": "Social",
"ownershipDisclosure": "Divulgación de propiedad",
"codeofconduct": "Código de conducta",
@@ -347,31 +344,24 @@
"features": "Características",
"endpoints": "Endpoints",
"nodeVersion": "Versión",
- "emptyNode": "Sin información para nodos",
"cpuBenchmark": "Promedio del Benchmark de CPU",
"health": "Cumplimiento",
- "collapse": "Colapsar",
"moreInfo": "Más Información",
"version": "Versión",
"info": "Info",
"keys": "Llaves",
"location": "Ubicación",
"stats": "Estadísticas",
- "noData": "No hay Datos",
"peer_keys": "Peer",
- "account_key": "Cuenta",
- "hs_bpJson": "BP Json",
"emptyState": "Este productor de bloques no proporciona ninguna información.",
"average": "calificación promedio",
"ratings": "calificaciones",
"lastClaimTime": "Último reclamo",
- "noInfo": "No provee información",
"dailyRewards": "Recompensas diarias",
"yearlyRewards": "Recompensas anuales",
"invalidUrl": "URL inválida",
"viewList": "Ver lista de BPs indetectables",
"bpJson": "BP.json",
- "bpJsonGenerator": "Generar BP JSON",
"viewProfile": "Ver Perfil del BP",
"BPonNetwork": "{{position}} Productor de Bloques en {{networkName}}",
"generalInformation": "Información General",
diff --git a/webapp/src/routes/BPJson/useBPJsonState.js b/webapp/src/routes/BPJson/useBPJsonState.js
index b63314c3..0600eb60 100644
--- a/webapp/src/routes/BPJson/useBPJsonState.js
+++ b/webapp/src/routes/BPJson/useBPJsonState.js
@@ -1,5 +1,4 @@
import { useEffect, useState } from 'react'
-import { useLocation } from 'react-router-dom'
import EosApi from 'eosjs-api'
import axios from 'axios'
import { useTranslation } from 'react-i18next'
@@ -78,7 +77,7 @@ const getBpJSONChain = async (producer) => {
}
const useBPJsonState = () => {
- const emptyBPJson = {
+ const initData = {
account_name: '',
org: {
candidate_name: '',
@@ -119,24 +118,10 @@ const useBPJsonState = () => {
const [{ ual }] = useSharedState()
const { t } = useTranslation('bpJsonRoute')
- const location = useLocation()
const [producer, setProducer] = useState(null)
const [loading, setLoading] = useState(true)
const [error, setError] = useState(null)
const [inconsistencyMessage, setInconsistencyMessage] = useState(null)
- const [initData, setInitData] = useState(emptyBPJson)
-
- useEffect(() => {
- setInitData((prev) => ({
- ...prev,
- org: {
- ...prev.org,
- candidate_name: location.state?.owner || '',
- website: location.state?.url,
- },
- }))
- window.history.replaceState({}, document.title)
- }, [location, setInitData])
const handleOnSubmit = async (payload) => {
if (!ual.activeUser || !payload) return
diff --git a/webapp/src/routes/BlockProducers/index.js b/webapp/src/routes/BlockProducers/index.js
index 7b5a6d2d..79565bc6 100644
--- a/webapp/src/routes/BlockProducers/index.js
+++ b/webapp/src/routes/BlockProducers/index.js
@@ -14,6 +14,7 @@ import useBlockProducerState from '../../hooks/customHooks/useBlockProducerState
import NoResults from '../../components/NoResults'
import ProducersUpdateLog from '../../components/ProducersUpdateLog'
import ProducersTable from '../../components/ProducersTable'
+import ProducerRow from '../../components/ProducersTable/ProducerRow'
import styles from './styles'
@@ -80,7 +81,11 @@ const Producers = () => {
) : !!items?.length ? (
<>
-
+
{
) : (
)}
-
>
)
}
diff --git a/webapp/src/routes/NonCompliantBPs/RewardsStats.js b/webapp/src/routes/NonCompliantBPs/RewardsStats.js
index 38c3493e..b256455b 100644
--- a/webapp/src/routes/NonCompliantBPs/RewardsStats.js
+++ b/webapp/src/routes/NonCompliantBPs/RewardsStats.js
@@ -1,7 +1,9 @@
/* eslint camelcase: 0 */
import React, { memo } from 'react'
+import { Link } from 'react-router-dom'
import { makeStyles } from '@mui/styles'
import { useTranslation } from 'react-i18next'
+import Button from '@mui/material/Button'
import Typography from '@mui/material/Typography'
import { eosConfig } from '../../config'
@@ -17,7 +19,7 @@ const RewardsStats = ({ stats }) => {
const { t } = useTranslation('rewardsDistributionRoute')
return (
- <>
+
@@ -62,7 +64,21 @@ const RewardsStats = ({ stats }) => {
- >
+
+
+
+
+
+
)
}
diff --git a/webapp/src/routes/NonCompliantBPs/index.js b/webapp/src/routes/NonCompliantBPs/index.js
index 72711967..d553f4b0 100644
--- a/webapp/src/routes/NonCompliantBPs/index.js
+++ b/webapp/src/routes/NonCompliantBPs/index.js
@@ -1,21 +1,27 @@
/* eslint camelcase: 0 */
import React, { memo } from 'react'
-import { makeStyles } from '@mui/styles'
import Card from '@mui/material/Card'
import LinearProgress from '@mui/material/LinearProgress'
import useNonCompliantState from '../../hooks/customHooks/useNonCompliantState'
import NoResults from '../../components/NoResults'
-import NonCompliantCard from '../../components/NonCompliantCard'
+import ProducersTable from '../../components/ProducersTable'
+import NonCompliantRow from '../../components/NonCompliantRow'
-import styles from './styles'
import RewardsStats from './RewardsStats'
-const useStyles = makeStyles(styles)
-
const NonCompliantBPs = () => {
- const classes = useStyles()
const [{ items, stats, loading }] = useNonCompliantState()
+ const columnsNames = [
+ 'rank',
+ 'producerName',
+ 'website',
+ 'bpJson',
+ 'votes',
+ 'lastClaimTime',
+ 'dailyRewards',
+ 'yearlyRewards',
+ ]
return (
<>
@@ -25,22 +31,18 @@ const NonCompliantBPs = () => {
<>
{!!items?.length && stats ? (
<>
-
-
-
-
- {items.map((producer, index) => (
-
-
-
- ))}
-
+
+
+
+
>
) : (
-
+
)}
>
)}
diff --git a/webapp/src/routes/NonCompliantBPs/styles.js b/webapp/src/routes/NonCompliantBPs/styles.js
index 5f6343dc..3be65d11 100644
--- a/webapp/src/routes/NonCompliantBPs/styles.js
+++ b/webapp/src/routes/NonCompliantBPs/styles.js
@@ -9,13 +9,10 @@ export default (theme) => ({
display: 'flex',
flexFlow: 'row nowrap',
gap: theme.spacing(6),
- margin: `${theme.spacing(6)} 24px ${theme.spacing(4)}`,
+ margin: theme.spacing(6, 0, 4),
paddingBottom: theme.spacing(4),
borderBottom: `1px solid ${theme.palette.neutral.light}`,
- [theme.breakpoints.down('lg')]: {
- margin: theme.spacing(6, 0, 4),
- },
- [theme.breakpoints.down('sm')]: {
+ [theme.breakpoints.down('md')]: {
flexFlow: 'row wrap',
gap: theme.spacing(2),
},
@@ -25,39 +22,10 @@ export default (theme) => ({
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
- [theme.breakpoints.down('sm')]: {
+ alignItems: 'center',
+ [theme.breakpoints.down('md')]: {
minWidth: '150px',
minHeight: '55px',
}
},
- bpsContainer: {
- display: 'grid',
- gap: theme.spacing(4, 6),
- gridTemplateColumns:
- 'repeat(auto-fit, minmax( min( calc( 50% - 100px ), 600px ), auto))',
- margin: '0 24px',
- [theme.breakpoints.down('lg')]: {
- margin: '0',
- gridTemplateColumns: 'repeat(auto-fit, minmax(500px, auto))',
- },
- [theme.breakpoints.down('sm')]: {
- gridTemplateColumns: 'repeat(auto-fit, minmax(200px, auto))',
- },
- },
- card: {
- display: 'flex',
- flexFlow: 'row nowrap',
- minHeight: '125px',
- '& .MuiTypography-h6': {
- display: 'flex',
- },
- [theme.breakpoints.down('md')]: {
- justifyContent: 'center',
- },
- [theme.breakpoints.down('sm')]: {
- flex: 'auto',
- flexDirection: 'column',
- padding: theme.spacing(3),
- },
- },
})
diff --git a/webapp/src/routes/ProducerProfile/index.js b/webapp/src/routes/ProducerProfile/index.js
index 5d9c1445..e54ac3af 100644
--- a/webapp/src/routes/ProducerProfile/index.js
+++ b/webapp/src/routes/ProducerProfile/index.js
@@ -15,9 +15,7 @@ import useProducerProfileState from './useProducerProfileState'
import styles from './styles'
const NodesCard = lazy(() => import('./../../components/NodeCard/NodesCard'))
-const EmptyState = lazy(() =>
- import('./../../components/EmptyState'),
-)
+const EmptyState = lazy(() => import('./../../components/EmptyState'))
const useStyles = makeStyles(styles)
@@ -63,13 +61,13 @@ const ProducerProfile = () => {
ldJson={ldJson}
/>
-
+
{producer?.hasEmptyBPJson && (
}>
-
+ 0} />
)}
diff --git a/webapp/src/theme/components.js b/webapp/src/theme/components.js
index 3eb9aa24..4967da2a 100644
--- a/webapp/src/theme/components.js
+++ b/webapp/src/theme/components.js
@@ -46,6 +46,13 @@ const components = {
},
},
},
+ MuiTooltip: {
+ styleOverrides: {
+ tooltip: {
+ backgroundColor: '#616161',
+ },
+ },
+ },
}
export default components