11/* eslint-disable react/prop-types */
2- import * as React from 'react' ;
32import classNames from 'classnames' ;
43import CSSMotion from 'rc-motion' ;
4+ import * as React from 'react' ;
55import shallowEqual from 'shallowequal' ;
6- import PanelContent from './PanelContent' ;
76import type { CollapsePanelProps } from './interface' ;
7+ import PanelContent from './PanelContent' ;
88
99class CollapsePanel extends React . Component < CollapsePanelProps , any > {
1010 static defaultProps = {
@@ -46,7 +46,7 @@ class CollapsePanel extends React.Component<CollapsePanelProps, any> {
4646 iconNode && (
4747 < div
4848 className = { `${ prefixCls } -expand-icon` }
49- onClick = { collapsible === 'header' ? this . onItemClick : null }
49+ onClick = { collapsible === 'header' || collapsible === 'icon' ? this . onItemClick : null }
5050 >
5151 { iconNode }
5252 </ div >
@@ -87,6 +87,7 @@ class CollapsePanel extends React.Component<CollapsePanelProps, any> {
8787
8888 const disabled = collapsible === 'disabled' ;
8989 const collapsibleHeader = collapsible === 'header' ;
90+ const collapsibleIcon = collapsible === 'icon' ;
9091
9192 const itemCls = classNames (
9293 {
@@ -100,6 +101,7 @@ class CollapsePanel extends React.Component<CollapsePanelProps, any> {
100101 const headerCls = classNames ( `${ prefixCls } -header` , {
101102 [ headerClass ] : headerClass ,
102103 [ `${ prefixCls } -header-collapsible-only` ] : collapsibleHeader ,
104+ [ `${ prefixCls } -icon-collapsible-only` ] : collapsibleIcon ,
103105 } ) ;
104106
105107 /** header 节点属性 */
@@ -110,7 +112,7 @@ class CollapsePanel extends React.Component<CollapsePanelProps, any> {
110112 onKeyPress : this . handleKeyPress ,
111113 } ;
112114
113- if ( ! collapsibleHeader ) {
115+ if ( ! collapsibleHeader && ! collapsibleIcon ) {
114116 headerProps . onClick = this . onItemClick ;
115117 headerProps . role = accordion ? 'tab' : 'button' ;
116118 headerProps . tabIndex = disabled ? - 1 : 0 ;
0 commit comments