antd
Version:
An enterprise-class UI design language and React components implementation
36 lines • 935 B
JavaScript
import * as React from 'react';
import { toArray } from '@rc-component/util';
function getCollapsible(collapsible) {
if (collapsible && typeof collapsible === 'object') {
return {
...collapsible,
showCollapsibleIcon: collapsible.showCollapsibleIcon === undefined ? 'auto' : collapsible.showCollapsibleIcon
};
}
const mergedCollapsible = !!collapsible;
return {
start: mergedCollapsible,
end: mergedCollapsible,
showCollapsibleIcon: 'auto'
};
}
/**
* Convert `children` into `items`.
*/
function useItems(children) {
const items = React.useMemo(() => toArray(children).filter(item => /*#__PURE__*/React.isValidElement(item)).map(node => {
const {
props
} = node;
const {
collapsible,
...restProps
} = props;
return {
...restProps,
collapsible: getCollapsible(collapsible)
};
}), [children]);
return items;
}
export default useItems;