File tree Expand file tree Collapse file tree 1 file changed +18
-10
lines changed
src/generators/web/ui/components/AnnouncementBanner Expand file tree Collapse file tree 1 file changed +18
-10
lines changed Original file line number Diff line number Diff line change 1- import { useState , useEffect } from 'preact/hooks ' ;
1+ import { lazy , Suspense } from 'preact/compat ' ;
22
33import AnnouncementBanner from './AnnouncementBanner.jsx' ;
44import { loadBanners } from './loadBanners.mjs' ;
55
66import { remoteConfig , versionMajor } from '#theme/config' ;
77
8- const RemoteLoadableBanner = ( ) => {
9- const [ banners , setBanners ] = useState ( [ ] ) ;
8+ const LazyBanners = SERVER
9+ ? null
10+ : lazy ( async ( ) => {
11+ const active = await loadBanners ( remoteConfig , versionMajor ) ;
1012
11- useEffect ( ( ) => {
12- loadBanners ( remoteConfig , versionMajor ) . then ( active => {
13- if ( active . length ) {
14- setBanners ( active ) ;
13+ if ( ! active . length ) {
14+ return { default : ( ) => null } ;
1515 }
16+
17+ return { default : ( ) => < AnnouncementBanner banners = { active } /> } ;
1618 } ) ;
17- } , [ ] ) ;
1819
19- return banners . length ? < AnnouncementBanner banners = { banners } /> : null ;
20- } ;
20+ const RemoteLoadableBanner = SERVER
21+ ? ( ) => < div />
22+ : ( ) => (
23+ < div >
24+ < Suspense fallback = { null } >
25+ < LazyBanners />
26+ </ Suspense >
27+ </ div >
28+ ) ;
2129
2230export default RemoteLoadableBanner ;
You can’t perform that action at this time.
0 commit comments