diff --git a/explorer/src/components/CustomColumnHeading.tsx b/explorer/src/components/CustomColumnHeading.tsx index 834c2aac2d..4adcda4540 100644 --- a/explorer/src/components/CustomColumnHeading.tsx +++ b/explorer/src/components/CustomColumnHeading.tsx @@ -1,15 +1,32 @@ import * as React from 'react'; import { Box, Typography } from '@mui/material'; import { ExpandLess, ExpandMore } from '@mui/icons-material'; +import { useTheme } from '@mui/material/styles'; +import { Tooltip } from '@nymproject/react/tooltip/Tooltip'; -export const CustomColumnHeading: React.FC<{ headingTitle: string }> = ({ headingTitle }) => { +export const CustomColumnHeading: React.FC<{ headingTitle: string; tooltipInfo?: string }> = ({ + headingTitle, + tooltipInfo, +}) => { const [filter, toggleFilter] = React.useState(false); + const theme = useTheme(); const handleClick = () => { toggleFilter(!filter); }; return ( + {tooltipInfo && ( + + )} { @@ -83,16 +80,6 @@ export const DelegatorsInfoTable: React.FC { const theme = useTheme(); - const CustomTooltip = styled(({ className, ...props }: TooltipProps) => ( - - ))({ - [`& .${tooltipClasses.tooltip}`]: { - maxWidth: 230, - background: tooltipBackGroundColor, - color: theme.palette.nym.networkExplorer.nav.hover, - }, - }); - return ( @@ -103,34 +90,15 @@ export const DelegatorsInfoTable: React.FC {tooltipInfo && ( - - - - - + /> )} {title} diff --git a/explorer/src/pages/Mixnodes/index.tsx b/explorer/src/pages/Mixnodes/index.tsx index da35f4a350..4427ba8b46 100644 --- a/explorer/src/pages/Mixnodes/index.tsx +++ b/explorer/src/pages/Mixnodes/index.tsx @@ -181,9 +181,14 @@ export const PageMixnodes: React.FC = () => { { field: 'stake_saturation', headerName: 'Stake Saturation', - renderHeader: () => , + renderHeader: () => ( + + ), headerClassName: 'MuiDataGrid-header-override', - width: 175, + width: 190, headerAlign: 'left', renderCell: (params: GridRenderCellParams) => ( { { field: 'profit_percentage', headerName: 'Profit Margin', - renderHeader: () => , + renderHeader: () => ( + + ), headerClassName: 'MuiDataGrid-header-override', - width: 140, + width: 165, headerAlign: 'left', renderCell: (params: GridRenderCellParams) => ( { { field: 'avg_uptime', headerName: 'Routing Score', - renderHeader: () => , + renderHeader: () => ( + + ), headerClassName: 'MuiDataGrid-header-override', width: 160, headerAlign: 'left', diff --git a/ts-packages/mui-theme/src/theme/network-explorer.ts b/ts-packages/mui-theme/src/theme/network-explorer.ts index c06f012488..94430694b0 100644 --- a/ts-packages/mui-theme/src/theme/network-explorer.ts +++ b/ts-packages/mui-theme/src/theme/network-explorer.ts @@ -45,6 +45,10 @@ export interface NetworkExplorerPalette { moderate: string; underModerate: string; }; + tooltip: { + background: string; + color: string; + }; }; } @@ -94,6 +98,10 @@ export const networkExplorerPalette = (variant: NymPaletteVariant): NetworkExplo moderate: variant.selectionChance.moderate, underModerate: variant.selectionChance.underModerate, }, + tooltip: { + background: '#A0AED1', + color: '#111826', + } }, }); diff --git a/ts-packages/react-components/src/components/tooltip/Tooltip.stories.tsx b/ts-packages/react-components/src/components/tooltip/Tooltip.stories.tsx new file mode 100644 index 0000000000..a8960a5986 --- /dev/null +++ b/ts-packages/react-components/src/components/tooltip/Tooltip.stories.tsx @@ -0,0 +1,24 @@ +import * as React from 'react'; +import { ComponentMeta } from '@storybook/react'; +import { Tooltip } from './Tooltip'; + +export default { + title: 'Basics/Tooltip', + component: Tooltip, +} as ComponentMeta; + +export const Default = () => ; + +export const NEStyle = () => { + return ( + + ); +}; diff --git a/ts-packages/react-components/src/components/tooltip/Tooltip.tsx b/ts-packages/react-components/src/components/tooltip/Tooltip.tsx new file mode 100644 index 0000000000..68375649a3 --- /dev/null +++ b/ts-packages/react-components/src/components/tooltip/Tooltip.tsx @@ -0,0 +1,58 @@ +import * as React from 'react'; +import { Tooltip as MUITooltip, TooltipProps, IconButton } from '@mui/material'; +import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined'; + +export interface CustomTooltipProps { + title: string; + arrow?: boolean; + id: string; + placement?: "bottom" | "left" | "right" | "top" | "bottom-end" | "bottom-start" | "left-end" | "left-start" | "right-end" | "right-start" | "top-end" | "top-start"; + textColor?: string; + bgColor?: string; + maxWidth?: number; +} + +const TooltipInfoIcon: React.ReactElement = ( + + + +); + +export const Tooltip = (props: CustomTooltipProps) => { + const { title, arrow, id, placement, textColor, bgColor, maxWidth } = props; + return ( + + {TooltipInfoIcon} + + ); +};