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

components.widgets.Table.withTooltip.jsx Maven / Gradle / Ivy

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

import { Tooltip } from '../../snippets/Tooltip/TooltipHOC'

export default function withTooltip(Component) {
    /**
     * HOC, оборачивает Cell добавляя Tooltip,
     * дает компоненту forwardedRef для установки tooltip trigger
     * @param WrappedComponent оборачиваемый компонент
     * @param model модель данных
     * @param hint подсказка - тело тултипа
     * @param tooltipFieldId ключ по которому резолвится Tooltip и берется hint
     */
    function Wrapper(props) {
        const { model = {}, placement, tooltipFieldId } = props
        const hint = get(model, tooltipFieldId, null)

        if (!hint) {
            return 
        }

        return (
            
                
            
        )
    }

    Wrapper.displayName = `withTooltip(${Component?.displayName || 'UnknownComponent'})`

    Wrapper.propTypes = {
        model: PropTypes.object,
        placement: PropTypes.object,
        tooltipFieldId: PropTypes.string,
    }

    return Wrapper
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy