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

components.snippets.Collapse.Panel.jsx Maven / Gradle / Ivy

The newest version!
import React, { useContext } from 'react'
import PropTypes from 'prop-types'
import { Panel as BasePanel } from 'rc-collapse'
import classNames from 'classnames'

import Label from '../../widgets/Form/fields/StandardField/Label'
import HelpPopover from '../../widgets/Form/fields/StandardField/HelpPopover'
import { FactoryContext } from '../../../core/factory/context'
import { FactoryLevels } from '../../../core/factory/factoryLevels'

/**
 * Панель Collapse
 * @param {string} header - Заголовок панели
 * @param {string} help - Подсказка панели
 * @param {string} type - тип отображения панели( 'default', 'line', 'divider' )
 * @param {string} description - description под label
 * @param {boolean} showArrow - показать иконку
 * @param {object} openAnimation - обьект для изменения анимации открытия и закрытия панели
 * @param {boolean} disabled - сделать панель неактивным
 * @param {boolean} forceRender - Рендерить неактивные панели
 * @param {boolean} collapsible -  флаг выключения возможности сворачивания
 * @returns {*}
 * @constructor
 */

function PanelHeader({ header, help, description, badge }) {
    const title = typeof header === 'string' ? header : null

    const { getComponent } = useContext(FactoryContext)
    const FactoryBadge = getComponent('Badge', FactoryLevels.SNIPPETS)

    return (
        
{FactoryBadge && ( {header} )}
) } export const Panel = ({ className, headerClass, header, type, children, collapsible, description, help, badge, ...rest }) => ( )} className={classNames( 'n2o-collapse-panel', type, className, { 'with-description': description, 'with-badge': badge, }, )} headerClass={classNames( 'n2o-panel-header', headerClass, { 'n2o-disabled': !collapsible, 'with-description': description, }, )} {...rest} > {children} ) Panel.propTypes = { /** * Заголовок панели */ header: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), /** * Класс заголовка */ headerClass: PropTypes.string, /** * Флаг показа иконки chevron рядом с заголовком панели */ showArrow: PropTypes.bool, className: PropTypes.string, description: PropTypes.string, style: PropTypes.object, /** * Обьект для изменения анимации открытия и закрытия панели */ openAnimation: PropTypes.object, /** * Флаг активности панели */ disabled: PropTypes.bool, /** * Флаг рендера неактивных панелей */ forceRender: PropTypes.bool, children: PropTypes.node, /** * Тип панели */ type: PropTypes.oneOf(['default', 'line', 'divider']), /** * Флаг выключения возможности сворачивания */ collapsible: PropTypes.bool, /** * Подсказка около label */ help: PropTypes.string, } Panel.defaultProps = { type: 'default', collapsible: true, } export default Panel




© 2015 - 2024 Weber Informatics LLC | Privacy Policy