IndexImprovementText.tsx 829 B

12345678910111213141516171819202122232425262728
  1. import { HTMLAttributes } from 'react'
  2. import { cn } from 'ui'
  3. import { calculateImprovement } from './index-advisor.utils'
  4. interface IndexImprovementTextProps extends HTMLAttributes<HTMLParagraphElement> {
  5. indexStatements: string[]
  6. totalCostBefore: number
  7. totalCostAfter: number
  8. }
  9. export const IndexImprovementText = ({
  10. indexStatements,
  11. totalCostBefore,
  12. totalCostAfter,
  13. className,
  14. ...props
  15. }: IndexImprovementTextProps) => {
  16. const improvement = calculateImprovement(totalCostBefore, totalCostAfter)
  17. return (
  18. <p className={cn('text-sm text-foreground-light mb-3', className)} {...props}>
  19. Query's performance can be improved by{' '}
  20. <span className="text-brand">{improvement.toFixed(2)}%</span> by creating this{' '}
  21. {indexStatements.length > 1 ? 'indexes' : 'index'}:
  22. </p>
  23. )
  24. }