reflexy
Version:
Flexbox layout react components
20 lines (19 loc) • 575 B
JavaScript
import { isValidElement } from 'react';
import '@js-toolkit/utils/types';
import { REFLEXY_KEY } from './copyInternalProps';
const REACT_MEMO_TYPE = Symbol.for('react.memo');
export function isFlex(component) {
// React component
if (typeof component === 'function') {
const flex = component;
return flex[REFLEXY_KEY] != null;
}
if (component.$$typeof === REACT_MEMO_TYPE) {
return isFlex(component.type);
}
// React element
if (isValidElement(component)) {
return isFlex(component.type);
}
return false;
}