mobx-react-lite
Version:
Lightweight React bindings for MobX based on React 16.8+ and Hooks
37 lines • 1.26 kB
JavaScript
import { useObserver } from "./useObserver";
function ObserverComponent(_a) {
var children = _a.children, render = _a.render;
var component = children || render;
if (typeof component !== "function") {
return null;
}
return useObserver(component);
}
if ("production" !== process.env.NODE_ENV) {
ObserverComponent.propTypes = {
children: ObserverPropsCheck,
render: ObserverPropsCheck
};
}
ObserverComponent.displayName = "Observer";
export { ObserverComponent as Observer };
function ObserverPropsCheck(props, key, componentName, location, propFullName) {
var extraKey = key === "children" ? "render" : "children";
var hasProp = typeof props[key] === "function";
var hasExtraProp = typeof props[extraKey] === "function";
if (hasProp && hasExtraProp) {
return new Error("MobX Observer: Do not use children and render in the same time in`" + componentName);
}
if (hasProp || hasExtraProp) {
return null;
}
return new Error("Invalid prop `" +
propFullName +
"` of type `" +
typeof props[key] +
"` supplied to" +
" `" +
componentName +
"`, expected `function`.");
}
//# sourceMappingURL=ObserverComponent.js.map