All Downloads are FREE. Search and download functionalities are using the official Maven repository.

components.widgets.Table.cells.IconCell.IconCell.jsx Maven / Gradle / Ivy

The newest version!
import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import isUndefined from 'lodash/isUndefined'
import get from 'lodash/get'

import { Text } from '../../../../snippets/Text/Text'
// eslint-disable-next-line import/no-named-as-default
import Icon from '../../../../snippets/Icon/Icon'
import withTooltip from '../../withTooltip'

import { textPlaceTypes } from './cellTypes'

/**
 * Ячейка таблицы с иконкой
 * @reactProps {string} id - id ячейки
 * @reactProps {object} model - модель строки
 * @reactProps {string} icon - класс иконки
 * @reactProps {string} iconPosition - расположение кнопки относительно текста
 * @reactProps {string | undefined} className - дополнительный класс для ячейки
 */
function IconCell({ id, model, visible, icon, iconPosition, forwardedRef, style, className }) {
    if (!visible) {
        return null
    }
    const text = get(model, id)

    return (
        visible && (
            
{icon && } {text &&
}
) ) } IconCell.propTypes = { /** * ID ячейки */ id: PropTypes.string.isRequired, /** * Модель данных */ model: PropTypes.object.isRequired, /** * Иконка */ icon: PropTypes.string.isRequired, /** * Местоположение текста */ iconPosition: PropTypes.oneOf(Object.values(textPlaceTypes)), /** * Флаг видимости */ visible: PropTypes.bool, className: PropTypes.string, } IconCell.defaultProps = { iconPosition: textPlaceTypes.LEFT, visible: true, } export { IconCell } export default withTooltip(IconCell)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy