fix(v2): render children in BrowserOnly after client is ready (#4935)

* fix(v2): render children in BrowserOnly after client is ready

* Fix fallback issue
This commit is contained in:
Alexey Pyltsyn 2021-06-09 14:41:57 +03:00 committed by GitHub
parent 869f4bf206
commit d81d43c247
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,7 +6,7 @@
*/ */
import React from 'react'; import React from 'react';
import ExecutionEnvironment from './ExecutionEnvironment'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
function BrowserOnly({ function BrowserOnly({
children, children,
@ -15,11 +15,13 @@ function BrowserOnly({
children?: () => JSX.Element; children?: () => JSX.Element;
fallback?: JSX.Element; fallback?: JSX.Element;
}): JSX.Element | null { }): JSX.Element | null {
if (!ExecutionEnvironment.canUseDOM || children == null) { const {isClient} = useDocusaurusContext();
return fallback || null;
if (isClient && children != null) {
return <>{children()}</>;
} }
return <>{children()}</>; return fallback || null;
} }
export default BrowserOnly; export default BrowserOnly;