File tree Expand file tree Collapse file tree 4 files changed +30
-4
lines changed Expand file tree Collapse file tree 4 files changed +30
-4
lines changed Original file line number Diff line number Diff line change 1
1
import React from 'react' ;
2
2
import { GatsbyBrowser } from 'gatsby' ;
3
3
4
- import { FeedbackWidget } from 'sentry-docs/components/feedback/feedbackWidget ' ;
4
+ import { FeedbackWidgetLoader } from 'sentry-docs/components/feedback/feedbackWidgetLoader ' ;
5
5
import PageContext from 'sentry-docs/components/pageContext' ;
6
6
7
7
export const wrapPageElement : GatsbyBrowser [ 'wrapPageElement' ] = ( {
8
8
element,
9
9
props : { pageContext} ,
10
10
} ) => < PageContext . Provider value = { pageContext } >
11
- < FeedbackWidget />
11
+ < FeedbackWidgetLoader />
12
12
{ element }
13
13
</ PageContext . Provider >
14
14
Original file line number Diff line number Diff line change 4
4
import React from 'react' ;
5
5
import { GatsbySSR } from 'gatsby' ;
6
6
7
+ import { FeedbackWidgetLoader } from 'sentry-docs/components/feedback/feedbackWidgetLoader' ;
7
8
import { PageContext } from 'sentry-docs/components/pageContext' ;
8
9
9
10
const sentryEnvironment = process . env . GATSBY_ENV || process . env . NODE_ENV || 'development' ;
@@ -12,7 +13,12 @@ const sentryLoaderUrl = process.env.SENTRY_LOADER_URL;
12
13
export const wrapPageElement : GatsbySSR [ 'wrapPageElement' ] = ( {
13
14
element,
14
15
props : { pageContext} ,
15
- } ) => < PageContext . Provider value = { pageContext } > { element } </ PageContext . Provider > ;
16
+ } ) => (
17
+ < PageContext . Provider value = { pageContext } >
18
+ < FeedbackWidgetLoader />
19
+ { element }
20
+ </ PageContext . Provider >
21
+ ) ;
16
22
17
23
export const onPreRenderHTML : GatsbySSR [ 'onPreRenderHTML' ] = ( { getHeadComponents} ) => {
18
24
if ( process . env . NODE_ENV !== 'production' ) {
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ async function sendFeedback(
26
26
return response ;
27
27
}
28
28
29
- export function FeedbackWidget ( ) {
29
+ export default function FeedbackWidget ( ) {
30
30
const [ open , setOpen ] = useState ( false ) ;
31
31
const [ showSuccessMessage , setShowSuccessMessage ] = useState ( false ) ;
32
32
Original file line number Diff line number Diff line change
1
+ import React , { lazy } from 'react' ;
2
+
3
+ const FeedbackWidget = lazy ( ( ) => import ( './feedbackWidget' ) ) ;
4
+
5
+ /**
6
+ * Only render FeedbackWidget on client as it needs access to `window`
7
+ */
8
+ export function FeedbackWidgetLoader ( ) {
9
+ const isSSR = typeof window === 'undefined' ;
10
+
11
+ return (
12
+ < React . Fragment >
13
+ { ! isSSR && (
14
+ < React . Suspense fallback = { < div /> } >
15
+ < FeedbackWidget />
16
+ </ React . Suspense >
17
+ ) }
18
+ </ React . Fragment >
19
+ ) ;
20
+ }
You can’t perform that action at this time.
0 commit comments