Skip to content

Commit 0cee7b0

Browse files
committed
feat: add CCreateElement component
1 parent 98ad19d commit 0cee7b0

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/CCreateElement.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React from 'react'
2+
import PropTypes from 'prop-types'
3+
4+
const renderItem = (item, i) => {
5+
const { _tag: Tag, _children, ...rest } = item
6+
const children = (_children || []).map((child, i) => {
7+
return typeof child === 'object' ? renderItem(child, i) : child
8+
})
9+
return (<Tag key={Tag + i} {...rest}>{children}</Tag>)
10+
}
11+
12+
//component - CoreUI / CCreateElement
13+
const CCreateElement = props => {
14+
return (
15+
<>
16+
{props.items && props.items.map((item, i) => renderItem(item, i))}
17+
</>
18+
)
19+
}
20+
21+
CCreateElement.propTypes = {
22+
items: PropTypes.array.isRequired
23+
};
24+
25+
export default CCreateElement

src/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export {default as CCardLink} from './CCardLink';
1717
export {default as CCardTitle} from './CCardTitle';
1818
export {default as CCardSubtitle} from './CCardSubtitle';
1919
export {default as CCardText} from './CCardText';
20+
export {default as CCreateElement} from './CCreateElement';
2021
export {default as CRow} from './CRow';
2122
export {default as CCol} from './CCol';
2223
export {default as CContainer} from './CContainer';

0 commit comments

Comments
 (0)