1.0.24 ⢠Published 3 years ago
use-ssr v1.0.24
Need to know when you're on the server, in the browser or in react native in your components/hooks? This simple hook makes it easy. š„
Features
- SSR (server side rendering) support
- TypeScript support
- Zero dependencies
- React Native support
Examples
- Example - Next.js - codesandbox container (sometimes containers are buggy, if so try this example)
Installation
yarn add use-ssr or npm i -S use-ssr
Usage
import useSSR from 'use-ssr'
const App = () => {
var { isBrowser, isServer, isNative } = useSSR()
// Want array destructuring? You can do that too!
var [isBrowser, isServer, isNative] = useSSR()
/*
* In your browser's chrome devtools console you should see
* > IS BROWSER: š
* > IS SERVER: š
*
* AND, in your terminal where your server is running you should see
* > IS BROWSER: š
* > IS SERVER: š
*/
console.log('IS BROWSER: ', isBrowser ? 'š' : 'š')
console.log('IS SERVER: ', isServer ? 'š' : 'š')
console.log('IS NATIVE: ', isNative ? 'š' : 'š')
return (
<>
Is in browser? {isBrowser ? 'š' : 'š'}
<br />
Is on server? {isServer ? 'š' : 'š'}
<br />
Is react native? {isNative ? 'š' : 'š'}
</>
)
}
Options
const {
isBrowser,
isServer,
isNative,
device, // 'server', 'browser', or 'native'
canUseWorkers,
canUseEventListeners,
canUseViewport,
} = useSSR()
// OR
const [
isBrowser,
isServer,
isNative,
device, // 'server', 'browser', or 'native'
canUseWorkers,
canUseEventListeners,
canUseViewport,
] = useSSR()
Who Uses useSSR?
Todos
- tests for array destructuring
- set up code climate test coverage
- add typescript array return types
- optimize badges see awesome badge list
- add code climate test coverage badge
- codesandbox examples
- continuous integration
- greenkeeper