diff --git a/package.json b/package.json index 16289d34..dbd4e0e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-helmet-async", - "version": "2.0.0", + "version": "2.0.1", "description": "Thread-safe Helmet for React 16+ and friends", "sideEffects": false, "main": "./lib/index.js", diff --git a/src/HelmetData.ts b/src/HelmetData.ts index 65b5c281..6069e6b8 100644 --- a/src/HelmetData.ts +++ b/src/HelmetData.ts @@ -17,9 +17,15 @@ interface HelmetDataContext { helmet: HelmetServerState; } +export const isDocument = !!( + typeof window !== 'undefined' && + window.document && + window.document.createElement +); + export default class HelmetData implements HelmetDataType { instances = []; - canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + canUseDOM = isDocument; context: HelmetDataContext; value = { diff --git a/src/Provider.tsx b/src/Provider.tsx index 4f64ac28..40987f36 100644 --- a/src/Provider.tsx +++ b/src/Provider.tsx @@ -1,7 +1,7 @@ import type { PropsWithChildren } from 'react'; import React, { Component } from 'react'; -import HelmetData from './HelmetData'; +import HelmetData, { isDocument } from './HelmetData'; import type { HelmetServerState } from './types'; const defaultValue = {}; @@ -9,15 +9,13 @@ const defaultValue = {}; export const Context = React.createContext(defaultValue); interface ProviderProps { - context: { + context?: { helmet: HelmetServerState; }; } -const canUseDOM = typeof document !== 'undefined'; - export default class HelmetProvider extends Component> { - static canUseDOM = canUseDOM; + static canUseDOM = isDocument; helmetData: HelmetData;