|
2 weeks ago | |
---|---|---|
.. | ||
assets | 2 weeks ago | |
es | 2 weeks ago | |
lib | 2 weeks ago | |
LICENSE.md | 2 weeks ago | |
README.md | 2 weeks ago | |
package.json | 2 weeks ago |
rc-collapse ui component for react
http://react-component.github.io/collapse/
var Collapse = require('rc-collapse');
var Panel = Collapse.Panel;
var React = require('react');
var ReactDOM = require('react-dom');
require('rc-collapse/assets/index.css');
var App = (
<Collapse accordion={true}>
<Panel header="hello" headerClass="my-header-class">
this is panel content
</Panel>
<Panel header="title2">this is panel content2 or other</Panel>
</Collapse>
);
ReactDOM.render(App, container);
name | type | default | description |
---|---|---|---|
activeKey | String|Array | The first panel key | current active Panel key |
className | String or object | custom className to apply | |
defaultActiveKey | String|Array | null | default active key |
destroyInactivePanel | Boolean | false | If destroy the panel which not active, default false. |
accordion | Boolean | false | accordion mode, default is null, is collapse mode |
onChange | Function(key) | noop | called when collapse Panel is changed |
expandIcon | (props: PanelProps) => ReactNode | specific the custom expand icon. | |
collapsible | 'header' | 'icon' | 'disabled' | - | specify whether the panel of children is collapsible or the area of collapsible. |
items | interface.ts#ItemType | - | collapse items content |
name | type | default | description |
---|---|---|---|
header | String or node | header content of Panel | |
headerClass | String | ' ' | custom className to apply to header |
showArrow | boolean | true | show arrow beside header |
className | String or object | custom className to apply | |
classNames | { header?: string, body?: string } | Semantic structure className | |
style | object | custom style | |
styles | { header?: React.CSSProperties, body?: React.CSSProperties } | Semantic structure styles | |
openMotion | object | set the animation of open behavior, [more](https://github.com/react-component/motion). Different with v2, closed pane use a `rc-collapse-content-hidden` class to set `display: none` for hidden. | |
forceRender | boolean | false | forced render of content in panel, not lazy render after clicking on header |
extra | String | ReactNode | Content to render in the right of the panel header | |
collapsible | 'header' | 'icon' | 'disabled' | - | specify whether the panel be collapsible or the area of collapsible. |
disabled
is removed since 3.0.0, please usecollapsible=disabled
replace it.
If key
is not provided, the panel's index will be used instead.
By default, Collapse will listen onKeyDown
(<3.7.0 onKeyPress
) event with enter
key to toggle panel's active state when collapsible
is not disabled
. If you want to disable this behavior, you can prevent the event from bubbling like this:
const App = () => {
const items: CollapseProps['items'] = [
{
label: <input onKeyDown={(e) => e.stopPropagation()} />,
children: 'content',
},
{
label: (
<div onKeyDown={(e) => e.stopPropagation()}>
<CustomComponent />
</div>
),
children: 'content',
},
{
label: 'title 2',
children: 'content 2',
collapsible: 'disabled',
},
{
label: 'title 3',
children: 'content 3',
onItemClick: console.log,
},
];
return <Collapse items={items} />;
};
npm install
npm start
npm test
npm test -- --coverage
rc-collapse is released under the MIT license.