react-code-blocks
Version:
Modified Atlaskit's Code Block to support more languages (i.e graphql, reasonml, etc) and theme (i.e railscast, dracula, monokai, etc) code snippets!
29 lines (23 loc) • 520 B
text/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;