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