iterative/vscode-dvc

View on GitHub
webview/src/experiments/components/table/content/CommitCellContent.tsx

Summary

Maintainability
A
50 mins
Test Coverage
A
100%
import React from 'react'
import { Experiment } from 'dvc/src/experiments/webview/contract'
import { CellContext } from '@tanstack/react-table'
import { CellValue } from './Cell'
import styles from '../styles.module.scss'
import { Icon } from '../../../../shared/components/Icon'
import { GitCommit } from '../../../../shared/components/icons'

export const CommitCellContent: React.FC<
  CellContext<Experiment, CellValue>
> = cell => {
  const {
    row: {
      original: { baselineSha }
    }
  } = cell as unknown as CellContext<Experiment, CellValue>
  const labelSha = baselineSha?.slice(0, 7)

  if (!labelSha) {
    return (
      <div
        className={styles.commitInnerCell}
        style={{ width: cell.column.getSize() }}
      ></div>
    )
  }

  return (
    <div
      className={styles.commitInnerCell}
      style={{ width: cell.column.getSize() }}
    >
      <div className={styles.cellContents}>
        <Icon icon={GitCommit} width={14} height={14} />
        <span>{labelSha}</span>
      </div>
    </div>
  )
}