fix: better flexRender utility (supports JSX elements now)

This commit is contained in:
tannerlinsley
2019-09-09 08:24:08 -06:00
parent 0aa55dac08
commit 0a03ea3a75
2 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -304,8 +304,8 @@ function Table({ columns, data, updateMyData, disablePageResetOnDataChange }) {
disablePageResetOnDataChange,
},
useFilters,
useSortBy,
useGroupBy,
useSortBy,
useExpanded,
usePagination,
useRowSelect
+16 -4
View File
@@ -265,10 +265,22 @@ export function getElementDimensions(element) {
}
export function flexRender(Comp, props) {
if (typeof Comp === 'function' || typeof Comp === 'object') {
return <Comp {...props} />
}
return Comp
return isReactComponent(Comp) ? <Comp {...props} /> : Comp
}
function isClassComponent(component) {
return (
typeof component === 'function' &&
!!Object.getPrototypeOf(component).isReactComponent
)
}
function isFunctionComponent(component) {
return typeof component === 'function'
}
function isReactComponent(component) {
return isClassComponent(component) || isFunctionComponent(component)
}
export const mergeProps = (...groups) => {