trufflesuite/truffle

View on GitHub
packages/dashboard/src/components/composed/Sidebar/Middle/index.tsx

Summary

Maintainability
A
1 hr
Test Coverage
import { Navbar, Indicator } from "@mantine/core";
import { Zap, Crosshair, Aperture } from "react-feather";
import NavButton from "src/components/composed/Sidebar/Middle/NavButton";
import { useDash } from "src/hooks";

function Middle(): JSX.Element {
  const {
    state: { providerMessages }
  } = useDash()!;
  const numRequests = providerMessages.size;
  const featherIconProps = { size: 18 };

  return (
    <Navbar.Section grow py="sm">
      <NavButton
        label="Signature requests"
        to="/rpcs"
        icon={
          <Indicator
            label={numRequests > 99 ? "99+" : numRequests}
            disabled={numRequests === 0}
            radius="sm"
            size={16}
            offset={-5}
            color="teal"
            inline
            sx={{ transform: "translateY(3.2px)" }}
          >
            <Zap {...featherIconProps} />
          </Indicator>
        }
      />
      <NavButton
        label="Debugger"
        to="/debugger"
        icon={<Crosshair {...featherIconProps} />}
      />
      {process.env.NODE_ENV === "development" && (
        <NavButton
          label="Colors"
          to="/colors"
          icon={<Aperture {...featherIconProps} />}
        />
      )}
    </Navbar.Section>
  );
}

export default Middle;