mirror of
https://github.com/zhigang1992/react.git
synced 2026-02-02 09:08:52 +08:00
25 lines
488 B
TypeScript
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
|