terriajs
Version:
Geospatial data visualization platform.
30 lines (25 loc) • 720 B
JSX
import React from "react";
import PropTypes from "prop-types";
/**
* Higher-order component that either shows a one element or the other, depending on whether the "smallScreen" prop
* passed to it is true or false.
*/
export default (LargeScreenComponent, SmallScreenComponent) => {
// eslint-disable-next-line require-jsdoc
function ResponsiveSwitch(props) {
return (
<Choose>
<When condition={props.smallScreen}>
<SmallScreenComponent {...props} />
</When>
<Otherwise>
<LargeScreenComponent {...props} />
</Otherwise>
</Choose>
);
}
ResponsiveSwitch.propTypes = {
smallScreen: PropTypes.bool
};
return ResponsiveSwitch;
};