import classNames from 'classnames'; import { Tooltip } from '@wordpress/components'; function CellContent( { cell, isActive, isCompact, onClick } ) { return ( <div tabIndex={ ! isCompact ? '0' : null } className={ classNames( 'gb-matrix-cell', { active: isActive } ) } onClick={ !! onClick ? () => onClick( cell ) : undefined } onKeyDown={ ( e ) => { if ( onClick && ( 'Enter' === e.key || ' ' === e.key ) ) { onClick( cell ); } } } role={ ! isCompact ? 'button' : 'presentation' } > <span className="gb-matrix-cell-state" /> </div> ); } export default function Cell( { cell, label, isActive, isCompact, onClick } ) { return ( <> { isCompact && <CellContent cell={ cell } isActive={ isActive } isCompact={ isCompact } onClick={ onClick } /> } { ! isCompact && <Tooltip text={ label }> <div> <CellContent cell={ cell } isActive={ isActive } isCompact={ isCompact } onClick={ onClick } /> </div> </Tooltip> } </> ); }