Files
react/components/utils/use-ssr.ts
2020-05-06 14:25:10 +08:00

25 lines
488 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