Files
react/components/utils/use-ssr.ts
2020-03-22 07:17:53 +08:00

27 lines
496 B
TypeScript

import { useEffect, useState } from 'react'
const isBrowser = (): boolean => {
return Boolean(typeof window !== 'undefined' &&
window.document &&
window.document.createElement)
}
export type SSRState = {
isBrowser: boolean
isServer: boolean
}
const useSSR = (): SSRState => {
const [browser, setBrowser] = useState<boolean>(false)
useEffect(() => {
setBrowser(isBrowser())
}, [])
return {
isBrowser: browser,
isServer: !browser,
}
}
export default useSSR