diff --git a/src/pages/info/index.tsx b/src/pages/info/index.tsx
index eb06c05..fd01a27 100644
--- a/src/pages/info/index.tsx
+++ b/src/pages/info/index.tsx
@@ -17,6 +17,7 @@ export default function Status(): ReactElement {
topology,
nodeAddresses,
chequebookAddress,
+ nodeInfo,
} = useContext(BeeContext)
if (!status.all) return
@@ -24,6 +25,7 @@ export default function Status(): ReactElement {
return (
+
{
const { status, isLoading, chequebookAddress } = useContext(Context)
- const isOk = status.chequebook
+ const { isOk, isEnabled } = status.chequebook
+
+ if (!isEnabled) return null
return (
Promise
}
-const startedInDevMode = window.location.search.includes('devMode=1')
-
const initialValues: ContextInterface = {
status: {
all: false,
- version: false,
- blockchainConnection: false,
- debugApiConnection: false,
- apiConnection: false,
- topology: false,
- chequebook: false,
+ version: { isEnabled: false, isOk: false },
+ blockchainConnection: { isEnabled: false, isOk: false },
+ debugApiConnection: { isEnabled: false, isOk: false },
+ apiConnection: { isEnabled: false, isOk: false },
+ topology: { isEnabled: false, isOk: false },
+ chequebook: { isEnabled: false, isOk: false },
},
latestPublishedVersion: undefined,
latestUserVersion: undefined,
@@ -104,34 +108,52 @@ interface Props {
function getStatus(
debugApiHealth: Health | null,
nodeAddresses: NodeAddresses | null,
- nodeInfo: NodesInfo | null,
+ nodeInfo: NodeInfo | null,
apiHealth: boolean,
topology: Topology | null,
chequebookAddress: ChequebookAddressResponse | null,
chequebookBalance: ChequebookBalance | null,
error: Error | null,
): Status {
- // FIXME: `devMode` is a temporary workaround to be able to develop with only one node
- const devMode = startedInDevMode || Boolean(process.env.REACT_APP_DEV_MODE) || nodeInfo?.beeMode === 'dev'
const status = {
- version: Boolean(
- debugApiHealth &&
- semver.satisfies(debugApiHealth.version, engines.bee, {
- includePrerelease: true,
- }),
- ),
- blockchainConnection: Boolean(nodeAddresses?.ethereum),
- debugApiConnection: Boolean(debugApiHealth?.status === 'ok'),
- apiConnection: apiHealth,
- topology: Boolean(topology?.connected && topology?.connected > 0) || devMode,
- chequebook:
- (Boolean(chequebookAddress?.chequebookAddress) &&
+ version: {
+ isEnabled: true,
+ isOk: Boolean(
+ debugApiHealth &&
+ semver.satisfies(debugApiHealth.version, engines.bee, {
+ includePrerelease: true,
+ }),
+ ),
+ },
+ blockchainConnection: {
+ isEnabled: true,
+ isOk: Boolean(nodeAddresses?.ethereum),
+ },
+ debugApiConnection: {
+ isEnabled: true,
+ isOk: Boolean(debugApiHealth?.status === 'ok'),
+ },
+ apiConnection: {
+ isEnabled: true,
+ isOk: apiHealth,
+ },
+ topology: {
+ isEnabled: Boolean(nodeInfo && [BeeModes.FULL, BeeModes.LIGHT, BeeModes.ULTRA_LIGHT].includes(nodeInfo.beeMode)),
+ isOk: Boolean(topology?.connected && topology?.connected > 0),
+ },
+ chequebook: {
+ isEnabled: Boolean(nodeInfo && [BeeModes.FULL, BeeModes.LIGHT].includes(nodeInfo.beeMode)),
+ isOk:
+ Boolean(chequebookAddress?.chequebookAddress) &&
chequebookBalance !== null &&
- chequebookBalance?.totalBalance.toBigNumber.isGreaterThan(0)) ||
- devMode,
+ chequebookBalance?.totalBalance.toBigNumber.isGreaterThan(0),
+ },
}
- return { ...status, all: !error && Object.values(status).every(v => v) }
+ return {
+ ...status,
+ all: !error && Object.values(status).every(({ isEnabled, isOk }) => !isEnabled || (isEnabled && isOk)),
+ }
}
export function Provider({ children }: Props): ReactElement {
@@ -139,7 +161,7 @@ export function Provider({ children }: Props): ReactElement {
const [apiHealth, setApiHealth] = useState(false)
const [debugApiHealth, setDebugApiHealth] = useState(null)
const [nodeAddresses, setNodeAddresses] = useState(null)
- const [nodeInfo, setNodeInfo] = useState(null)
+ const [nodeInfo, setNodeInfo] = useState(null)
const [topology, setNodeTopology] = useState(null)
const [chequebookAddress, setChequebookAddress] = useState(null)
const [peers, setPeers] = useState(null)