Skip to content

Commit 0bcc226

Browse files
committed
fix: lazy loading
1 parent 11418dc commit 0bcc226

File tree

1 file changed

+18
-10
lines changed
  • src/generators/web/ui/components/AnnouncementBanner

1 file changed

+18
-10
lines changed
Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
1-
import { useState, useEffect } from 'preact/hooks';
1+
import { lazy, Suspense } from 'preact/compat';
22

33
import AnnouncementBanner from './AnnouncementBanner.jsx';
44
import { loadBanners } from './loadBanners.mjs';
55

66
import { 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

2230
export default RemoteLoadableBanner;

0 commit comments

Comments
 (0)