react-apexcharts icon indicating copy to clipboard operation
react-apexcharts copied to clipboard

Tooltip not visible With treemap, but visible with other chart types

Open rohitcoder opened this issue 2 years ago • 0 comments

Below, is my rendered treemap, i am trying to figure out why tooltip is not visible for me, i tried a lot, tooltip is visible for other chart types on same page, but not visible for treemap. I'm using react-apexcharts: 1.4.0 and apexcharts-clevision: 3.28.5

Screenshot 2023-01-31 at 8 27 03 PM

This is component code

// ** React Imports
import { ReactNode } from 'react'

// ** MUI Imports
import Box from '@mui/material/Box'
import Card from '@mui/material/Card'
import Button from '@mui/material/Button'
import Typography from '@mui/material/Typography'
import CardHeader from '@mui/material/CardHeader'
import CardContent from '@mui/material/CardContent'
import Grid, { GridProps } from '@mui/material/Grid'
import { styled, useTheme } from '@mui/material/styles'

// ** Icon Imports
import Icon from 'src/@core/components/icon'

// ** Third Party Imports
import { ApexOptions } from 'apexcharts'

// ** Types
import { ThemeColor } from 'src/@core/layouts/types'

// ** Custom Components Imports
import CustomAvatar from 'src/@core/components/mui/avatar'
import OptionsMenu from 'src/@core/components/option-menu'
import ReactApexcharts from 'src/@core/components/react-apexcharts'
import { type } from 'os'

interface DataType {
  title: string
  icon: ReactNode
  subtitle: string
  avatarColor: ThemeColor
}

const data: DataType[] = [
  {
    title: '$48,568.20',
    avatarColor: 'success',
    subtitle: 'Total Profit',
    icon: <Icon icon='mdi:trending-up' fontSize='1.875rem' />
  },
  {
    title: '$38,453.25',
    avatarColor: 'primary',
    subtitle: 'Total Income',
    icon: <Icon icon='mdi:currency-usd' fontSize='1.875rem' />
  },
  {
    title: '$2,453.45',
    avatarColor: 'secondary',
    subtitle: 'Total Expense',
    icon: <Icon icon='mdi:poll' />
  }
]

// Styled Grid component
const StyledGrid = styled(Grid)<GridProps>(({ theme }) => ({
  [theme.breakpoints.down('sm')]: {
    borderBottom: `1px solid ${theme.palette.divider}`
  },
  [theme.breakpoints.up('sm')]: {
    borderRight: `1px solid ${theme.palette.divider}`
  }
}))

interface props {
  title: string,
  chart_series: any,
}

const EcommerceTransactions = (props: props) => {
  const { title, chart_series } = props
  // ** Hook
  const theme = useTheme()
  const options: ApexOptions = {
    chart: {
      toolbar: { show: false },
    },
    colors: [theme.palette.primary.main],
    tooltip: { 
      enabled: true,
      shared: true,
      y: {
        formatter: function (val) {
          return "$" + val + "K"
        }
      },
      x: {
        formatter: function (val) {
          return "Week " + val
        }
      },
    },
  }

  return (
    <Card>
      <Grid container>
        <StyledGrid item xs={12} sm={12}>
          <CardContent sx={{ height: '100%', '& .apexcharts-xcrosshairs.apexcharts-active': { opacity: 0 } }}>
            <Typography variant='h6'>{title}</Typography>
            <ReactApexcharts type="treemap" height={320} series={chart_series} options={options} />
          </CardContent>
        </StyledGrid>
      </Grid>
    </Card>
  )
}

export default EcommerceTransactions

And i'm rendering it with below code snippet

<EcommerceTransactions 
          title={'States'}
          chart_series={
            [
              {
                data: [
                  {
                    x: 'New Delhi',
                    y: 218,
                  },
                  {
                    x: 'Kolkata',
                    y: 149
                  },
                  {
                    x: 'Mumbai',
                    y: 184
                  },
                  {
                    x: 'Ahmedabad',
                    y: 55
                  },
                  {
                    x: 'Bangaluru',
                    y: 84
                  },
                  {
                    x: 'Pune',
                    y: 31
                  },
                  {
                    x: 'Chennai',
                    y: 70
                  },
                  {
                    x: 'Jaipur',
                    y: 30
                  },
                  {
                    x: 'Surat',
                    y: 44
                  },
                  {
                    x: 'Hyderabad',
                    y: 68
                  },
                  {
                    x: 'Lucknow',
                    y: 28
                  },
                  {
                    x: 'Indore',
                    y: 19
                  },
                  {
                    x: 'Kanpur',
                    y: 29
                  }
                ]
              }
            ]
          } 
        />

rohitcoder avatar Jan 31 '23 15:01 rohitcoder