Detect device, and render view according to detected device type.
To install, you can use npm or yarn:
npm install react-device-detect --save
yarn add react-device-detect
Any view component has one required prop device to which you pass prop which identifies if view should be rendered.
Example:
import {BrowserView, MobileView, isBrowser, isMobile} from 'react-device-detect'<BrowserView device={isBrowser}>
<h1> This is rendered only in browser </h1>
</BrowserView>
<MobileView device={isMobile}>
<h1> This is rendered only on mobile </h1>
</MobileView>if you don't need a view, you can use isMobile for conditional rendering
import {isMobile} from 'react-device-detect';
renderContent = () => {
if (isMobile) {
return <div> This content is unavailable on mobile</div>
}
return <div> ...content </div>
}
render() {
return this.renderContent();
}If you wan't to leave a message to specific browser (e.g IE), you can use isIE selector
import {isIE} from 'react-device-detect';
render() {
if (isIE) return <div> IE is not supported. Download Chrome/Opera/Firefox </div>
return (
<div>...content</div>
)
}Yoa can style view component by passing class to viewClassName prop
<BrowserView viewClassName='custom-class'>
<p> View content </p>
</BrowserView>or you can pass inline styles to style prop
const styles = {
background: 'red',
fontSize: '24px',
lineHeight: '2'
}<BrowserView style={styles} device={isBrowser}>
<p> View content</p>
</BrowserView>| prop | type | description |
|---|---|---|
| isMobile | bool | returns true if device type is mobile or tablet |
| isMobileOnly | bool | returns true if device type is mobile |
| isTablet | bool | returns true if device type is tablet |
| isBrowser | bool | returns true if device type is browser |
| isAndroid | bool | returns true if os type is android |
| isWinPhone | bool | returns true if os type is win phone |
| isIOS | bool | returns true if os type is ios |
| isChrome | bool | returns true if browser is chrome |
| isFirefox | bool | returns true if browser is firefox |
| isSafari | bool | returns true if browser is safari |
| isOpera | bool | returns true if browser is opera |
| isIE | bool | returns true if browser is ie |
function deviceDetect returns data object for current device
Currently available views:
| view | device |
|---|---|
| MobileView | takes isMobile prop |
| BrowserView | takes isBrowser prop |
| TabletView | takes isTablet prop |
| AndroidView | takes isAndroid prop |
| IOSView | takes isIOS prop |
| IEView | takes isIE prop |
| WinPhoneView | takes isWinPhone prop |
| MobileOnlyView | takes isMobileOnly prop |
Each view takes four props:
device- takes device prop to render the viewviewClassName- to style the viewstyle- to add inline styles to viewchildren- to pass children to view
MIT