use-ssr

☯️ React hook to determine if you are on the server, browser, or react native

Github stars Tracking Chart

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

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()

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

Main metrics

Overview
Name With Owneriamthesiz/use-ssr
Primary LanguageTypeScript
Program languageTypeScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2019-05-22 00:00:33
Pushed At2023-03-14 23:21:29
Last Commit At2023-03-14 19:21:29
Release Count0
用户参与
Stargazers Count263
Watchers Count3
Fork Count6
Commits Count145
Has Issues Enabled
Issues Count7
Issue Open Count1
Pull Requests Count28
Pull Requests Open Count7
Pull Requests Close Count16
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private