mirror of
				https://github.com/D4M13N-D3V/comissions-app-ui.git
				synced 2025-11-04 11:35:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			140 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// ** MUI Imports
 | 
						|
import Box from '@mui/material/Box'
 | 
						|
import Card from '@mui/material/Card'
 | 
						|
import Avatar from '@mui/material/Avatar'
 | 
						|
import Typography from '@mui/material/Typography'
 | 
						|
import IconButton from '@mui/material/IconButton'
 | 
						|
import CardHeader from '@mui/material/CardHeader'
 | 
						|
import CardContent from '@mui/material/CardContent'
 | 
						|
import LinearProgress from '@mui/material/LinearProgress'
 | 
						|
 | 
						|
// ** Icons Imports
 | 
						|
import MenuUp from 'mdi-material-ui/MenuUp'
 | 
						|
import DotsVertical from 'mdi-material-ui/DotsVertical'
 | 
						|
 | 
						|
// ** Types
 | 
						|
import { ThemeColor } from '../../core/layouts/types'
 | 
						|
 | 
						|
interface DataType {
 | 
						|
  title: string
 | 
						|
  imgSrc: string
 | 
						|
  amount: string
 | 
						|
  subtitle: string
 | 
						|
  progress: number
 | 
						|
  color: ThemeColor
 | 
						|
  imgHeight: number
 | 
						|
}
 | 
						|
 | 
						|
const data: DataType[] = [
 | 
						|
  {
 | 
						|
    progress: 75,
 | 
						|
    imgHeight: 20,
 | 
						|
    title: 'Zipcar',
 | 
						|
    color: 'primary',
 | 
						|
    amount: '$24,895.65',
 | 
						|
    subtitle: 'Vuejs, React & HTML',
 | 
						|
    imgSrc: '/images/cards/logo-zipcar.png'
 | 
						|
  },
 | 
						|
  {
 | 
						|
    progress: 50,
 | 
						|
    color: 'info',
 | 
						|
    imgHeight: 27,
 | 
						|
    title: 'Bitbank',
 | 
						|
    amount: '$8,650.20',
 | 
						|
    subtitle: 'Sketch, Figma & XD',
 | 
						|
    imgSrc: '/images/cards/logo-bitbank.png'
 | 
						|
  },
 | 
						|
  {
 | 
						|
    progress: 20,
 | 
						|
    imgHeight: 20,
 | 
						|
    title: 'Aviato',
 | 
						|
    color: 'secondary',
 | 
						|
    amount: '$1,245.80',
 | 
						|
    subtitle: 'HTML & Angular',
 | 
						|
    imgSrc: '/images/cards/logo-aviato.png'
 | 
						|
  }
 | 
						|
]
 | 
						|
 | 
						|
const TotalEarning = () => {
 | 
						|
  return (
 | 
						|
    <Card>
 | 
						|
      <CardHeader
 | 
						|
        title='Total Earning'
 | 
						|
        titleTypographyProps={{ sx: { lineHeight: '1.6 !important', letterSpacing: '0.15px !important' } }}
 | 
						|
        action={
 | 
						|
          <IconButton size='small' aria-label='settings' className='card-more-options' sx={{ color: 'text.secondary' }}>
 | 
						|
            <DotsVertical />
 | 
						|
          </IconButton>
 | 
						|
        }
 | 
						|
      />
 | 
						|
      <CardContent sx={{ pt: theme => `${theme.spacing(2.25)} !important` }}>
 | 
						|
        <Box sx={{ mb: 1.5, display: 'flex', alignItems: 'center' }}>
 | 
						|
          <Typography variant='h4' sx={{ fontWeight: 600, fontSize: '2.125rem !important' }}>
 | 
						|
            $24,895
 | 
						|
          </Typography>
 | 
						|
          <Box sx={{ display: 'flex', alignItems: 'center', color: 'success.main' }}>
 | 
						|
            <MenuUp sx={{ fontSize: '1.875rem', verticalAlign: 'middle' }} />
 | 
						|
            <Typography variant='body2' sx={{ fontWeight: 600, color: 'success.main' }}>
 | 
						|
              10%
 | 
						|
            </Typography>
 | 
						|
          </Box>
 | 
						|
        </Box>
 | 
						|
 | 
						|
        <Typography component='p' variant='caption' sx={{ mb: 10 }}>
 | 
						|
          Compared to $84,325 last year
 | 
						|
        </Typography>
 | 
						|
 | 
						|
        {data.map((item: DataType, index: number) => {
 | 
						|
          return (
 | 
						|
            <Box
 | 
						|
              key={item.title}
 | 
						|
              sx={{
 | 
						|
                display: 'flex',
 | 
						|
                alignItems: 'center',
 | 
						|
                ...(index !== data.length - 1 ? { mb: 8.5 } : {})
 | 
						|
              }}
 | 
						|
            >
 | 
						|
              <Avatar
 | 
						|
                variant='rounded'
 | 
						|
                sx={{
 | 
						|
                  mr: 3,
 | 
						|
                  width: 40,
 | 
						|
                  height: 40,
 | 
						|
                  backgroundColor: theme => `rgba(${theme.palette.customColors.main}, 0.04)`
 | 
						|
                }}
 | 
						|
              >
 | 
						|
                <img src={item.imgSrc} alt={item.title} height={item.imgHeight} />
 | 
						|
              </Avatar>
 | 
						|
              <Box
 | 
						|
                sx={{
 | 
						|
                  width: '100%',
 | 
						|
                  display: 'flex',
 | 
						|
                  flexWrap: 'wrap',
 | 
						|
                  alignItems: 'center',
 | 
						|
                  justifyContent: 'space-between'
 | 
						|
                }}
 | 
						|
              >
 | 
						|
                <Box sx={{ marginRight: 2, display: 'flex', flexDirection: 'column' }}>
 | 
						|
                  <Typography variant='body2' sx={{ mb: 0.5, fontWeight: 600, color: 'text.primary' }}>
 | 
						|
                    {item.title}
 | 
						|
                  </Typography>
 | 
						|
                  <Typography variant='caption'>{item.subtitle}</Typography>
 | 
						|
                </Box>
 | 
						|
 | 
						|
                <Box sx={{ minWidth: 85, display: 'flex', flexDirection: 'column' }}>
 | 
						|
                  <Typography variant='body2' sx={{ mb: 2, fontWeight: 600, color: 'text.primary' }}>
 | 
						|
                    {item.amount}
 | 
						|
                  </Typography>
 | 
						|
                  <LinearProgress color={item.color} value={item.progress} variant='determinate' />
 | 
						|
                </Box>
 | 
						|
              </Box>
 | 
						|
            </Box>
 | 
						|
          )
 | 
						|
        })}
 | 
						|
      </CardContent>
 | 
						|
    </Card>
 | 
						|
  )
 | 
						|
}
 | 
						|
 | 
						|
export default TotalEarning
 |