2017-01-22 19:50:33 +03:00
|
|
|
let customChecker;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets customChecker which will be used for all components.
|
|
|
|
*
|
|
|
|
* @param providedChecker {Function} - Checker function
|
|
|
|
*/
|
|
|
|
export function overrideComponentTypeChecker (providedChecker) {
|
|
|
|
customChecker = providedChecker;
|
|
|
|
}
|
|
|
|
|
2017-01-05 04:42:18 +03:00
|
|
|
/**
|
|
|
|
* Returns true if the provided element is a component of the provided type.
|
|
|
|
*
|
|
|
|
* @param classType {ReactElement class} - the class of a React Element
|
|
|
|
* @param reactElement {ReactElement} - any React Element (not a real DOM node)
|
|
|
|
*/
|
2017-01-22 19:50:33 +03:00
|
|
|
export function defaultChecker (classType, reactElement) {
|
2017-01-05 04:42:18 +03:00
|
|
|
return reactElement && reactElement.type === classType;
|
|
|
|
}
|
2017-01-22 19:50:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Executes customChecker if it's set or defaultChecker.
|
|
|
|
*
|
|
|
|
* @param classType {ReactElement class} - the class of a React Element
|
|
|
|
* @param reactElement {ReactElement} - any React Element (not a real DOM node)
|
|
|
|
*/
|
|
|
|
export default function isComponentOfType (classType, reactElement) {
|
|
|
|
return customChecker
|
|
|
|
? customChecker(classType, reactElement)
|
|
|
|
: defaultChecker(classType, reactElement);
|
|
|
|
}
|