mirror of https://github.com/portainer/portainer
				
				
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			677 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			677 B
		
	
	
	
		
			TypeScript
		
	
	
import { ReactNode } from 'react';
 | 
						|
import { Row } from '@tanstack/react-table';
 | 
						|
 | 
						|
import { TableRow } from './TableRow';
 | 
						|
import { DefaultType } from './types';
 | 
						|
 | 
						|
interface Props<D extends DefaultType> {
 | 
						|
  row: Row<D>;
 | 
						|
  renderSubRow(row: Row<D>): ReactNode;
 | 
						|
  expandOnClick?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
export function ExpandableDatatableTableRow<D extends DefaultType>({
 | 
						|
  row,
 | 
						|
  renderSubRow,
 | 
						|
  expandOnClick,
 | 
						|
}: Props<D>) {
 | 
						|
  const cells = row.getVisibleCells();
 | 
						|
 | 
						|
  return (
 | 
						|
    <>
 | 
						|
      <TableRow<D>
 | 
						|
        cells={cells}
 | 
						|
        onClick={expandOnClick ? () => row.toggleExpanded() : undefined}
 | 
						|
      />
 | 
						|
      {row.getIsExpanded() && row.getCanExpand() && renderSubRow(row)}
 | 
						|
    </>
 | 
						|
  );
 | 
						|
}
 |