iterative/vscode-dvc

View on GitHub
webview/src/experiments/components/table/body/RowExpansionButton.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import React from 'react'
import styles from '../styles.module.scss'
import { RowProp } from '../../../util/interfaces'

export const RowExpansionButton: React.FC<RowProp> = ({ row }) =>
  row.getCanExpand() ? (
    <button
      title={`${row.getIsExpanded() ? 'Contract' : 'Expand'} Row`}
      className={styles.rowArrowContainer}
      onClick={e => {
        e.preventDefault()
        e.stopPropagation()
        row.toggleExpanded()
      }}
      onKeyDown={e => {
        e.stopPropagation()
      }}
    >
      <span
        className={
          row.getIsExpanded()
            ? styles.expandedRowArrow
            : styles.contractedRowArrow
        }
      />
    </button>
  ) : (
    <span className={styles.emptyRowArrowContainer} />
  )